use sequoia_openpgp as openpgp;
use openpgp::Result;
use crate::Sq;
use crate::cli::pki::vouch::authorize;
use crate::commands::FileOrStdout;
use crate::sq::TrustThreshold;
pub fn authorize(sq: Sq, mut c: authorize::Command)
-> Result<()>
{
let certifier =
sq.resolve_cert(&c.certifier, TrustThreshold::Full)?.0;
let (cert, source) = sq.resolve_cert(&c.cert, TrustThreshold::Full)?;
if source.is_file() {
if c.output.is_none() {
c.output = Some(FileOrStdout::new(None));
}
}
let vc = cert.with_policy(sq.policy, Some(sq.time))?;
let userids = c.userids.resolve(&vc)?;
let notations = c.signature_notations.parse()?;
let expiration =
sq.config.pki_vouch_expiration(&c.expiration, c.expiration_source);
crate::common::pki::certify::certify(
&mut std::io::stderr(),
&sq,
true, &certifier,
&cert,
&userids[..],
! c.userids.all().unwrap_or(false), &[(c.amount, expiration)],
c.depth,
&c.domain[..],
&c.regex[..],
c.local,
c.non_revocable,
¬ations[..],
c.output,
false)
}