13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync/* $Id$ */
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync/** @file
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync * IPRT - Crypto - X.509, Code Generator Template.
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync */
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync/*
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync * Copyright (C) 2006-2014 Oracle Corporation
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync *
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync * This file is part of VirtualBox Open Source Edition (OSE), as
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync * available from http://www.virtualbox.org. This file is free software;
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync * you can redistribute it and/or modify it under the terms of the GNU
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync * General Public License (GPL) as published by the Free Software
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync * Foundation, in version 2 as it comes in the "COPYING" file of the
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync *
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync * The contents of this file may alternatively be used under the terms
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync * of the Common Development and Distribution License Version 1.0
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync * (CDDL) only, as it comes in the "COPYING.CDDL" file of the
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync * VirtualBox OSE distribution, in which case the provisions of the
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync * CDDL are applicable instead of those of the GPL.
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync *
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync * You may elect to license modified versions of this file under the
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync * terms and conditions of either the GPL or the CDDL or both.
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync */
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#define RTASN1TMPL_DECL RTDECL
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync/*
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync * X.509 Validity.
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync */
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#define RTASN1TMPL_TYPE RTCRX509VALIDITY
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#define RTASN1TMPL_EXT_NAME RTCrX509Validity
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#define RTASN1TMPL_INT_NAME rtCrX509Validity
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsyncRTASN1TMPL_BEGIN_SEQCORE();
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsyncRTASN1TMPL_MEMBER( NotBefore, RTASN1TIME, RTAsn1Time);
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsyncRTASN1TMPL_MEMBER( NotAfter, RTASN1TIME, RTAsn1Time);
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsyncRTASN1TMPL_EXEC_CHECK_SANITY( rc = rtCrX509Validity_CheckSanityExtra(pThis, fFlags, pErrInfo, pszErrorTag) )
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsyncRTASN1TMPL_END_SEQCORE();
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#undef RTASN1TMPL_TYPE
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#undef RTASN1TMPL_EXT_NAME
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#undef RTASN1TMPL_INT_NAME
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync/*
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync * One X.509 Algorithm Identifier.
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync */
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#define RTASN1TMPL_TYPE RTCRX509ALGORITHMIDENTIFIER
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#define RTASN1TMPL_EXT_NAME RTCrX509AlgorithmIdentifier
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#define RTASN1TMPL_INT_NAME rtCrX509AlgorithmIdentifier
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsyncRTASN1TMPL_BEGIN_SEQCORE();
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsyncRTASN1TMPL_MEMBER( Algorithm, RTASN1OBJID, RTAsn1ObjId);
4b2c55dab2a5f73a130681cf428b0ca8dde03956vboxsyncRTASN1TMPL_MEMBER_OPT_ANY( Parameters, RTASN1DYNTYPE, RTAsn1DynType);
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsyncRTASN1TMPL_END_SEQCORE();
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#undef RTASN1TMPL_TYPE
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#undef RTASN1TMPL_EXT_NAME
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#undef RTASN1TMPL_INT_NAME
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync/*
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync * Set of X.509 Algorithm Identifiers.
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync */
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#define RTASN1TMPL_TYPE RTCRX509ALGORITHMIDENTIFIERS
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#define RTASN1TMPL_EXT_NAME RTCrX509AlgorithmIdentifiers
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#define RTASN1TMPL_INT_NAME rtCrX509AlgorithmIdentifiers
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsyncRTASN1TMPL_SET_OF(RTCRX509ALGORITHMIDENTIFIER, RTCrX509AlgorithmIdentifier);
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#undef RTASN1TMPL_TYPE
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#undef RTASN1TMPL_EXT_NAME
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#undef RTASN1TMPL_INT_NAME
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync/*
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync * One X.509 AttributeTypeAndValue.
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync */
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#define RTASN1TMPL_TYPE RTCRX509ATTRIBUTETYPEANDVALUE
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#define RTASN1TMPL_EXT_NAME RTCrX509AttributeTypeAndValue
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#define RTASN1TMPL_INT_NAME rtCrX509AttributeTypeAndValue
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsyncRTASN1TMPL_BEGIN_SEQCORE();
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsyncRTASN1TMPL_MEMBER( Type, RTASN1OBJID, RTAsn1ObjId);
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsyncRTASN1TMPL_MEMBER( Value, RTASN1DYNTYPE, RTAsn1DynType);
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsyncRTASN1TMPL_END_SEQCORE();
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#undef RTASN1TMPL_TYPE
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#undef RTASN1TMPL_EXT_NAME
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#undef RTASN1TMPL_INT_NAME
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync/*
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync * Set of X.509 AttributeTypeAndValues / X.509 RelativeDistinguishedName.
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync */
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#define RTASN1TMPL_TYPE RTCRX509ATTRIBUTETYPEANDVALUES
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#define RTASN1TMPL_EXT_NAME RTCrX509AttributeTypeAndValues
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#define RTASN1TMPL_INT_NAME rtCrX509AttributeTypeAndValues
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsyncRTASN1TMPL_SET_OF(RTCRX509ATTRIBUTETYPEANDVALUE, RTCrX509AttributeTypeAndValue);
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#undef RTASN1TMPL_TYPE
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#undef RTASN1TMPL_EXT_NAME
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#undef RTASN1TMPL_INT_NAME
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync/*
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync * X.509 Name.
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync */
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#define RTASN1TMPL_TYPE RTCRX509NAME
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#define RTASN1TMPL_EXT_NAME RTCrX509Name
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#define RTASN1TMPL_INT_NAME rtCrX509Name
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#undef RTASN1TMPL_SET_SEQ_EXEC_CHECK_SANITY
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#define RTASN1TMPL_SET_SEQ_EXEC_CHECK_SANITY() rc = rtCrX509Name_CheckSanityExtra(pThis, fFlags, pErrInfo, pszErrorTag)
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsyncRTASN1TMPL_SEQ_OF(RTCRX509RELATIVEDISTINGUISHEDNAME, RTCrX509RelativeDistinguishedName);
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#undef RTASN1TMPL_SET_SEQ_EXEC_CHECK_SANITY
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#define RTASN1TMPL_SET_SEQ_EXEC_CHECK_SANITY() do { } while (0)
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#undef RTASN1TMPL_TYPE
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#undef RTASN1TMPL_EXT_NAME
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#undef RTASN1TMPL_INT_NAME
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync
fd2c68e83a763d8ed255093e80ccd2f5902d6d72vboxsync/*
fd2c68e83a763d8ed255093e80ccd2f5902d6d72vboxsync * One X.509 OtherName.
fd2c68e83a763d8ed255093e80ccd2f5902d6d72vboxsync * Note! This is simplified and might not work correctly for all types with
fd2c68e83a763d8ed255093e80ccd2f5902d6d72vboxsync * non-DER compatible encodings.
fd2c68e83a763d8ed255093e80ccd2f5902d6d72vboxsync */
fd2c68e83a763d8ed255093e80ccd2f5902d6d72vboxsync#define RTASN1TMPL_TYPE RTCRX509OTHERNAME
fd2c68e83a763d8ed255093e80ccd2f5902d6d72vboxsync#define RTASN1TMPL_EXT_NAME RTCrX509OtherName
fd2c68e83a763d8ed255093e80ccd2f5902d6d72vboxsync#define RTASN1TMPL_INT_NAME rtCrX509OtherName
fd2c68e83a763d8ed255093e80ccd2f5902d6d72vboxsyncRTASN1TMPL_BEGIN_SEQCORE();
fd2c68e83a763d8ed255093e80ccd2f5902d6d72vboxsyncRTASN1TMPL_MEMBER( TypeId, RTASN1OBJID, RTAsn1ObjId);
fd2c68e83a763d8ed255093e80ccd2f5902d6d72vboxsyncRTASN1TMPL_MEMBER( Value, RTASN1DYNTYPE, RTAsn1DynType);
fd2c68e83a763d8ed255093e80ccd2f5902d6d72vboxsyncRTASN1TMPL_END_SEQCORE();
fd2c68e83a763d8ed255093e80ccd2f5902d6d72vboxsync#undef RTASN1TMPL_TYPE
fd2c68e83a763d8ed255093e80ccd2f5902d6d72vboxsync#undef RTASN1TMPL_EXT_NAME
fd2c68e83a763d8ed255093e80ccd2f5902d6d72vboxsync#undef RTASN1TMPL_INT_NAME
fd2c68e83a763d8ed255093e80ccd2f5902d6d72vboxsync
fd2c68e83a763d8ed255093e80ccd2f5902d6d72vboxsync
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync/*
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync * One X.509 GeneralName.
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync * Note! This is simplified and might not work correctly for all types with
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync * non-DER compatible encodings.
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync */
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#define RTASN1TMPL_TYPE RTCRX509GENERALNAME
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#define RTASN1TMPL_EXT_NAME RTCrX509GeneralName
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#define RTASN1TMPL_INT_NAME rtCrX509GeneralName
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsyncRTASN1TMPL_BEGIN_PCHOICE();
fd2c68e83a763d8ed255093e80ccd2f5902d6d72vboxsyncRTASN1TMPL_PCHOICE_ITAG( 0, RTCRX509GENERALNAMECHOICE_OTHER_NAME, u.pT0_OtherName, OtherName, RTCRX509OTHERNAME, RTCrX509OtherName);
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsyncRTASN1TMPL_PCHOICE_ITAG_CP( 1, RTCRX509GENERALNAMECHOICE_RFC822_NAME, u.pT1_Rfc822, Rfc822, RTASN1STRING, RTAsn1Ia5String);
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsyncRTASN1TMPL_PCHOICE_ITAG_CP( 2, RTCRX509GENERALNAMECHOICE_DNS_NAME, u.pT2_DnsName, DnsType, RTASN1STRING, RTAsn1Ia5String);
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsyncRTASN1TMPL_PCHOICE_XTAG( 3, RTCRX509GENERALNAMECHOICE_X400_ADDRESS, u.pT3, CtxTag3, X400Address, RTASN1DYNTYPE, RTAsn1DynType); /** @todo */
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsyncRTASN1TMPL_PCHOICE_XTAG( 4, RTCRX509GENERALNAMECHOICE_DIRECTORY_NAME, u.pT4, CtxTag4, DirectoryName, RTCRX509NAME, RTCrX509Name);
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsyncRTASN1TMPL_PCHOICE_XTAG( 5, RTCRX509GENERALNAMECHOICE_EDI_PARTY_NAME, u.pT5, CtxTag5, EdiPartyName, RTASN1DYNTYPE, RTAsn1DynType); /** @todo */
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsyncRTASN1TMPL_PCHOICE_ITAG_CP( 6, RTCRX509GENERALNAMECHOICE_URI, u.pT6_Uri, Uri, RTASN1STRING, RTAsn1Ia5String);
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsyncRTASN1TMPL_PCHOICE_ITAG_CP( 7, RTCRX509GENERALNAMECHOICE_IP_ADDRESS, u.pT7_IpAddress, IpAddress, RTASN1OCTETSTRING, RTAsn1OctetString); /** @todo Constraints */
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsyncRTASN1TMPL_PCHOICE_ITAG_CP( 8, RTCRX509GENERALNAMECHOICE_REGISTERED_ID, u.pT8_RegisteredId,RegisteredId,RTASN1OBJID, RTAsn1ObjId);
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsyncRTASN1TMPL_END_PCHOICE();
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#undef RTASN1TMPL_TYPE
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#undef RTASN1TMPL_EXT_NAME
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#undef RTASN1TMPL_INT_NAME
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync/*
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync * Sequence of X.509 GeneralNames.
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync */
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#define RTASN1TMPL_TYPE RTCRX509GENERALNAMES
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#define RTASN1TMPL_EXT_NAME RTCrX509GeneralNames
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#define RTASN1TMPL_INT_NAME rtCrX509GeneralNames
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsyncRTASN1TMPL_SEQ_OF(RTCRX509GENERALNAME, RTCrX509GeneralName);
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#undef RTASN1TMPL_TYPE
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#undef RTASN1TMPL_EXT_NAME
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#undef RTASN1TMPL_INT_NAME
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync/*
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync * X.509 UniqueIdentifier - RTASN1BITSTRING alias.
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync */
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync/*
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync * X.509 SubjectPublicKeyInfo.
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync */
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#define RTASN1TMPL_TYPE RTCRX509SUBJECTPUBLICKEYINFO
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#define RTASN1TMPL_EXT_NAME RTCrX509SubjectPublicKeyInfo
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#define RTASN1TMPL_INT_NAME rtCrX509SubjectPublicKeyInfo
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsyncRTASN1TMPL_BEGIN_SEQCORE();
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsyncRTASN1TMPL_MEMBER( Algorithm, RTCRX509ALGORITHMIDENTIFIER, RTCrX509AlgorithmIdentifier);
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsyncRTASN1TMPL_MEMBER( SubjectPublicKey, RTASN1BITSTRING, RTAsn1BitString);
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsyncRTASN1TMPL_EXEC_CHECK_SANITY( rc = rtCrX509SubjectPublicKeyInfo_CheckSanityExtra(pThis, fFlags, pErrInfo, pszErrorTag) )
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsyncRTASN1TMPL_END_SEQCORE();
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#undef RTASN1TMPL_TYPE
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#undef RTASN1TMPL_EXT_NAME
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#undef RTASN1TMPL_INT_NAME
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync/*
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync * X.509 AuthorityKeyIdentifier (IPRT representation).
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync */
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#define RTASN1TMPL_TYPE RTCRX509AUTHORITYKEYIDENTIFIER
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#define RTASN1TMPL_EXT_NAME RTCrX509AuthorityKeyIdentifier
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#define RTASN1TMPL_INT_NAME rtCrX509AuthorityKeyIdentifier
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsyncRTASN1TMPL_BEGIN_SEQCORE();
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsyncRTASN1TMPL_MEMBER_OPT_ITAG_CP( KeyIdentifier, RTASN1OCTETSTRING, RTAsn1OctetString, 0);
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsyncRTASN1TMPL_MEMBER_OPT_ITAG( AuthorityCertIssuer, RTCRX509GENERALNAMES, RTCrX509GeneralNames, 1);
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsyncRTASN1TMPL_MEMBER_OPT_ITAG_CP( AuthorityCertSerialNumber, RTASN1INTEGER, RTAsn1Integer, 2);
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsyncRTASN1TMPL_END_SEQCORE();
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#undef RTASN1TMPL_TYPE
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#undef RTASN1TMPL_EXT_NAME
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#undef RTASN1TMPL_INT_NAME
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync/*
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync * X.509 OldAuthorityKeyIdentifier (IPRT representation).
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync */
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#define RTASN1TMPL_TYPE RTCRX509OLDAUTHORITYKEYIDENTIFIER
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#define RTASN1TMPL_EXT_NAME RTCrX509OldAuthorityKeyIdentifier
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#define RTASN1TMPL_INT_NAME rtCrX509OldAuthorityKeyIdentifier
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsyncRTASN1TMPL_BEGIN_SEQCORE();
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsyncRTASN1TMPL_MEMBER_OPT_ITAG_CP( KeyIdentifier, RTASN1OCTETSTRING, RTAsn1OctetString, 0);
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsyncRTASN1TMPL_MEMBER_OPT_XTAG( T1, CtxTag1, AuthorityCertIssuer, RTCRX509NAME, RTCrX509Name, 1);
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsyncRTASN1TMPL_MEMBER_OPT_ITAG_CP( AuthorityCertSerialNumber, RTASN1INTEGER, RTAsn1Integer, 2);
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsyncRTASN1TMPL_END_SEQCORE();
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#undef RTASN1TMPL_TYPE
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#undef RTASN1TMPL_EXT_NAME
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#undef RTASN1TMPL_INT_NAME
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync/*
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync * One X.509 PolicyQualifierInfo.
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync */
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#define RTASN1TMPL_TYPE RTCRX509POLICYQUALIFIERINFO
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#define RTASN1TMPL_EXT_NAME RTCrX509PolicyQualifierInfo
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#define RTASN1TMPL_INT_NAME rtCrX509PolicyQualifierInfo
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsyncRTASN1TMPL_BEGIN_SEQCORE();
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsyncRTASN1TMPL_MEMBER( PolicyQualifierId, RTASN1OBJID, RTAsn1ObjId);
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsyncRTASN1TMPL_MEMBER( Qualifier, RTASN1DYNTYPE, RTAsn1DynType);
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsyncRTASN1TMPL_END_SEQCORE();
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#undef RTASN1TMPL_TYPE
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#undef RTASN1TMPL_EXT_NAME
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#undef RTASN1TMPL_INT_NAME
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync/*
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync * Sequence of X.509 PolicyQualifierInfo.
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync */
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#define RTASN1TMPL_TYPE RTCRX509POLICYQUALIFIERINFOS
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#define RTASN1TMPL_EXT_NAME RTCrX509PolicyQualifierInfos
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#define RTASN1TMPL_INT_NAME rtCrX509PolicyQualifierInfos
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsyncRTASN1TMPL_SEQ_OF(RTCRX509POLICYQUALIFIERINFO, RTCrX509PolicyQualifierInfo);
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#undef RTASN1TMPL_TYPE
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#undef RTASN1TMPL_EXT_NAME
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#undef RTASN1TMPL_INT_NAME
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync/*
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync * One X.509 PolicyInformation.
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync */
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#define RTASN1TMPL_TYPE RTCRX509POLICYINFORMATION
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#define RTASN1TMPL_EXT_NAME RTCrX509PolicyInformation
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#define RTASN1TMPL_INT_NAME rtCrX509PolicyInformation
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsyncRTASN1TMPL_BEGIN_SEQCORE();
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsyncRTASN1TMPL_MEMBER( PolicyIdentifier, RTASN1OBJID, RTAsn1ObjId);
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsyncRTASN1TMPL_MEMBER_OPT_ITAG_UC( PolicyQualifiers, RTCRX509POLICYQUALIFIERINFOS, RTCrX509PolicyQualifierInfos, ASN1_TAG_SEQUENCE);
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsyncRTASN1TMPL_END_SEQCORE();
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#undef RTASN1TMPL_TYPE
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#undef RTASN1TMPL_EXT_NAME
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#undef RTASN1TMPL_INT_NAME
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync/*
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync * Sequence of X.509 CertificatePolicies.
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync */
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#define RTASN1TMPL_TYPE RTCRX509CERTIFICATEPOLICIES
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#define RTASN1TMPL_EXT_NAME RTCrX509CertificatePolicies
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#define RTASN1TMPL_INT_NAME rtCrX509CertificatePolicies
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsyncRTASN1TMPL_SEQ_OF(RTCRX509POLICYINFORMATION, RTCrX509PolicyInformation);
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#undef RTASN1TMPL_TYPE
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#undef RTASN1TMPL_EXT_NAME
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#undef RTASN1TMPL_INT_NAME
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync/*
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync * One X.509 PolicyMapping (IPRT representation).
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync */
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#define RTASN1TMPL_TYPE RTCRX509POLICYMAPPING
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#define RTASN1TMPL_EXT_NAME RTCrX509PolicyMapping
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#define RTASN1TMPL_INT_NAME rtCrX509PolicyMapping
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsyncRTASN1TMPL_BEGIN_SEQCORE();
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsyncRTASN1TMPL_MEMBER( IssuerDomainPolicy, RTASN1OBJID, RTAsn1ObjId);
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsyncRTASN1TMPL_MEMBER( SubjectDomainPolicy, RTASN1OBJID, RTAsn1ObjId);
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsyncRTASN1TMPL_END_SEQCORE();
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#undef RTASN1TMPL_TYPE
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#undef RTASN1TMPL_EXT_NAME
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#undef RTASN1TMPL_INT_NAME
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync/*
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync * Sequence of X.509 PolicyMappings (IPRT representation).
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync */
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#define RTASN1TMPL_TYPE RTCRX509POLICYMAPPINGS
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#define RTASN1TMPL_EXT_NAME RTCrX509PolicyMappings
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#define RTASN1TMPL_INT_NAME rtCrX509PolicyMappings
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsyncRTASN1TMPL_SEQ_OF(RTCRX509POLICYMAPPING, RTCrX509PolicyMapping);
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#undef RTASN1TMPL_TYPE
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#undef RTASN1TMPL_EXT_NAME
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#undef RTASN1TMPL_INT_NAME
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync/*
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync * X.509 BasicConstraints (IPRT representation).
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync */
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#define RTASN1TMPL_TYPE RTCRX509BASICCONSTRAINTS
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#define RTASN1TMPL_EXT_NAME RTCrX509BasicConstraints
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#define RTASN1TMPL_INT_NAME rtCrX509BasicConstraints
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsyncRTASN1TMPL_BEGIN_SEQCORE();
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsyncRTASN1TMPL_MEMBER_DEF_ITAG_UP( CA, RTASN1BOOLEAN, RTAsn1Boolean, ASN1_TAG_BOOLEAN, false);
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsyncRTASN1TMPL_MEMBER_OPT_ITAG_UP( PathLenConstraint, RTASN1INTEGER, RTAsn1Integer, ASN1_TAG_INTEGER);
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsyncRTASN1TMPL_END_SEQCORE();
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#undef RTASN1TMPL_TYPE
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#undef RTASN1TMPL_EXT_NAME
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#undef RTASN1TMPL_INT_NAME
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync/*
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync * X.509 GeneralSubtree (IPRT representation).
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync */
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#define RTASN1TMPL_TYPE RTCRX509GENERALSUBTREE
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#define RTASN1TMPL_EXT_NAME RTCrX509GeneralSubtree
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#define RTASN1TMPL_INT_NAME rtCrX509GeneralSubtree
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsyncRTASN1TMPL_BEGIN_SEQCORE();
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsyncRTASN1TMPL_MEMBER( Base, RTCRX509GENERALNAME, RTCrX509GeneralName);
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsyncRTASN1TMPL_MEMBER_DEF_ITAG_UP( Minimum, RTASN1INTEGER, RTAsn1Integer, ASN1_TAG_INTEGER, 0);
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsyncRTASN1TMPL_MEMBER_OPT_ITAG_UP( Maximum, RTASN1INTEGER, RTAsn1Integer, ASN1_TAG_INTEGER);
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsyncRTASN1TMPL_END_SEQCORE();
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#undef RTASN1TMPL_TYPE
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#undef RTASN1TMPL_EXT_NAME
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#undef RTASN1TMPL_INT_NAME
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync/*
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync * Sequence of X.509 GeneralSubtrees (IPRT representation).
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync */
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#define RTASN1TMPL_TYPE RTCRX509GENERALSUBTREES
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#define RTASN1TMPL_EXT_NAME RTCrX509GeneralSubtrees
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#define RTASN1TMPL_INT_NAME rtCrX509GeneralSubtrees
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsyncRTASN1TMPL_SEQ_OF(RTCRX509GENERALSUBTREE, RTCrX509GeneralSubtree);
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#undef RTASN1TMPL_TYPE
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#undef RTASN1TMPL_EXT_NAME
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#undef RTASN1TMPL_INT_NAME
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync/*
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync * X.509 NameConstraints (IPRT representation).
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync */
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#define RTASN1TMPL_TYPE RTCRX509NAMECONSTRAINTS
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#define RTASN1TMPL_EXT_NAME RTCrX509NameConstraints
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#define RTASN1TMPL_INT_NAME rtCrX509NameConstraints
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsyncRTASN1TMPL_BEGIN_SEQCORE();
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsyncRTASN1TMPL_MEMBER_OPT_XTAG( T0, CtxTag0, PermittedSubtrees, RTCRX509GENERALSUBTREES, RTCrX509GeneralSubtrees, 0);
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsyncRTASN1TMPL_MEMBER_OPT_XTAG( T1, CtxTag1, ExcludedSubtrees, RTCRX509GENERALSUBTREES, RTCrX509GeneralSubtrees, 1);
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsyncRTASN1TMPL_END_SEQCORE();
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#undef RTASN1TMPL_TYPE
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#undef RTASN1TMPL_EXT_NAME
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#undef RTASN1TMPL_INT_NAME
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync/*
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync * X.509 PolicyConstraints (IPRT representation).
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync */
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#define RTASN1TMPL_TYPE RTCRX509POLICYCONSTRAINTS
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#define RTASN1TMPL_EXT_NAME RTCrX509PolicyConstraints
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#define RTASN1TMPL_INT_NAME rtCrX509PolicyConstraints
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsyncRTASN1TMPL_BEGIN_SEQCORE();
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsyncRTASN1TMPL_MEMBER_OPT_ITAG_CP( RequireExplicitPolicy, RTASN1INTEGER, RTAsn1Integer, 0);
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsyncRTASN1TMPL_MEMBER_OPT_ITAG_CP( InhibitPolicyMapping, RTASN1INTEGER, RTAsn1Integer, 1);
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsyncRTASN1TMPL_END_SEQCORE();
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#undef RTASN1TMPL_TYPE
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#undef RTASN1TMPL_EXT_NAME
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#undef RTASN1TMPL_INT_NAME
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync/*
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync * One X.509 Extension.
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync */
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#define RTASN1TMPL_TYPE RTCRX509EXTENSION
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#define RTASN1TMPL_EXT_NAME RTCrX509Extension
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#define RTASN1TMPL_INT_NAME rtCrX509Extension
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsyncRTASN1TMPL_BEGIN_SEQCORE();
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsyncRTASN1TMPL_MEMBER( ExtnId, RTASN1OBJID, RTAsn1ObjId);
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsyncRTASN1TMPL_MEMBER_DEF_ITAG_UP( Critical, RTASN1BOOLEAN, RTAsn1Boolean, ASN1_TAG_BOOLEAN, false);
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsyncRTASN1TMPL_MEMBER( ExtnValue, RTASN1OCTETSTRING, RTAsn1OctetString);
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsyncRTASN1TMPL_EXEC_DECODE(rc = RTCrX509Extension_ExtnValue_DecodeAsn1(pCursor, fFlags, pThis, "ExtnValue"))
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsyncRTASN1TMPL_EXEC_CLONE( rc = rtCrX509Extension_ExtnValue_Clone(pThis, pSrc))
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsyncRTASN1TMPL_END_SEQCORE();
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#undef RTASN1TMPL_TYPE
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#undef RTASN1TMPL_EXT_NAME
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#undef RTASN1TMPL_INT_NAME
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync/*
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync * Sequence of X.509 Extensions.
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync */
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#define RTASN1TMPL_TYPE RTCRX509EXTENSIONS
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#define RTASN1TMPL_EXT_NAME RTCrX509Extensions
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#define RTASN1TMPL_INT_NAME rtCrX509Extensions
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsyncRTASN1TMPL_SEQ_OF(RTCRX509EXTENSION, RTCrX509Extension);
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#undef RTASN1TMPL_TYPE
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#undef RTASN1TMPL_EXT_NAME
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#undef RTASN1TMPL_INT_NAME
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync/*
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync * X.509 TbsCertificate.
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync */
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#define RTASN1TMPL_TYPE RTCRX509TBSCERTIFICATE
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#define RTASN1TMPL_EXT_NAME RTCrX509TbsCertificate
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#define RTASN1TMPL_INT_NAME rtCrX509TbsCertificate
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsyncRTASN1TMPL_BEGIN_SEQCORE();
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsyncRTASN1TMPL_MEMBER_OPT_XTAG( T0, CtxTag0, Version, RTASN1INTEGER, RTAsn1Integer, 0);
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsyncRTASN1TMPL_MEMBER( SerialNumber, RTASN1INTEGER, RTAsn1Integer);
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsyncRTASN1TMPL_MEMBER( Signature, RTCRX509ALGORITHMIDENTIFIER, RTCrX509AlgorithmIdentifier);
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsyncRTASN1TMPL_MEMBER( Issuer, RTCRX509NAME, RTCrX509Name);
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsyncRTASN1TMPL_MEMBER( Validity, RTCRX509VALIDITY, RTCrX509Validity);
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsyncRTASN1TMPL_MEMBER( Subject, RTCRX509NAME, RTCrX509Name);
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsyncRTASN1TMPL_MEMBER( SubjectPublicKeyInfo, RTCRX509SUBJECTPUBLICKEYINFO, RTCrX509SubjectPublicKeyInfo);
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsyncRTASN1TMPL_MEMBER_OPT_XTAG( T1, CtxTag1, IssuerUniqueId, RTCRX509UNIQUEIDENTIFIER, RTCrX509UniqueIdentifier, 1);
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsyncRTASN1TMPL_MEMBER_OPT_XTAG( T2, CtxTag2, SubjectUniqueId, RTCRX509UNIQUEIDENTIFIER, RTCrX509UniqueIdentifier, 2);
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsyncRTASN1TMPL_MEMBER_OPT_XTAG( T3, CtxTag3, Extensions, RTCRX509EXTENSIONS, RTCrX509Extensions, 3);
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsyncRTASN1TMPL_EXEC_DECODE( rc = RTCrX509TbsCertificate_ReprocessExtensions(pThis, pCursor->pPrimary->pErrInfo) )
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsyncRTASN1TMPL_EXEC_CLONE( rc = RTCrX509TbsCertificate_ReprocessExtensions(pThis, NULL) )
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsyncRTASN1TMPL_EXEC_CHECK_SANITY( rc = rtCrX509TbsCertificate_CheckSanityExtra(pThis, fFlags, pErrInfo, pszErrorTag) )
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsyncRTASN1TMPL_END_SEQCORE();
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#undef RTASN1TMPL_TYPE
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#undef RTASN1TMPL_EXT_NAME
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#undef RTASN1TMPL_INT_NAME
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync/*
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync * One X.509 Certificate.
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync */
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#define RTASN1TMPL_TYPE RTCRX509CERTIFICATE
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#define RTASN1TMPL_EXT_NAME RTCrX509Certificate
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#define RTASN1TMPL_INT_NAME rtCrX509Certificate
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsyncRTASN1TMPL_BEGIN_SEQCORE();
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsyncRTASN1TMPL_MEMBER( TbsCertificate, RTCRX509TBSCERTIFICATE, RTCrX509TbsCertificate);
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsyncRTASN1TMPL_MEMBER( SignatureAlgorithm, RTCRX509ALGORITHMIDENTIFIER, RTCrX509AlgorithmIdentifier);
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsyncRTASN1TMPL_MEMBER( SignatureValue, RTASN1BITSTRING, RTAsn1BitString);
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsyncRTASN1TMPL_EXEC_CHECK_SANITY( rc = rtCrX509Certificate_CheckSanityExtra(pThis, fFlags, pErrInfo, pszErrorTag) )
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsyncRTASN1TMPL_END_SEQCORE();
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#undef RTASN1TMPL_TYPE
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#undef RTASN1TMPL_EXT_NAME
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#undef RTASN1TMPL_INT_NAME
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync/*
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync * Set of X.509 Certificates.
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync */
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync/** @todo Microsoft Hacks. ExtendedCertificates. */
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#define RTASN1TMPL_TYPE RTCRX509CERTIFICATES
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#define RTASN1TMPL_EXT_NAME RTCrX509Certificates
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#define RTASN1TMPL_INT_NAME rtCrX509Certificates
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsyncRTASN1TMPL_SET_OF(RTCRX509CERTIFICATE, RTCrX509Certificate);
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#undef RTASN1TMPL_TYPE
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#undef RTASN1TMPL_EXT_NAME
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#undef RTASN1TMPL_INT_NAME
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync