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("\' "); } }