Esempio n. 1
0
        private void checkCertReqMsgWithArchiveControl(AsymmetricCipherKeyPair kp, CertificateRequestMessage certReqMessage)
        {
            var archiveControl =
                (PkiArchiveControl)certReqMessage.GetControl(CrmfObjectIdentifiers.id_regCtrl_pkiArchiveOptions);

            IsEquals("Archive type", PkiArchiveControl.encryptedPrivKey, archiveControl.ArchiveType);

            IsTrue(archiveControl.EnvelopedData);
            RecipientInformationStore recips = archiveControl.GetEnvelopedData().GetRecipientInfos();

            ArrayList collection = (ArrayList)recips.GetRecipients();

            IsTrue(collection.Count == 1);
            KeyTransRecipientInformation info = (KeyTransRecipientInformation)collection[0];

            EncKeyWithID encKeyWithId = EncKeyWithID.GetInstance(info.GetContent(kp.Private));


            IsTrue(encKeyWithId.HasIdentifier);
            IsTrue(!encKeyWithId.IsIdentifierUtf8String); // GeneralName at this point.

            IsTrue("Name", X509Name.GetInstance(GeneralName.GetInstance(encKeyWithId.Identifier).Name).Equivalent(new X509Name("CN=Test")));

            PrivateKeyInfo privateKeyInfo = PrivateKeyInfoFactory.CreatePrivateKeyInfo(kp.Private);

            IsTrue("Private Key", Arrays.AreEqual(privateKeyInfo.GetEncoded(), encKeyWithId.PrivateKey.GetEncoded()));
        }
        private void appendCertInfo(StringBuilder extraInfo, KeyTransRecipientInformation ktRid, X509Certificate certificate, X509CertificateEntry materialCert)
        {
            BigInteger ridSerialNumber = null;// TODO ktRid.GetSerialNumber();

            if (ridSerialNumber != null)
            {
                string     certSerial       = "unknown";
                BigInteger certSerialNumber = certificate.SerialNumber;
                if (certSerialNumber != null)
                {
                    certSerial = certSerialNumber.ToString(16);
                }
                extraInfo.Append("serial-#: rid ");
                extraInfo.Append(ridSerialNumber.ToString(16));
                extraInfo.Append(" vs. cert ");
                extraInfo.Append(certSerial);
                extraInfo.Append(" issuer: rid \'");
                // TODO extraInfo.Append(ktRid.Issuer);
                extraInfo.Append("\' vs. cert \'");
                extraInfo.Append(materialCert == null ? "null" : certificate.IssuerDN.ToString());
                extraInfo.Append("\' ");
            }
        }