internal static EssCertIdV2 Read(DerSequenceReader reader) { var sequenceReader = reader.ReadSequence(); AlgorithmIdentifier algorithm; if (sequenceReader.HasTag(DerSequenceReader.ConstructedSequence)) { algorithm = AlgorithmIdentifier.Read(sequenceReader); } else { algorithm = new AlgorithmIdentifier(new Oid(Oids.Sha256)); } var hash = sequenceReader.ReadOctetString(); IssuerSerial issuerSerial = null; if (sequenceReader.HasData) { issuerSerial = IssuerSerial.Read(sequenceReader); if (sequenceReader.HasData) { throw new SignatureException(Strings.SigningCertificateV2Invalid); } } return(new EssCertIdV2(algorithm, hash, issuerSerial)); }
public void Read_WithExplicitNullParameters_ReturnsAlgorithmIdentifier() { var bytes = new BcAlgorithmIdentifier(new DerObjectIdentifier(Oids.Sha256), DerNull.Instance).GetDerEncoded(); var algorithmId = AlgorithmIdentifier.Read(bytes); Assert.Equal(Oids.Sha256, algorithmId.Algorithm.Value); }
public void Read_WithValidInput_ReturnsAlgorithmIdentifier(string oid) { var bytes = new BcAlgorithmIdentifier(new DerObjectIdentifier(oid)).GetDerEncoded(); var algorithmId = AlgorithmIdentifier.Read(bytes); Assert.Equal(oid, algorithmId.Algorithm.Value); }
internal static MessageImprint Read(DerSequenceReader reader) { var imprintReader = reader.ReadSequence(); var hashAlgorithm = AlgorithmIdentifier.Read(imprintReader); var hashedMessage = imprintReader.ReadOctetString(); if (hashedMessage == null || hashedMessage.Length == 0) { throw new CryptographicException(Strings.InvalidAsn1); } if (imprintReader.HasData) { throw new CryptographicException(Strings.InvalidAsn1); } return(new MessageImprint(hashAlgorithm, hashedMessage)); }
public void Read_WithInvalidAsn1_Throws() { Assert.Throws <CryptographicException>( () => AlgorithmIdentifier.Read(new byte[] { 0x30, 0x0b })); }