private static BcEssCertIdV2 CreateBcEssCertIdV2(HashAlgorithmName hashAlgorithmName, string text) { var hash = CryptoHashUtility.ComputeHash(hashAlgorithmName, Encoding.UTF8.GetBytes(text)); var bcAlgorithmIdentifier = new BcAlgorithmIdentifier( new DerObjectIdentifier(hashAlgorithmName.ConvertToOidString())); return(new BcEssCertIdV2(bcAlgorithmIdentifier, hash)); }
public void Read_WithOnlyCertificateHash_ReturnsEssCertIdV2() { var hash = CryptoHashUtility.ComputeHash(HashAlgorithmName.SHA256, Encoding.UTF8.GetBytes("peach")); var bcEssCertId = new BcEssCertIdV2(hash); var bytes = bcEssCertId.GetDerEncoded(); var essCertIdV2 = EssCertIdV2.Read(bytes); Assert.Equal(Oids.Sha256, essCertIdV2.HashAlgorithm.Algorithm.Value); SigningTestUtility.VerifyByteArrays(hash, essCertIdV2.CertificateHash); Assert.Null(essCertIdV2.IssuerSerial); }
public void Read_WithDefaultAlgorithmIdentifier_ReturnsEssCertIdV2() { var directoryName = new X509Name("CN=test"); var generalNames = new GeneralNames( new BcGeneralName(BcGeneralName.DirectoryName, directoryName)); var bcIssuerSerial = new BcIssuerSerial(generalNames, new DerInteger(BigInteger.One)); var hash = CryptoHashUtility.ComputeHash(HashAlgorithmName.SHA256, Encoding.UTF8.GetBytes("peach")); var bcEssCertId = new BcEssCertIdV2(hash, bcIssuerSerial); var bytes = bcEssCertId.GetDerEncoded(); var essCertIdV2 = EssCertIdV2.Read(bytes); Assert.Equal(Oids.Sha256, essCertIdV2.HashAlgorithm.Algorithm.Value); Assert.Equal(1, essCertIdV2.IssuerSerial.GeneralNames.Count); Assert.Equal(directoryName.ToString(), essCertIdV2.IssuerSerial.GeneralNames[0].DirectoryName.Name); SigningTestUtility.VerifyByteArrays(hash, essCertIdV2.CertificateHash); SigningTestUtility.VerifyByteArrays(bcIssuerSerial.Serial.Value.ToByteArray(), essCertIdV2.IssuerSerial.SerialNumber); }
public void GetESSCertIDv2Entries_ReturnsDecodedHashes(Common.HashAlgorithmName hashAlgorithm) { // Arrange var cert = TestCertificate.Generate().PublicCert; var cert2 = TestCertificate.Generate().PublicCert; var attribute = AttributeUtility.GetSigningCertificateV2( new[] { cert, cert2 }, hashAlgorithm); var certHash = CryptoHashUtility.ComputeHash(hashAlgorithm, cert.RawData); var cert2Hash = CryptoHashUtility.ComputeHash(hashAlgorithm, cert2.RawData); // Act var actual = AttributeUtility.GetESSCertIDv2Entries(attribute); // Assert actual.ShouldBeEquivalentTo(new[] { new KeyValuePair <Common.HashAlgorithmName, byte[]>(hashAlgorithm, certHash), new KeyValuePair <Common.HashAlgorithmName, byte[]>(hashAlgorithm, cert2Hash), }); }
private static Hash MakeHash(HashAlgorithmName algorithm, string hashInput) { var digest = CryptoHashUtility.ComputeHash(algorithm, Encoding.ASCII.GetBytes(hashInput)); return(new Hash(algorithm, digest)); }