internal RecipientInformation(
     AlgorithmIdentifier keyEncAlg,
     AlgorithmIdentifier messageAlgorithm,
     ICmsSecureReadable secureReadable,
     IAuthAttributesProvider additionalData)
 {
     this.keyEncAlg        = keyEncAlg;
     this.messageAlgorithm = messageAlgorithm;
     this.secureReadable   = secureReadable;
 }
Пример #2
0
        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));
        }
        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>;
            }
        }
Пример #4
0
        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));
             * }*/
        }
Пример #5
0
 internal static RecipientInformationStore BuildRecipientInformationStore(
     Asn1Set recipientInfos, AlgorithmIdentifier messageAlgorithm, ICmsSecureReadable secureReadable)
 {
     return(BuildRecipientInformationStore(recipientInfos, messageAlgorithm, secureReadable, null));
 }