Exemplo n.º 1
0
        public static byte[] FromRSA(RSA rsa)
        {
            var prms = rsa.ExportParameters(false);

            var modulus  = new Asn1Integer((new byte[] { 0x00 }.Concat(prms.Modulus)).ToArray());
            var exponent = new Asn1Integer(prms.Exponent);

            var oidheader = new Asn1Sequence();

            oidheader.Nodes.Add(new Asn1ObjectIdentifier("1.2.840.113549.1.1.1"));
            oidheader.Nodes.Add(new Asn1Null());

            var rsaSequence = new Asn1Sequence();

            rsaSequence.Nodes.Add(modulus);
            rsaSequence.Nodes.Add(exponent);

            var bitString = new Asn1BitString(rsaSequence.GetBytes());

            var result = new Asn1Sequence();

            result.Nodes.Add(oidheader);
            result.Nodes.Add(bitString);

            return(result.GetBytes());
        }
Exemplo n.º 2
0
        public void WriteTest()
        {
            var node = new Asn1Sequence();

            node.Nodes.Add(new Asn1ObjectIdentifier("2.5.4.10"));
            node.Nodes.Add(new Asn1PrintableString("TestOrg"));
            var data = node.GetBytes();

            AreEqual(_etalon, data);
        }
Exemplo n.º 3
0
        protected override byte[] GetBytesCore()
        {
            var seq = new Asn1Sequence {
                Nodes = { new Asn1Boolean(Authority) }
            };

            if (PathLengthConstraint.HasValue)
            {
                seq.Nodes.Add(new Asn1Integer((long)PathLengthConstraint.Value));
            }
            return(seq.GetBytes());
        }
Exemplo n.º 4
0
        protected override byte[] GetBytesCore()
        {
            var node = new Asn1Sequence();

            foreach (var name in Names)
            {
                node.Nodes.Add(new Asn1CustomNode(2, Asn1TagForm.Primitive, Asn1TagClass.ContextDefined)
                {
                    Data = Encoding.UTF8.GetBytes(name)
                });
            }

            return(node.GetBytes());
        }
Exemplo n.º 5
0
        public X509Certificate SetBasicConstraint(BasicConstraintData data)
        {
            var seq = new Asn1Sequence {
                Nodes = { new Asn1Boolean(data.Authority) }
            };

            if (data.PathLengthConstraint.HasValue)
            {
                seq.Nodes.Add(new Asn1Integer(data.PathLengthConstraint.Value));
            }
            Tbs.Extensions.Add(new X509Extension {
                Id       = Asn1ObjectIdentifier.BasicConstraints,
                Critical = true,
                Value    = seq.GetBytes()
            });

            return(this);
        }
Exemplo n.º 6
0
        protected override byte[] GetBytesCore()
        {
            var seq = new Asn1Sequence();

            foreach (var method in Methods)
            {
                seq.Nodes.Add(new Asn1Sequence {
                    Nodes =
                    {
                        new Asn1ObjectIdentifier("1.3.6.1.5.5.7.48.2"),
                        new Asn1CustomNode(0x06,                       Asn1TagForm.Primitive, Asn1TagClass.ContextDefined)
                        {
                            Data = Encoding.UTF8.GetBytes(method.Url)
                        }
                    }
                });
            }

            return(seq.GetBytes());
        }