Mercurial > projects > dstep
diff 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 diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/dstep/security/certextensions.d Sat Aug 01 15:03:28 2009 +0200 @@ -0,0 +1,235 @@ +/** + * 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; +} \ No newline at end of file