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)); }
private AsymmetricKeyParameter GetPublicKeyFromOriginatorID(OriginatorID origID) { throw new CmsException("No support for 'originator' as IssuerAndSerialNumber or SubjectKeyIdentifier"); }