Exemple #1
0
        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));
        }
Exemple #2
0
        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"));
        }
Exemple #3
0
        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"));
        }
Exemple #4
0
        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));
        }
Exemple #5
0
        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"));
        }
Exemple #6
0
        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"));
        }
Exemple #7
0
 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;
     }
 }
Exemple #8
0
 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;
     }
 }
Exemple #9
0
        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"));
        }
Exemple #10
0
        /// <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);
        }
Exemple #12
0
        public void Decode_ShouldDecodeAllKnownDefaultTypes(Type expectedType, byte[] rawData)
        {
            var decoder = new DefaultDerAsnDecoder();

            Assert.That(decoder.Decode(rawData), Is.InstanceOf(expectedType));
        }