public override byte[] GetBytes() { var asn1 = new ASN1Integer(Y); using (var ms = new MemoryStream()) { new DERWriter(ms).Write(asn1); return(ms.ToArray()); } }
private ASN1Object GetASN1(X509Certificate cert) { var taggedVersion = cert.Version.HasValue ? new ASN1Tagged(0, new[] { new ASN1Integer(cert.Version.Value - 1) }) : null; var serialNumber = new ASN1Integer(cert.SerialNumber); var signatureAlgo = GetAlgorithmIdentifier(cert.SignatureAlgorithm); var issuer = GetName(cert.Issuer); var validity = GetValidity(cert.Validity); var subject = GetName(cert.Subject); var subjectPublicKeyInfo = new ASN1Sequence(new[] { GetAlgorithmIdentifier(cert.SubjectPublicKeyAlgorithm), new ASN1BitString(cert.SubjectPublicKey.GetBytes()) }); var tbs = new List <ASN1Object>(); if (taggedVersion != null) { tbs.Add(taggedVersion); } tbs.Add(serialNumber); tbs.Add(signatureAlgo); tbs.Add(issuer); tbs.Add(validity); tbs.Add(subject); tbs.Add(subjectPublicKeyInfo); if (cert.Version >= 2) { //TODO issuerUniqueID //TODO subjectUniqueID } if (cert.Version >= 3) { var extensions = GetExtensions(cert.Extensions); var taggedExtensions = new ASN1Tagged(3, new[] { extensions }); tbs.Add(taggedExtensions); } return(new ASN1Sequence(new List <ASN1Object> { new ASN1Sequence(tbs), signatureAlgo, new ASN1BitString(cert.Signature) })); }
public ASN1IntegerMetadata(ASN1Integer annotation) : this(annotation.Name) { }
public ASN1IntegerMetadata(ASN1Integer annotation) : this(annotation.Name) { }