Пример #1
0
    private AsymmetricKeyParameter GetSenderPublicKey(AsymmetricKeyParameter receiverPrivateKey, OriginatorIdentifierOrKey originator)
    {
        OriginatorPublicKey originatorPublicKey = originator.OriginatorPublicKey;

        if (originatorPublicKey != null)
        {
            return(GetPublicKeyFromOriginatorPublicKey(receiverPrivateKey, originatorPublicKey));
        }
        OriginatorID originatorID = new OriginatorID();

        Org.BouncyCastle.Asn1.Cms.IssuerAndSerialNumber issuerAndSerialNumber = originator.IssuerAndSerialNumber;
        if (issuerAndSerialNumber != null)
        {
            originatorID.Issuer       = issuerAndSerialNumber.Name;
            originatorID.SerialNumber = issuerAndSerialNumber.SerialNumber.Value;
        }
        else
        {
            SubjectKeyIdentifier subjectKeyIdentifier = originator.SubjectKeyIdentifier;
            originatorID.SubjectKeyIdentifier = subjectKeyIdentifier.GetKeyIdentifier();
        }
        return(GetPublicKeyFromOriginatorID(originatorID));
    }
Пример #2
0
 private AsymmetricKeyParameter GetPublicKeyFromOriginatorID(OriginatorID origID)
 {
     throw new CmsException("No support for 'originator' as IssuerAndSerialNumber or SubjectKeyIdentifier");
 }