Mercurial > projects > dstep
view dstep/security/certextensions.d @ 11:07194b026fa4
Added bindings to a couple of frameworks, new license + some other things
author | Jacob Carlborg <doob@me.com> |
---|---|
date | Sat, 01 Aug 2009 15:03:28 +0200 |
parents | |
children |
line wrap: on
line source
/** * Copyright: Copyright (c) 2009 Jacob Carlborg. * Authors: Jacob Carlborg * Version: Initial created: Jul 22, 2009 * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost Software License 1.0) */ module dstep.security.certextensions; import dstep.security.cssmtype; import dstep.security.x509defs; alias CSSM_DATA CE_SubjectKeyID; alias ushort CE_KeyUsage; alias uint CE_CrlReason; alias ushort CE_NetscapeCertType; alias ubyte CE_CrlDistReasonFlags; alias CE_GeneralNames CE_NameRegistrationAuthorities; alias uint CE_CrlNumber; alias uint CE_DeltaCrl; enum { GNT_OtherName = 0, GNT_RFC822Name, GNT_DNSName, GNT_X400Address, GNT_DirectoryName, GNT_EdiPartyName, GNT_URI, GNT_IPAddress, GNT_RegisteredID } enum CE_CrlDistributionPointNameType { CE_CDNT_FullName, CE_CDNT_NameRelativeToCrlIssuer } enum CE_DataType { DT_AuthorityKeyID, DT_SubjectKeyID, DT_KeyUsage, DT_SubjectAltName, DT_IssuerAltName, DT_ExtendedKeyUsage, DT_BasicConstraints, DT_CertPolicies, DT_NetscapeCertType, DT_CrlNumber, DT_DeltaCrl, DT_CrlReason, DT_CrlDistributionPoints, DT_IssuingDistributionPoint, DT_AuthorityInfoAccess, DT_Other, DT_QC_Statements } struct CE_OtherName { CSSM_OID typeId; CSSM_DATA value; } struct CE_GeneralName { int nameType; int berEncoded; CSSM_DATA name; } struct CE_GeneralNames { uint numNames; CE_GeneralName* generalName; } struct CE_AuthorityKeyID { int keyIdentifierPresent; CSSM_DATA keyIdentifier; int generalNamesPresent; CE_GeneralNames* generalNames; int serialNumberPresent; CSSM_DATA serialNumber; } struct CE_ExtendedKeyUsage { uint numPurposes; CSSM_OID_PTR purposes; } struct CE_BasicConstraints { int cA; int pathLenConstraintPresent; uint pathLenConstraint; } struct CE_PolicyQualifierInfo { CSSM_OID policyQualifierId; CSSM_DATA qualifier; } struct CE_PolicyInformation { CSSM_OID certPolicyId; uint numPolicyQualifiers; CE_PolicyQualifierInfo* policyQualifiers; } struct CE_CertPolicies { uint numPolicies; CE_PolicyInformation* policies; } struct CE_DistributionPointName { CE_CrlDistributionPointNameType nameType; union { CE_GeneralNames* fullName; CSSM_X509_RDN_PTR rd; } } struct CE_CRLDistributionPoint { int distPointName; ubyte reasonsPresent; CE_CrlDistReasonFlags reasons; CE_GeneralNames* crlIssuer; } struct CE_CRLDistPointsSyntax { uint numDistPoints; CE_CRLDistributionPoint* distPoints; } struct CE_AccessDescription { CSSM_OID accessMethod; CE_GeneralName accessLocation; } struct CE_AuthorityInfoAccess { uint numAccessDescriptions; CE_AccessDescription* accessDescriptions; } struct CE_SemanticsInformation { CSSM_OID* semanticsIdentifier; CE_NameRegistrationAuthorities* nameRegistrationAuthorities; } struct CE_QC_Statement { CSSM_OID statementId; CE_SemanticsInformation* semanticsInfo; CSSM_DATA* otherInfo; } struct CE_QC_Statements { uint numQCStatements; CE_QC_Statement* qcStatements; } struct CE_IssuingDistributionPoint { int distPointName; int onlyUserCertsPresent; int onlyUserCerts; int onlyCACertsPresent; int onlyCACerts; ubyte onlySomeReasonsPresent; int onlySomeReasons; int indirectCrlPresent; CSSM_BOOL indirectCrl; } struct CE_DataAndType { CE_DataType type; int extension; CSSM_BOOL critical; } union CE_Data { CE_AuthorityKeyID authorityKeyID; CE_SubjectKeyID subjectKeyID; CE_KeyUsage keyUsage; CE_GeneralNames subjectAltName; CE_GeneralNames issuerAltName; CE_ExtendedKeyUsage extendedKeyUsage; CE_BasicConstraints basicConstraints; CE_CertPolicies certPolicies; CE_NetscapeCertType netscapeCertType; CE_CrlNumber crlNumber; CE_DeltaCrl deltaCrl; CE_CrlReason crlReason; CE_CRLDistPointsSyntax crlDistPoints; CE_IssuingDistributionPoint issuingDistPoint; CE_AuthorityInfoAccess authorityInfoAccess; CE_QC_Statements qualifiedCertStatements; CSSM_DATA rawData; }