public void EmptyIdentifier() { AuthorityKeyIdentifierExtension ext = new AuthorityKeyIdentifierExtension(); AuthorityKeyIdentifierExtension aki = new AuthorityKeyIdentifierExtension(ext); Empty(aki); }
static byte [] GetAuthorityKeyIdentifier(X509Extension ext) { if (ext == null) { return(null); } AuthorityKeyIdentifierExtension aki = new AuthorityKeyIdentifierExtension(ext); return(aki.Identifier); }
public X509ExtensionsList SetAuthorityKeyIdentifier(byte[] id) { if (id == null) { throw new ArgumentNullException(nameof(id)); } var issuerKeyIdentifier = new AuthorityKeyIdentifierExtension(id); Add(issuerKeyIdentifier); return(this); }
/// <summary> /// Find the KeyIdentifier of the issuer certificate. /// </summary> /// <param name="cert"></param> /// <returns></returns> public static string GetAuthorityKeyIdentifier(this X509Certificate2 cert) { string keyid = null; var extension = cert.Extensions[AuthorityKeyIdentifierExtension.Oid_AuthorityKeyIdentifier]; if (extension != null) { keyid = new AuthorityKeyIdentifierExtension(extension, extension.Critical).AuthorityKeyIdentifier; } return(keyid); }
public void Constructor_Empty() { AuthorityKeyIdentifierExtension aki = new AuthorityKeyIdentifierExtension(); aki.Identifier = new byte[] { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; Empty(aki); }
private void Empty(AuthorityKeyIdentifierExtension aki) { Assert.IsFalse(aki.Critical, "Critical"); Assert.AreEqual("2.5.29.35", aki.Oid, "Oid"); Assert.IsNotNull(aki.Name, "Name"); Assert.IsFalse(aki.Name == aki.Oid, "Name!=Oid"); Assert.AreEqual(new byte[] { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, aki.Identifier, "Identifier"); }
public void ImportBase64Certificate() { var qwacBase64 = "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"; var qwacCert = new X509Certificate2(Encoding.UTF8.GetBytes(qwacBase64), "", X509KeyStorageFlags.Exportable); var statements = default(QualifiedCertificateStatements); var policyInfos = default(PolicyInformation[]); var accessDescriptions = default(AccessDescription[]); var distributionPoints = default(CRLDistributionPoint[]); var keyId = string.Empty; var authoritykeyId = string.Empty; foreach (var extension in qwacCert.Extensions) { if (extension.Oid.Value == QualifiedCertificateStatementsExtension.Oid_QC_Statements) { var qcStatements = new QualifiedCertificateStatementsExtension(extension, extension.Critical); statements = qcStatements.Statements; } if (extension.Oid.Value == CertificatePoliciesExtension.Oid_CertificatePolicies) { var policiesExt = new CertificatePoliciesExtension(extension, extension.Critical); policyInfos = policiesExt.Policies; } if (extension.Oid.Value == AuthorityInformationAccessExtension.Oid_AuthorityInformationAccess) { var aia = new AuthorityInformationAccessExtension(extension, extension.Critical); accessDescriptions = aia.AccessDescriptions; } if (extension.Oid.Value == CRLDistributionPointsExtension.Oid_CRLDistributionPoints) { var crl = new CRLDistributionPointsExtension(extension, extension.Critical); distributionPoints = crl.DistributionPoints; } if (extension.Oid.Value == AuthorityKeyIdentifierExtension.Oid_AuthorityKeyIdentifier) { var authkey = new AuthorityKeyIdentifierExtension(extension, extension.Critical); authoritykeyId = authkey.AuthorityKeyIdentifier; } if (extension.Oid.Value == AuthorityKeyIdentifierExtension.Oid_SubjectKeyIdentifier) { keyId = ((X509SubjectKeyIdentifierExtension)extension).SubjectKeyIdentifier; } } Assert.Equal("GR", statements.Psd2Type.AuthorizationId.CountryCode); Assert.Equal("BOG", statements.Psd2Type.AuthorizationId.SupervisionAuthority); Assert.Equal("800000005", statements.Psd2Type.AuthorizationId.AuthorizationNumber); Assert.Equal("838852D2F347686E152CA6A34CACAE17509DBC35", authoritykeyId); Assert.Equal("02D324A59192A2E6C6EED29E7AC69FB05073C745", keyId); //Assert.Equal("https://ec.europa.eu/information_society/policy/esignature/trusted-list/tl-mp.xml", accessDescriptions[0].ToString()); }
public void Constructor_ASN1() { AuthorityKeyIdentifierExtension ext = new AuthorityKeyIdentifierExtension(); ext.Identifier = new byte[] { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; AuthorityKeyIdentifierExtension aki = new AuthorityKeyIdentifierExtension(ext.ASN1); Empty(aki); }
private string GetAuthorityKeyIdentifier(X509Extension ext) { if (ext == null) { return(string.Empty); } AuthorityKeyIdentifierExtension authorityKeyIdentifierExtension = new AuthorityKeyIdentifierExtension(ext); byte[] identifier = authorityKeyIdentifierExtension.Identifier; if (identifier == null) { return(string.Empty); } StringBuilder stringBuilder = new StringBuilder(); foreach (byte b in identifier) { stringBuilder.Append(b.ToString("X02")); } return(stringBuilder.ToString()); }
private string GetAuthorityKeyIdentifier(Mono.Security.X509.X509Extension ext) { if (ext == null) { return(string.Empty); } AuthorityKeyIdentifierExtension authorityKeyIdentifierExtension = new AuthorityKeyIdentifierExtension(ext); byte[] identifier = authorityKeyIdentifierExtension.Identifier; if (identifier == null) { return(string.Empty); } StringBuilder stringBuilder = new StringBuilder(); byte[] array = identifier; for (int i = 0; i < array.Length; i++) { byte b = array[i]; stringBuilder.Append(b.ToString("X02")); } return(stringBuilder.ToString()); }
public void AuthorityKeyIdentifier_Critical() { AuthorityKeyIdentifierExtension aki = new AuthorityKeyIdentifierExtension(); aki.Critical = true; aki.Identifier = new byte[] { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; Assert.AreEqual("30-22-06-03-55-1D-23-01-01-FF-04-18-30-16-80-14-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00", BitConverter.ToString(aki.GetBytes()), "GetBytes"); AuthorityKeyIdentifierExtension aki2 = new AuthorityKeyIdentifierExtension(aki.ASN1); Assert.IsTrue(aki2.Critical, "Critical"); Assert.AreEqual(new byte[] { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, aki2.Identifier, "Identifier"); }