public void RegisterGenericType_RegisterSameTypeTwice_ReplaceSetToTrue_ShouldNotThrowException() { var decoder = new DefaultDerAsnDecoder(); decoder.RegisterGenericType(DerAsnEncodingType.Constructed, 4095, (_, __, ___) => null); Assert.DoesNotThrow(() => decoder.RegisterGenericType(DerAsnEncodingType.Constructed, 4095, (_, __, ___) => null, true)); }
public void RegisterType_PassNullAsIdentifier_ShouldThrowArgumentNullException() { var decoder = new DefaultDerAsnDecoder(); var ex = Assert.Throws <ArgumentNullException>(() => decoder.RegisterType(null, (_, __, ___) => null)); Assert.That(ex.ParamName, Is.EqualTo("identifier")); }
public void RegisterGenericType_PassNullAsTypeConstructor_ShouldThrowArgumentNullException() { var decoder = new DefaultDerAsnDecoder(); var ex = Assert.Throws <ArgumentNullException>(() => decoder.RegisterGenericType(DerAsnEncodingType.Constructed, 0, null)); Assert.That(ex.ParamName, Is.EqualTo("typeConstructor")); }
public void RegisterType_RegisterSameTypeTwice_ReplaceSetToTrue_ShouldNotThrowException() { var identifier = DerAsnIdentifiers.Primitive.Boolean; var decoder = new DefaultDerAsnDecoder(); decoder.RegisterType(identifier, (_, __, ___) => null); Assert.DoesNotThrow(() => decoder.RegisterType(identifier, (_, __, ___) => null, true)); }
public void RegisterType_PassNullAsTypeConstructor_ShouldThrowArgumentNullException() { var identifier = DerAsnIdentifiers.Primitive.Boolean; var decoder = new DefaultDerAsnDecoder(); var ex = Assert.Throws <ArgumentNullException>(() => decoder.RegisterType(identifier, null)); Assert.That(ex.ParamName, Is.EqualTo("typeConstructor")); }
public void RegisterGenericType_RegisterSameTypeTwice_ReplaceSetToFalse_ShouldThrowInvalidOperationException() { var decoder = new DefaultDerAsnDecoder(); decoder.RegisterGenericType(DerAsnEncodingType.Constructed, 4095, (_, __, ___) => null); var ex = Assert.Throws <InvalidOperationException>(() => decoder.RegisterGenericType(DerAsnEncodingType.Constructed, 0xFFF, (_, __, ___) => null)); Assert.That(ex.Message, Is.EqualTo("Type with encoding type Constructed and tag number 4095 already registered")); }
private void DecodeExtension() { using (var decoder = new DefaultDerAsnDecoder()) { decoder.RegisterType(ContextSpecificString.Id, (dcdr, identifier, data) => new ContextSpecificString(dcdr, identifier, data)); var sequence = decoder.Decode(RawData) as DerAsnSequence; _AccessDescriptions = new AccessDescriptionList(sequence.Value).Extract(); _decoded = true; } }
private void DecodeExtension() { using (var decoder = new DefaultDerAsnDecoder()) { decoder.RegisterType(ContextSpecificSequence.Id, (dcdr, identifier, data) => new ContextSpecificSequence(dcdr, identifier, data)); decoder.RegisterType(ContextSpecificString.Id, (dcdr, identifier, data) => new ContextSpecificString(dcdr, identifier, data)); var sequence = decoder.Decode(RawData) as DerAsnSequence; _DistributionPoints = new CRLDistributionPoints(sequence.Value).Extract(); _decoded = true; } }
public void RegisterType_RegisterSameTypeTwice_ReplaceSetToFalse_ShouldThrowInvalidOperationException() { var identifier = DerAsnIdentifiers.Primitive.Boolean; var decoder = new DefaultDerAsnDecoder(); decoder.RegisterType(identifier, (_, __, ___) => null); var ex = Assert.Throws <InvalidOperationException>(() => decoder.RegisterType(identifier, (_, __, ___) => null)); Assert.That(ex.Message, Is.EqualTo("Type with class Universal, encoding type Primitive and tag number 1 already registered")); }
/// <summary> /// Create a CRL from raw DER ASN.1 data /// </summary> /// <returns></returns> public static CertificateRevocationListSequence Load(byte[] rawData) { if (rawData == null) { throw new ArgumentNullException(nameof(rawData)); } CertificateRevocationListSequence sequence; using (var decoder = new DefaultDerAsnDecoder()) { decoder.RegisterType(ContextSpecificSequence.Id, (dcdr, identifier, data) => new ContextSpecificSequence(dcdr, identifier, data)); decoder.RegisterType(OctetStringSequence.Id, (dcdr, identifier, data) => new OctetStringSequence(dcdr, identifier, data)); decoder.RegisterType(DerAsnEnumerated.Id, (dcdr, identifier, data) => new DerAsnEnumerated(dcdr, identifier, data)); sequence = new CertificateRevocationListSequence(((DerAsnSequence)decoder.Decode(rawData)).Value); } return(sequence); }
public static string DerToPem(byte[] der) { var decoder = new DefaultDerAsnDecoder(); return(decoder.Decode(der).Value as string); }
public void Decode_ShouldDecodeAllKnownDefaultTypes(Type expectedType, byte[] rawData) { var decoder = new DefaultDerAsnDecoder(); Assert.That(decoder.Decode(rawData), Is.InstanceOf(expectedType)); }