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