internal RecipientInformation( AlgorithmIdentifier keyEncAlg, AlgorithmIdentifier messageAlgorithm, ICmsSecureReadable secureReadable, IAuthAttributesProvider additionalData) { this.keyEncAlg = keyEncAlg; this.messageAlgorithm = messageAlgorithm; this.secureReadable = secureReadable; }
internal KeyTransRecipientInformation( KeyTransRecipientInfo info, AlgorithmIdentifier messageAlgorithm, ICmsSecureReadable secureReadable, IAuthAttributesProvider additionalData) : base(info.KeyEncryptionAlgorithm, messageAlgorithm, secureReadable, additionalData) { this.info = info; RecipientIdentifier r = info.RecipientIdentifier; if (r.IsTagged) { Asn1OctetString octs = Asn1OctetString.GetInstance(r.ID); rid = new KeyTransRecipientID(octs.GetOctets()) as IRecipientID <RecipientInformation>; } else { IssuerAndSerialNumber iAnds = IssuerAndSerialNumber.GetInstance(r.ID); rid = new KeyTransRecipientID(iAnds.Name, iAnds.SerialNumber.Value) as IRecipientID <RecipientInformation>; } }
private static void readRecipientInfo(IList <RecipientInformation> infos, RecipientInfo info, AlgorithmIdentifier messageAlgorithm, ICmsSecureReadable secureReadable, IAuthAttributesProvider additionalData) { Asn1Encodable recipInfo = info.Info; if (recipInfo is KeyTransRecipientInfo) { infos.Add(new KeyTransRecipientInformation( (KeyTransRecipientInfo)recipInfo, messageAlgorithm, secureReadable, additionalData)); } /* * else if (recipInfo is KEKRecipientInfo) * { * infos.Add(new KEKRecipientInformation( * (KEKRecipientInfo)recipInfo, messageAlgorithm, secureReadable, additionalData)); * } * else if (recipInfo is KeyAgreeRecipientInfo) * { * KeyAgreeRecipientInformation.readRecipientInfo(infos, * (KeyAgreeRecipientInfo)recipInfo, messageAlgorithm, secureReadable, additionalData); * } * else if (recipInfo is PasswordRecipientInfo) * { * infos.Add(new PasswordRecipientInformation( * (PasswordRecipientInfo)recipInfo, messageAlgorithm, secureReadable, additionalData)); * }*/ }
internal static RecipientInformationStore BuildRecipientInformationStore( Asn1Set recipientInfos, AlgorithmIdentifier messageAlgorithm, ICmsSecureReadable secureReadable, IAuthAttributesProvider additionalData) { IList <RecipientInformation> infos = new List <RecipientInformation>(); for (int i = 0; i != recipientInfos.Count; i++) { RecipientInfo info = RecipientInfo.GetInstance(recipientInfos[i]); readRecipientInfo(infos, info, messageAlgorithm, secureReadable, additionalData); } return(new RecipientInformationStore(infos)); }