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()); }
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); }
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()); }
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()); }
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); }
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()); }