view dstep/security/x509defs.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.x509defs;

import dstep.security.cssmtype;

alias ubyte CSSM_BER_TAG;
alias int CSSM_X509_OPTION;
alias CSSM_X509_TYPE_VALUE_PAIR* CSSM_X509_TYPE_VALUE_PAIR_PTR;
alias CSSM_X509_RDN* CSSM_X509_RDN_PTR;
alias CSSM_X509_EXTENSION* CSSM_X509_EXTENSION_PTR;
alias extension_data_format CSSM_X509EXT_DATA_FORMAT;
alias CSSM_X509_REVOKED_CERT_ENTRY* CSSM_X509_REVOKED_CERT_ENTRY_PTR;
alias CSSM_X509_REVOKED_CERT_LIST* CSSM_X509_REVOKED_CERT_LIST_PTR;
alias CSSM_X509_NAME* CSSM_X509_NAME_PTR;

enum extension_data_format 
{
	CSSM_X509_DATAFORMAT_ENCODED = 0,
	CSSM_X509_DATAFORMAT_PARSED,
	CSSM_X509_DATAFORMAT_PAIR
}

struct CSSM_X509_ALGORITHM_IDENTIFIER
{
	CSSM_OID algorithm;
	CSSM_DATA parameters;
}


struct CSSM_X509_TYPE_VALUE_PAIR
{
	CSSM_OID type;
	ubyte valueType;
	CSSM_DATA value;
}


struct CSSM_X509_RDN
{
	uint numberOfPairs;
	CSSM_X509_TYPE_VALUE_PAIR_PTR AttributeTypeAndValue;
}


struct CSSM_X509_NAME
{
	uint numberOfRDNs;
	CSSM_X509_RDN_PTR RelativeDistinguishedName;
}


struct CSSM_X509_SUBJECT_PUBLIC_KEY_INFO
{
	CSSM_X509_ALGORITHM_IDENTIFIER algorithm;
	CSSM_DATA subjectPublicKey;
}


struct CSSM_X509_TIME
{
	ubyte timeType;
	CSSM_DATA time;
}


struct CSSM_X509_VALIDITY
{
	CSSM_X509_TIME notBefore;
	CSSM_X509_TIME notAfter;
}


struct CSSM_X509EXT_BASICCONSTRAINTS
{
	int cA;
	int pathLenConstraintPresent;
	uint pathLenConstraint;
}


struct CSSM_X509EXT_TAGandVALUE
{
	ubyte type;
	CSSM_DATA value;
}


struct CSSM_X509EXT_PAIR
{
	CSSM_X509EXT_TAGandVALUE tagAndValue;
	void* parsedValue;
}


struct CSSM_X509_EXTENSION
{
	CSSM_OID extnId;
	CSSM_BOOL critical;
	CSSM_X509EXT_DATA_FORMAT format;
	
	union cssm_x509ext_value
	{
		CSSM_X509EXT_TAGandVALUE* tagAndValue;
		void* parsedValue;
		CSSM_X509EXT_PAIR* valuePair;
	}
	
	cssm_x509ext_value value;
	CSSM_DATA BERvalue;
}

struct CSSM_X509_EXTENSIONS
{
	uint numberOfExtensions;
	CSSM_X509_EXTENSION_PTR extensions;
}


struct CSSM_X509_TBS_CERTIFICATE
{
	CSSM_DATA version_;
	CSSM_DATA serialNumber;
	CSSM_X509_ALGORITHM_IDENTIFIER signature;
	CSSM_X509_NAME issuer;
	CSSM_X509_VALIDITY validity;
	CSSM_X509_NAME subject;
	CSSM_X509_SUBJECT_PUBLIC_KEY_INFO subjectPublicKeyInfo;
	CSSM_DATA issuerUniqueIdentifier;
	CSSM_DATA subjectUniqueIdentifier;
	CSSM_X509_EXTENSIONS extensions;
}


struct CSSM_X509_SIGNATURE
{
	CSSM_X509_ALGORITHM_IDENTIFIER algorithmIdentifier;
	CSSM_DATA encrypted;
}


struct CSSM_X509_SIGNED_CERTIFICATE
{
	CSSM_X509_TBS_CERTIFICATE certificate;
	CSSM_X509_SIGNATURE signature;
}


struct CSSM_X509EXT_POLICYQUALIFIERINFO
{
	CSSM_OID policyQualifierId;
	CSSM_DATA value;
}


struct CSSM_X509EXT_POLICYQUALIFIERS
{
	uint numberOfPolicyQualifiers;
	CSSM_X509EXT_POLICYQUALIFIERINFO* policyQualifier;
}


struct CSSM_X509EXT_POLICYINFO
{
	CSSM_OID policyIdentifier;
	CSSM_X509EXT_POLICYQUALIFIERS policyQualifiers;
}


struct CSSM_X509_REVOKED_CERT_ENTRY
{
	CSSM_DATA certificateSerialNumber;
	CSSM_X509_TIME revocationDate;
	CSSM_X509_EXTENSIONS extensions;
}


struct CSSM_X509_REVOKED_CERT_LIST
{
	uint numberOfRevokedCertEntries;
	CSSM_X509_REVOKED_CERT_ENTRY_PTR revokedCertEntry;
}


struct CSSM_X509_TBS_CERTLIST
{
	CSSM_DATA version_;
	CSSM_X509_ALGORITHM_IDENTIFIER signature;
	CSSM_X509_NAME issuer;
	CSSM_X509_TIME thisUpdate;
	CSSM_X509_TIME nextUpdate;
	CSSM_X509_REVOKED_CERT_LIST_PTR revokedCertificates;
	CSSM_X509_EXTENSIONS extensions;
}


struct CSSM_X509_SIGNED_CRL
{
	CSSM_X509_TBS_CERTLIST tbsCertList;
	CSSM_X509_SIGNATURE signature;
}