﻿<?xml version='1.0' encoding='utf-8'?>
<?rfc toc="yes" ?>
<?rfc symrefs="yes" ?>
<?rfc sortrefs="yes"?>
<?rfc compact="yes" ?>
<?rfc subcompact="no" ?>
<?rfc iprnotified="no" ?>
<?rfc strict="no" ?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" consensus="true" docName="draft-moskowitz-drip-dki-09"
	category="std" ipr="trust200902" obsoletes="" submissionType="IETF" tocDepth="3"
	xml:lang="en" tocInclude="true" symRefs="true" sortRefs="true" version="3">

<front> <title abbrev="DRIP DKI">The DRIP DET public Key Infrastructure</title>
    <seriesInfo name="Internet-Draft" value="draft-moskowitz-drip-dki-09"/>
	<author fullname="Robert Moskowitz" initials="R" surname="Moskowitz">
    <organization>HTT Consulting</organization>
    <address>
      <postal>
	    <street></street>
        <city>Oak Park</city>
        <region>MI</region>
        <code>48237</code>
        <country>USA</country>
      </postal>
      <email>rgm@labs.htt-consult.com</email>
	</address>
	</author>
	<author fullname="Stuart W. Card" initials="S." surname="Card">
	<organization>AX Enterprize, LLC</organization>
	<address>
	  <postal>
	    <street>4947 Commercial Drive</street>
	    <city>Yorkville</city>
	    <region>NY</region>
	    <code>13495</code>
	    <country>USA</country>
	  </postal>
	  <email>stu.card@axenterprize.com</email>
	</address>
	</author>
<date year="2023" />
   <area>Internet</area>
   <workgroup>INTAREA</workgroup>
    <keyword>RFC</keyword>
     <keyword>Request for Comments</keyword>
     <keyword>I-D</keyword>
     <keyword>Internet-Draft</keyword>
     <keyword>DRIP</keyword>
     <keyword>PKIX</keyword>
<abstract>
<t>
	The DRIP Entity Tag (DET) public Key Infrastructure (DKI) is a 
	specific variant of classic Public Key Infrastructures (PKI) where 
	the organization is around the DET, in place of X.520 Distinguished 
	Names. Further, the DKI uses DRIP Endorsements in place of X.509 
	certificates for establishing trust within the DKI.
</t>
<t>
	There are two X.509 profiles for shadow PKI behind the DKI, with 
	many of their X.509 fields mirroring content in the DRIP 
	Endorsements.  This PKI can at times be used where X.509 is 
	expected and non-constrained communication links are available that 
	can handle their larger size.
</t>
<t>
	C509 (CBOR) encoding of all X.509 certificates are also provided as 
	an alternative for where there are gains in reduced object size.
</t>
</abstract>
</front>
<middle>
<section numbered="true" toc="default"> <name>Introduction</name>
<t>
	A DRIP Entity Tag (DET, <xref target="RFC9374" format="default"/>) 
	public Key Infrastructure (DKI) is designed as a strict hierarchy, 
	governed by the administrator of the DET prefix <xref 
	target="IPv6-SPECIAL" format="default"/> and having the authority 
	to authorize RAAs. RAAs in turn authorize HDAs within their domain. 
	This authorization is managed via a set of DETs whose sole use is 
	to define the DKI.  The RAA Authorization DETs MUST reside in  HID 
	= RAA#|0 (Apex Authorization DET in HID = 0|0).
</t>
<t>
	There are three main classifications/types of DETs:
</t>
<ul empty="true">
	<li>
	<dl newline="true" spacing="normal">
		<dt>Authorization DETs</dt>
		<dd>
			Used to assert the authorization of a DKI level.
		</dd>
		<dt>Issuing DETs</dt>
		<dd>
			Used to assert operations within DKI level.
		</dd>
        <dt>Operational DETs</dt>
        <dd>
			Used by operational entities within DKI level
		</dd>
 	</dl>
 	</li>
</ul>
<t>
	All DETs exist in DET-Endorsements (<xref 
	target="I-D.ietf-drip-registries" section="B" format="default"/>). 
	These DET-Endorsements provide the proof of registration and thus 
	trust.  These DETs, through chained Endorsements define the DKI as 
	follows:
</t>
<figure anchor="reg-class-fig"> <name>The DKI Endorsements</name>
	<artwork align="center" name="" type="" alt="">
<![CDATA[
                +----------+
                |   Auth   | 
                +-o------o-+
                  |      |
                  |    +-o-----+
 Apex             |   +--o----+|
                  |   | Issue |+
                  |   +---o---+
                  |      |
                  |    +-o-----+
                  |   +--o----+|
                  |   |CRL,Srv|+
                  |   +-------+
                  |      
******************|************************************
                +-o--------+
               +-o--------+|
               |   Auth   |+
               +--o-----o-+
                  |     |
                  |   +-o-----+
 RAAs             |  +--o----+|
                  |  | Issue |+
                  |  +---o---+
                  |     |
                  |   +-o-----+
                  |  +--o----+|
                  |  |CRL,Srv|+
                  |  +-------+
                  |      
******************|************************************
                +-o--------+
               +-o--------+|
               |   Auth   |+
               +----o-----+
                    |
                  +-o-----+
 HDAs            +--o----+|
                 | Issue |+
                 +---o---+
                     |
                   +-o-------+
                  +--o------+|
                  | CRL,Srv ||
                  |UAS,Pilot|+
                  +---------+
                   
*******************************************************
]]>
	</artwork>
</figure>
<t>
	The Authorization DETs exist in a set of 
	DET-Authorization-Endorsements.  The lifetime of these endorsements 
	SHOULD be no less than 1 year, recommended 5 years, and should not 
	exceed 10 years.  Endorsements SHOULD be reissued prior to expiry 
	(may be for a new DET).  DETs used to define this authorization are 
	replaced per undetermined policy (note these DETs do very little 
	signing, see <xref target="offline_keys" />).
</t>
<t>
	This separation of DET type roles reduce the risk of private key 
	loss for the critical Authentication DETs by making them 
	infrequently used and only used in offline operations.  It does 
	make the chain of trust for a HDA customers' Operational DETs to be 
	4 Endorsements.
</t>
<section anchor="no-apex" numbered="true" toc="default"> <name>The DKI without an Apex Entity</name>
<t>
	The hierarchical design of the DKI is the most efficient possible 
	with the least data transmission overhead.  But it requires the 
	participation of an Entity, in the role of the Apex, trusted by all 
	the RAAs.  The logical Entity for this role is the International 
	Civil Aviation Authority (ICAO), but the processes for ICAO to take 
	on this role are complex.  Work is ongoing with the ICAO, but 
	timing is indeterminate and immediately implementable alternatives 
	are needed.
</t>
<t>
	The DKI can work by the RAAs establishing mutual trust within a 
	geographic region.  It is envisioned that the initial RAA 
	assignments will follow <xref target="I-D.ietf-drip-registries" 
	section="4.1" format="default"/>, Table 1.  Without an Apex, each 
	RAA self-endorses its Authentication DET, acting as its own apex.  
	However, RAAs issued DETs (via their HDAs) will not exist in the 
	air by themselves (except perhaps for some small island nations), 
	thus a geographic regional consortium of RAAs will need to deploy 
	some mechanism for mutual trust for their End Entities to fly 
	together.
</t>
<t>
	There are three reasonable approaches for RAAs to manage their 
	mutual trust and it is likely that all will occur:
</t>
<ul empty="true">
	<li>
		<ol>
			<li>
				RAA Trust lists
			</li>
			<li>
				RAA Cross-endorsements
			</li>
			<li>
				Bridge RAA with cross-endorsements to RAAs
			</li>
		</ol>
 	</li>
</ul>
<t>
	It is recommended that the RAA Trust List be used during initial 
	DKI testing.  The cross-endorsing options will need their own 
	testing to work out how best to deploy them.
</t>
<section anchor="raa_trust_list" numbered="true" toc="default"> <name>RAA Trust lists</name>
<t>
	A consortium of RAAs MAY choose to maintain a list of RAAs they 
	trust.  It is recommended that this list consist of the RAA's 
	Authentication DET and HI.  Each RAA in the consortium SHOULD 
	maintain its own list, signed with its Authentication DET.
</t>
<t>
	This Trust List MAY contain each RAA's Authentication DET 
	self-endorsement validity dates.  If a trusted RAA has more than 
	one self-endorsement (most likely to support key rollover), 
	including these dates makes it easier to have an RAA duplicated in 
	the list.
</t>
<t>
	How the RAAs communicate between themselves to maintain these lists 
	is out of scope here.  Each RAA SHOULD include validity dates in 
	its Trust List.  Frequency of Trust List updates is also out of 
	scope here.
</t>
<t>
	Trust Lists is the simplest method to implement, but may not be the 
	simplest to maintain over time.
</t>
</section>
<section anchor="raa_cross_endorse" numbered="true" toc="default"> <name>RAA Cross-endorsements</name>
<t>
	A consortium of RAAs MAY choose to cross-endorse each's 
	Authentication DET.  This is done by one RAA endorsing for its 
	community, an other's Authentication DET.  This establishes one-way 
	trust; thus, in practice, each RAA needs to cross-endorse each 
	RAA's Authentication DET within the consortium.
</t>
<t>
	RAA Cross-endorsements definitely has a scaling (n^2) problem.  It 
	works for a starting point or for a very small group of RAAs.
</t>
<t>
	How these RAA Cross-endorsements are discovered has not been 
	defined at this point.  One potential is via a to-be-defined DNS 
	HHIT RR within the endorsing RAA's zone.  This information would 
	need to be cached by any potential offline entity.
</t>
</section>
<section anchor="raa_bridge_endorse" numbered="true" toc="default"> <name>Bridge RAA with cross-endorsements to RAAs</name>
<t>
	A consortium of RAAs MAY select one RAA to function as a "Bridge" 
	between all members of the consortium.  In this approach, the 
	"Bridge RAA" does not authorize any sub-HDAs.  Its sole purpose is 
	the cross-endorse to member RAAs.  The Bridge and each RAA cross 
	endorse as in <xref target="raa_cross_endorse" />.
</t>
<t>
	Bridge RAA Cross-endorsementing reduces the scaling challenge to 
	only the number of RAAs in the consortium.  Plus there is little 
	need to communicate any changes in the cross-endorsementing to the 
	various parties within the consortium.  Thus this option scales the 
	best out of the three alternatives to DKI Apex hierarchy.
</t>
<t>
	How these RAA Cross-endorsements are discovered has not been 
	defined at this point.  The Bridge RAA will have to be known to all 
	parties within the consortium.  One potential, as above, is via a 
	to-be-defined DNS DET RR (<xref target="I-D.ietf-drip-registries" 
	section="8.1.1" format="default"/>) within the endorsing RAA's 
	zone.  This information would need to be cached by any potential 
	offline entity.
</t>
</section>
</section>
<section anchor="c509" numbered="true" toc="default"> <name>The C509 encoding of X.505 Certificates</name>
<t>
	A price in object size is paid in the ASN.1 encoding of X.509 
	certificates.  This is often a barrier for use over constrained 
	links and even storage demands on constrained processing platforms. 
	The <xref target="I-D.ietf-cose-cbor-encoded-cert" 
	format="default"/> provides an alternative encoding in two 
	different manners:
</t>
<ul empty="true">
	<li>
		<ol>
			<li>
				An invertible CBOR re-encoding of DER encoded X.509 
				certificates <xref target="RFC5280"/>, which can be 
				reversed to obtain the original DER encoded X.509 
				certificate.
			</li>
			<li>
				Natively signed C509 certificates, where the signature 
				is calculated over the CBOR encoding instead of over 
				the DER encoding as in 1. This removes the need for 
				ASN.1 and DER parsing and the associated complexity but 
				they are not backwards compatible with implementations 
				requiring DER encoded X.509.
			</li>
		</ol>
 	</li>
</ul>
<t>
	The invertible CBOR encoding is recommended for use here.  This can 
	be readily implemented through libraries that do the translation, 
	as needed, between X.509 and c509.
</t>
</section>
</section>
<section anchor="terms" numbered="true" toc="default"> <name>Terms and Definitions</name>
<section numbered="true" toc="default"> <name>Requirements Terminology</name>
	<t>
		The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
		NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED",
		"MAY", and "OPTIONAL" in this document are to be interpreted as
		described in BCP 14 <xref target="RFC2119" /> <xref
		target="RFC8174" /> when, and only when, they appear in all
		capitals, as shown here.
	</t>
</section>
<section numbered="true" toc="default"> <name>Definitions</name>
<t>
	This document uses the terms defined in <xref target="RFC9153" 
	section="2.2" format="default">Drip Requirements and 
	Terminology</xref> and in <xref target="RFC9434" section="2" 
	format="default">Drip Architecture</xref>.  The following new terms 
	are used in the document:
</t>
	<dl newline="true" spacing="normal">
		<dt>Authorization DETs</dt>
		<dd>
			DETs whose use is to define a hierarchy level and endorse 
			lower hierarchy level Authorization DETs and finally 
			Issuing DETs at this hierarchy level.  They the DETs in the 
			Authentication Endorsements and X.509 certificates.
		</dd>
		<dt>DKI</dt>
		<dd>
			A DRIP Entity Tag (DET) public Key Infrastructure.  Similar 
			to an X.509 PKI, but built on the DRIP Endorsements.
		</dd>
		<dt>International Aviation Trust Framework (IATF)</dt>
		<dd>
			The ICAO IATF is comprised of a set of policies, 
			requirements, and best practices that will enable resilient 
			and secured ground-ground, air-ground, and air-air exchange 
			of digital information, and among both traditional and 
			newly-emerging system stakeholders.
		</dd>
		<dt>Issuing DETs</dt>
		<dd>
			DETs whose use is to sign Endorsements and X.509 
			certificates for Operational DETs that are at the same 
			hierarchy level as the Issuing DET.
		</dd>
		<dt>Operational DETs</dt>
		<dd>
			DETs used by various entities in DRIP protocols and as 
			non-routable IPv6 addresses.  A partial list of such 
			entities includes: GCS, Infrastructure (e.g. wireless tower 
			systems), Pilots-in-command, Servers, UA.
		</dd>
		<dt>​System Wide Information Management (SWIM)</dt>
		<dd>
			The ICAO SWIM consists of Standards, Infrastructure and 
			Governance enabling the management of Air Navigation 
			Systems (ANS) related information and its exchange between 
			qualified parties via interoperable services.
		</dd>
 	</dl>
</section>
</section>
<section anchor="DKI" numbered="true" toc="default"> <name>The DET public Key Infrastructure (DKI)</name>
<section anchor="DKI_Levels" numbered="true" toc="default"> <name>The DKI Levels</name>
<section anchor="DKI_apex" numbered="true" toc="default"> <name>The Apex</name>
<t>
	The Apex Authorization DET is used to endorse RAA Authorization 
	DETs and its own Apex Issuing DETs; it has no other use.  This is 
	the case for all Authorization DETs.  Apex Issuing DETs are used 
	to endorse DETs, with HID= 0|0, used by Apex services.
</t>
<t>
	The DET Apex may be only theoretical if no Entity steps forward to 
	provide this role.
</t>
</section>
<section anchor="DKI_raas" numbered="true" toc="default"> <name>The RAAs</name>
<t>
	Each RAA use its Authorization DET (HID = RAA#|0) to endorse its 
	RAA Issuing DET(s) (also HID = RAA#|0) and for signing its HDA 
	Authorization DETs (HID = RAA#|HDA#).
</t>
<t>
	An RAA may have multiple Issuing DETs (HID = RAA#|0), each for a 
	different use (e.g. CRL signing, RAA server signing).  It is 
	expected that, over time, an RAA will rollover its Issuing DETs, 
	thus at times there will be more than ONE Issuing DET  per role 
	in use.
</t>
<t>
	These Issuing DETs, like those at the Apex level, constitute an 
	implicit HDA.  There is no Authorization DET for this implicit HDA, 
	but other than only signing for entities like servers needed by the 
	RAA, it should be considered as an HDA in terms of policies.
</t>
<t>
	The initial RAA range assignments are defined in <xref 
	target="I-D.ietf-drip-registries" section="4.1" format="default"/>, 
	Table 1.  It is anticipated that DRIP usage will expand to use into 
	General/Civil Aviation.  Thus at some point a block of RAAs will be 
	set aside much like for the CTA-2063A <xref target="CTA2063A" 
	format="default"/> range.
</t>
</section>
<section anchor="DKI_hdas" numbered="true" toc="default"> <name>The HDAs</name>
<t>
	Each HDA use its Authorization DET to endorse its HDA Issuing 
	DETs (e.g. RAA=267, HDA=567).
</t>
<t>
	An HDA Issuing DET is used to endorse Operational DETs; those 
	used by the HDA for its services (e.g. USS) and for Devices (e.g. 
	UA, GCS, ground infrastructure) partaking in the HDA's services.
</t>
<t>
	If the Operational DET is a Manufacturer DET, the "valid not after" 
	date (vna) MUST be 99991231235959Z.
</t>
</section>
</section>
<section anchor="Offline_Auth" numbered="true" toc="default"> <name>The Offline Requirement for Authentication DETs</name>
<t>
	The Authentication DETs private keys MUST NEVER be on a system with 
	any network connectivity.  Also efforts MUST be taken to limit any 
	external digital media connections to these offline systems.  
	Compromise of an Authentication DET compromises its and all lower 
	hierarchy levels. Such a compromise could result in a major 
	re-signing effort with a new Authentication DET.  Also, during the 
	time of compromise, fraudulent additions to the DKI could have 
	occurred.
</t>
<t>
	This means that the process whereby the Authentication DET is used 
	to sign the Endorsement/X.509 certificate of its level's Issuing 
	DET(s) and lower level Authentication DETs MUST be conducted in an 
	offline manner.
</t>
<t>
	This offline process need not be onerous.  For example, QR codes 
	could be used to pass CSR objects to the offline Authentication DET 
	system, and this system could produce QR codes containing the 
	Endorsements and X.509 certificates it signed.
</t>
<t>
	A video conference between the parties could have one side show its 
	QR code and the other copy and print it to move between the video 
	conferencing system and the offline system.  This is a 
	simplification of a larger signing operation, but shows how such a 
	signing need not require travel and expensive hand-off methodologies.
</t>
<t>
	It should be noted that the endorsement of Issuing DETs follow the 
	same restriction, as it is done with the Authentication DET.  It 
	MUST be conducted in an offline manner.
</t>
</section>
<section anchor="DKI_dns" numbered="true" toc="default"> <name>DNS view of DKI</name>
<t>
	The primary view of the DKI is within DNS.  There are two main DNS 
	structures, one for DETs and one for DKI entities.
</t>
<t>
	In the DET DNS structure, only the Apex and RAA levels MUST be 
	DNSSEC signed.  The HDA level may be too dynamic for DNSSEC signing 
	(e.g. hundreds of new EE Operational DETs per hour); trust in the 
	EE Operational DETs within the HDA level comes through inclusion of 
	the HDA Endorsement of EE object.  A slow-churn HDA MAY use DNSSEC. 
	The RAA and HDA levels MUST contain their Endorsement by higher 
	object; this provides the needed trust in the Endorsement of EE 
	objects.  The Apex level Endorsement is self-signed, thus trust in 
	it is only possible via DNSSEC.
</t>
<t>
	Endorsements are currently stored in DNS via the CERT RR using a 
	private OID of 1.3.6.1.4.1.6715.2 (an alternative OID may be 
	1.3.9.16.2) and further classified by the Endorsement Type.  The 
	CERT RR is only a temporary RR for Endorsements, as it cannot 
	support DET revocation (<xref target="DET_revok" />).  DNS DET RR 
	(<xref target="I-D.ietf-drip-registries" section="8.1.1" 
	format="default"/>) will soon provide an alternative and 
	specifically designed RR for this purpose.  Other RR within these 
	levels will vary.  There also may be HIP, TLSA, and/or URI RR.
</t>
<t>
	Each level needs FQDNs for its Authorization DET and Issuing 
	DET(s) (e.g. PTR to DETs?).  FQDNs for services offered may also be 
	present, or a URI for the commercial FQDN for the DKI Entity.  TLSA 
	RR of DET SPKI may be directly included here.  Same with HIP RR. 
	The Authorization Endorsement SHOULD be present, as SHOULD be 
	Issuing Endorsements.
</t>
</section>
<section anchor="DET_revok" numbered="true" toc="default"> <name>Managing DET Revocation</name>
<t>
	For Operational DETs, there is no direct concept of DET revocation. 
	Operational DETs are either discoverable via DNS or not valid 
	despite being in a non-expired Endorsement signed an Issuing DET. 
	Thus if an Issuing Entity needs to "revoke" an Operational DET it 
	removes all entries for it from DNS, so a short TTL on those 
	records is recommended.
</t>
<t>
	Authorization and Issuing DETs are not so easily "revoked"; 
	something akin to an X.509 CRL mechanism is needed.  This could 
	best be dealt with by Endorsements managed in the new DET RR that 
	includes revocation status.  Thus <xref 
	target="I-D.ietf-drip-registries" section="8.1.1" 
	format="default"/> defines the specific RR for Endorsements that 
	will be used here.  Minimally, at least the revocation status and 
	revocation date(s) need to be in this RR.  Until this RR is 
	available, there is no mechanism, other than removal for 
	Authorization and Issuing DET revocations.
</t>
</section>
<section anchor="Offline_cache" numbered="true" toc="default"> <name>The Offline cache of HDA Issuing Endorsements</name>
<t>
	The Offline cache of HDA Issuing Endorsements, used to verify 
	various EE signed objects without needing DNS access, SHOULD 
	consist of the HDA Authentication DET Endorsements of the HDA 
	Issuing DETs. Thus the receiver has a trusted source of the HDA 
	Issuing DET Public Key (HI) in a DRIP standard object (136 bytes).  
	If the DKI DNS tree includes GEO location data and coverage, a 
	receiver could query some service for a trusted cache within some 
	radius of its location.  Such as, please tell me of all HDAs within 
	100KM of...
</t>
<t>
	This cache MAY contain the full chain up to the Apex.  This could 
	be helpful in limited connectivity environments when encountering 
	an HDA Issuing DET under a unknown Authenticated HDA or RAA.  The 
	needed trust chain could be shorter.
</t>
<section anchor="trust_cache" numbered="true" toc="default"> <name>HDA Offline Trust cache</name>
<t>
	There are situations where a list of specific HDAs for an entity to 
	trust for some application is needed.  This can best be met by 
	maintaining a cache as above but only of the trusted HDA Issuing 
	Endorsements.  How a list of this limited trust is maintain and 
	distributed is out of scope of this document and is left to those 
	needing this specific feature.
</t>
</section>
</section>
</section>
<section anchor="Shadow_PKI" numbered="true" toc="default"> <name>The DKI's Shadow PKI</name>
<t>
	The following defines the components of a DKI's shadow PKI built 
	from X.509 certificates with content that mirrors that in the DKI 
	Endorsements.  There are two profiles provided; both may be used, 
	or the community may select one for deployment.  In both cases, the 
	PKI tree mirrors that of the DKI levels (<xref target="DKI_Levels" 
	format="default"/>).
</t>
<t>
	At this point in defining the shadow PKIs, alternatives to a strict 
	hierarchy is still an open work item.  This work will follow the 
	pattern set in <xref target="no-apex" format="default"/>.
</t>
<section anchor="Shadow_lite_PKI" numbered="true" toc="default"> <name>Shadow Lite-PKI with minimal content Certificates</name>
<t>
	The Lite-PKI is designed to fully mirror the DKI in the smallest 
	reasonable X.509 certificates (e.g. 240 bytes for DER), but still 
	adhere to <xref target="RFC5280" format="default"/> MUST field 
	usage.
</t>
<section anchor="Lite_cert_content" numbered="true" toc="default"> <name>DRIP Lite X.509 certificate profile</name>
<t>
	The following is the profile for the DRIP X.509 Lite certificates
</t>
<artwork anchor="x509-lite-profile" name="" type="" alt="">
<![CDATA[
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 
        Signature Algorithm: ED25519
        Issuer: CN = 
        Validity
            Not Before: 
            Not After : 
        Subject: {CN = or Empty}
        Subject Public Key Info:
            Public Key Algorithm: ED25519
                ED25519 Public-Key:
                pub:
        X509v3 extensions: {Operation Certs ONLY}
            X509v3 Subject Alternative Name: critical
                IP Address:
    Signature Algorithm: ED25519
    Signature Value:
]]>
</artwork>
</section>
<section anchor="Lite_Serial_Number" numbered="true" toc="default"> <name>Serial Number</name>
<t>
	The Serial Number is a MUST field, but it has no usage in this 
	Lite-PKI.  It is 1-byte in size and thus duplicates are guaranteed.  
	To drop this field could make many X.509 parsing libraries fail.
</t>
</section>
<section anchor="Lite_Subject" numbered="true" toc="default"> <name>Subject</name>
<t>
	The Subject field is only used in Authentication and Issuing 
	Certificates. In this usage it will be the left 8 bytes of the DET  
	encoded in the commonName attribute.  Thus CN=2001003000000005 is 
	for an Apex Authentication certificate for prefix 2001003/28 and 
	SuiteID 5.
</t>
<t>
	For Entity Certificates, the Subject is Empty and the DET will be 
	in Subject Alternative Name (SAN).  In the SAN, the DET can be 
	properly encoded as an IPv6 address.
</t>
<t>
	To distinguish the various Issuing DET certificates under an 
	Authentication DET certificate, they will have a digit appended to 
	the CN to identify their role.  For consistency across the PKI, 
	these are defined in <xref target="I-D.ietf-drip-registries" 
	section="8.1.1" format="default"/>.
</t>
<ul empty="true">
	<li>
		Issuing - 1 (note: this was changed from "I")
 	</li>
	<li>
		CRL signing - CRL
 	</li>
</ul>
<t>
	Author's Note:  The change of DET Type from alpha to numeric has 
	not been fully implemented in this draft.  There are still CN 
	values with the alpha codes.
</t>
</section>
<section anchor="Lite_SAN" numbered="true" toc="default"> <name>Subject Alternative Name</name>
<t>
	Subject Alternative Name is only used in Operational (End Entity) 
	certificates.  It is used to provide the DET as an IP address with 
	an Empty Subject (SAN MUST be flagged as Critical).
</t>
<t>
	The Subject Alternative Name is also used in Manufacturer DET 
	certificates.  These may contain the hardwareModuleName as 
	described in <xref target="DOI_10.1109_IEEESTD.2018.8423794" 
	format="default"/> that references <xref target="RFC4108" 
	format="default"/>.
</t>
<t>
	Per <xref target="RFC5280" format="default"/> and <xref 
	target="DOI_10.1109_IEEESTD.2018.8423794" format="default"/>, 
	Manufacturer DET certificates with hardwareModuleName MUST have the 
	notAfter date as 99991231235959Z.
</t>
</section>
<section anchor="Lite_Issuer" numbered="true" toc="default"> <name>Issuer</name>
<t>
	The Issuer MUST be the higher level's Subject.
</t>
<t>
	The Issuer for the Apex Authentication certificate MUST be the 
	Subject (indicating self-signed).
</t>
<t>
	As the Subject field streams down to Issuer, it is very 
	important for walking the trust chain via the FQDNs derived from 
	the CN. Note that there may be multiple certificates with a CN, 
	particularly during key rollover.  It is up to applications to 
	select the proper signing certificate for validation.
</t>
</section>
<section anchor="test_Lite_PKI" numbered="true" toc="default"> <name>The Lite test PKI</name>
<t>
	The Lite test PKI, following the test DKI, was built with openSSL 
	using the "req" command to create a CSR and the "ca" command to 
	sign the CSR, making the certificate.  It should be noted that 
	these CSRs have all the content, less the validityDates, for making 
	a DRIP Endorsement, such that a registrar may prefer to receive 
	CSRs and use it to make both structures.  The registrar, per CA 
	practices will provide the validityDates per its policy.
</t>
<t>
	The self-signed certificates created by "req -x509" does not allow 
	selection of the validity dates, only the number of days from NOW. 
	The hack used around this limitation is to create a throw-away 
	self-signed certificate as above with the Apex's DET.  Then create 
	a CSR with that DET and sign it with the throw-away certificate, 
	setting the validity dates as desired.  This now becomes the actual 
	Apex self-signed Authentication certificate and the throw-away 
	certificate can now be thrown away.
</t>
</section>
</section>
<section anchor="Shadow_reg_PKI" numbered="true" toc="default"> <name>Shadow PKI with PKIX-like Certificates</name>
<t>
	The X.509 certificates are minimalistic (less than 400 bytes for 
	DER).  Any DRIP specific OIDs should come from the ICAO arc (e.g. 
	1.3.27.16.2).
</t>
<section anchor="Cert_content" numbered="true" toc="default"> <name>DRIP X.509 certificate profile</name>
<t>
	The following is the profile for the DRIP X.509 certificates
</t>
<artwork anchor="x509-profile" name="" type="" alt="">
<![CDATA[
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 
        Signature Algorithm: ED25519
        Issuer: CN = 
        Validity
            Not Before: 
            Not After : 
        Subject: {CN = or Empty}
        Subject Public Key Info:
            Public Key Algorithm: ED25519
                ED25519 Public-Key:
                pub:
        X509v3 extensions:
             X509v3 Subject Alternative Name: critical {in EE}
                IP Address:
           X509v3 Subject Key Identifier: {not in EE}
            X509v3 Authority Key Identifier: 
            X509v3 Basic Constraints: critical
            X509v3 Key Usage: critical
    Signature Algorithm: ED25519
    Signature Value:
]]>
</artwork>
</section>
<section anchor="Serial_Number" numbered="true" toc="default"> <name>Serial Number</name>
<t>
	The certificates will contain a 8-byte randomly generated Serial 
	Number, compliant with CABForum recommendations.  Serial Numbers 
	are included for CRL functionality.
</t>
</section>
<section anchor="Subject" numbered="true" toc="default"> <name>Subject</name>
<t>
	The certificates Subject will be coded in the commonName attribute. 
	This will either be the DET or the left 8 bytes of the DET (for 
	Authentication and Issuing DET certificates).  Thus 
	CN=2001003000000005 is for an Apex Authentication certificate for 
	prefix 2001003/28 and SuiteID 5.
</t>
<t>
	For Entity Certificates, the Subject is Empty and the DET will be 
	in Subject Alternative Name (SAN).  In the SAN, the DET can be 
	properly encoded as an IPv6 address.
</t>
<t>
	To distinguish the various Issuing DET certificates for the 
	Authentication DET certificate, they will have a letter appended to 
	the CN to identify their role.  For consistency across the PKI, 
	these should be in an IANA registry.  Current thought is for at 
	least:
</t>
<ul empty="true">
	<li>
		Issuing - I
 	</li>
	<li>
		CRL signing - CRL
 	</li>
</ul>
</section>
<section anchor="SAN" numbered="true" toc="default"> <name>Subject Alternative Name</name>
<t>
	Subject Alternative Name is only used in Operational (End Entity) 
	certificates.  It is used to provide the DET as an IP address with 
	an Empty Subject (SAN MUST be flagged as Critical).
</t>
<t>
	The Subject Alternative Name is also used in Manufacturer DET 
	certificates.  These may contain the hardwareModuleName as 
	described in <xref target="DOI_10.1109_IEEESTD.2018.8423794" 
	format="default"/> that references <xref target="RFC4108" 
	format="default"/>.
</t>
<t>
	Per <xref target="RFC5280" format="default"/> and <xref 
	target="DOI_10.1109_IEEESTD.2018.8423794" format="default"/>, 
	Manufacturer DET certificates with hardwareModuleName MUST have the 
	notAfter date as 99991231235959Z.
</t>
</section>
<section anchor="Issuer" numbered="true" toc="default"> <name>Issuer</name>
<t>
	The Issuer MUST be the higher level's Subject.
</t>
<t>
	The Issuer for the Apex Authentication certificate MUST be the 
	Subject (indicating self-signed).
</t>
</section>
<section anchor="SKI" numbered="true" toc="default"> <name>Subject Key Identifier</name>
<t>
	The Subject Key Identifier MUST be the DET.  This is a major 
	deviation from "standard" X.509 certificates that hash (normally 
	with SHA2) the Public Key to fill the Subject Key Identifier.
</t>
<t>
	The Subject Key Identifier is NOT included in EE certificates.
</t>
</section>
<section anchor="AKI" numbered="true" toc="default"> <name>Authority Key Identifier</name>
<t>
	The Authority Key Identifier MUST be the higher level's Subject Key 
	Identifier (i.e. DET).  This partially follows standard practice to 
	chain up the Authority Key Identifier' from the Subject Key 
	Identifier, except for how the Subject Key Identifiers are populated.
</t>
<t>
	The Authority Key Identifier for the Apex Authentication 
	certificate MUST be the Subject Key Identifier (indicating 
	self-signed).
</t>
</section>
<section anchor="test_PKI" numbered="true" toc="default"> <name>The PKIX-like test PKI</name>
<t>
	The PKIX-like test PKI, following the test DKI, was built with 
	openSSL using the "req" command to create a CSR and the "ca" 
	command to sign the CSR, making the certificate.  It should be noted that 
	these CSRs have all the content, less the validityDates, for making 
	a DRIP Endorsement, such that a registrar may prefer to receive 
	CSRs and use it to make both structures.  The registrar, per CA 
	practices will provide the validityDates per its policy.
</t>
<t>
	The self-signed certificates created by "req -x509" does not allow 
	selection of the validity dates, only the number of days from NOW. 
	The hack used around this limitation is to create a throw-away 
	self-signed certificate as above with the Apex's DET.  Then create 
	a CSR with that DET and sign it with the throw-away certificate, 
	setting the validity dates as desired.  This now becomes the actual 
	Apex self-signed Authentication certificate and the throw-away 
	certificate can now be thrown away.
</t>
</section>
</section>
</section>
<section anchor="IAC" numbered="true" toc="default"> <name>The DKI and the ICAO IAC PKI</name>
<t>
	The ICAO has defined an International Aviation Common PKI (IAC) PKI 
	in their ICAO Doc 10169 Aviation Common Certificate Policy (ACCP).  
	A test version of this PKI is rolling out for testing the Aviation 
	System Wide Information Management (SWIM) environment.
</t>
<t>
	Currently, this PKI is using ECDSA P-256 in its certificates.  This 
	is equivalent to DET SuiteID of "3".  The subjectNames in use can 
	readily by mapped to RAAs (<xref target="I-D.ietf-drip-registries" 
	section="4.1" format="default"/>, Table 1) and HDAs. Thus it is a 
	potential straight-forward technical work item to add DET support 
	into the PKI.
</t>
<t>
	The DETs can readily be stored in subjectAltName or more 
	interestingly in subjectKeyIdentifier (and thus 
	authorityKeyIdentifier).
</t>
<t>
	There are a number of advantages in the IATF and SWIM to have DETs 
	and the matching DNS available.  For example, the "cost" of adding 
	DETs to these certificates could result in moving much of their 
	content into DNS SRV RR and potentially reduce their size by 1/3rd.  
	DETs as the authorityKeyIdentifier would enable DNS for Trust Chain 
	discovery.
</t>
<t>
	Another approach is direct inclusion in this PKI of the DET "Lite" 
	EE certificates for constrained A2A communications.
</t>
<t>
	Discussions are ongoing with those involved with the IATF PKI and 
	this could open up DET usage into General/Civil Aviation.
</t>
</section>
<section anchor="IANA" numbered="true" toc="default"> <name>IANA Considerations</name>
<t>
	TBD - may need a registry of Signing certificate types.
</t>
</section>
<section anchor="security-considerations" numbered="true" toc="default"> <name>Security Considerations</name>
<t>
	Risks in the DKI are similar to those in any X.509 PKI.  The 
	methodologies to mitigate risk in PKI management should be 
	considered and implemented as appropriate.
</t>
<t>
	The DKI presents a tree-breath problem that is rarely seen in PKIs 
	and needs practical solutions to minimize cost of operations and 
	not introduce risks needlessly.  Consider that there can be 16,384 
	RAAs.  Assume only 10,000 RAAs, each of which Authentication DET 
	Endorsement has a 10 year validity period.  This means that, on 
	average, 1,000 RAAs per year need to rekey their Authentication DET 
	Endorsement, or on average, 3 per day.  Current witnessed key 
	signing processes will not scale to this volume.  Some virtual 
	method (like in <xref target="Offline_Auth" />) is needed.
</t>
<section anchor="offline_keys" numbered="true" toc="default"> <name>Protecting against DKI/PKI compromise</name>
<t>
	There is always a risk of key compromise that could be a major 
	setback to the operation of a PKI and likewise the DRIP DKI.  To 
	mitigate this risk, the Authentication DETs MUST only be used in 
	offline signing operations.  They MUST NEVER be used on connected 
	systems.  The information needed to create the Endorsements and 
	X.509 certificates are brought to them on media that cannot 
	transfer code, for example in a QR code.  The objects that are 
	created are then transferred away from the offline system to be used 
	where needed.
</t>
<t>
	It should be noted that this offline process MUST be followed down 
	the DKI/PKI tree.  That is, the Apex has offline operations that 
	include signing the RAA Authentication DET that will be used in the 
	RAA's set up.
</t>
</section>
</section>
</middle>
<back>
<displayreference target="I-D.ietf-cose-cbor-encoded-cert" to="C509-Certificates"/>
<displayreference target="I-D.ietf-drip-registries" to="drip-registries"/>
<displayreference target="DOI_10.1109_IEEESTD.2018.8423794" to="IEEE 802.1AR"/>
<references> <name>References</name>
<references title="Normative References">
	<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml"/>
	<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml"/>
</references>
<references title="Informative References">
	<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4108.xml"/>
	<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5280.xml"/>
	<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9153.xml"/>
	<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9374.xml"/>
	<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9434.xml"/>
	<xi:include href="https://datatracker.ietf.org/doc/bibxml3/draft-ietf-cose-cbor-encoded-cert.xml"/>
	<xi:include href="https://datatracker.ietf.org/doc/bibxml3/draft-ietf-drip-registries.xml"/>
	<xi:include href="https://bib.ietf.org/public/rfc/bibxml7/reference.DOI.10.1109/IEEESTD.2018.8423794.xml"/>
	<reference anchor="IPv6-SPECIAL"  target="https://www.iana.org/assignments/iana-ipv6-special-registry/">
		<front>
			<title>IANA IPv6 Special-Purpose Address Registry</title>
			<author><organization>IANA</organization></author>
		</front>
	</reference>
	<reference anchor="CTA2063A" target="https://shop.cta.tech/products/small-unmanned-aerial-systems-serial-numbers">
	<front>
		<title>ANSI/CTA 2063-A Small Unmanned Aerial Systems Numbers</title>
		<author>
			<organization>ANSI/CTA</organization>
		</author>
		<date month="09" year="2019"/>
	</front>
	</reference>
<!--	<reference anchor="ISO-3166"  target="https://www.iso.org/iso-3166-country-codes.html">
		<front>
			<title>ISO 3166 Country Codes</title>
			<author><organization>ISO</organization></author>
		</front>
	</reference> -->
	<reference anchor="drip_scripts" target="https://github.com/ietf-wg-drip/drip-scripts">
	<front>
	<title>Python scripts to generate DETs and Endorsements</title>
    <author/>
		<date month="4" year="2023"/>
	</front>
	</reference>
</references>
</references>
<section anchor="test_dki" numbered="true" toc="default"> <name>Test DETs and Endorsements</name>
<t>
	The following are test DETs and Endorsements for the test DKI. This 
	testing environment is open to all.  There are 4 RAAs available for 
	others to build out.  HDAs under the 4 preset RAAs, or under any 
	of the 4, built out be others, are available.  Finally the test 
	HDAs are available for setting up a handful of entities.  Any 
	tester wanting more than a few DETs for entities should plan on 
	doing that under their own HDA.
</t>
<t>
	The following are the test values and objects.  They were generated 
	using the det-gen.py and endorse.py scripts available at <xref 
	target="drip_scripts" format="default"/>.
</t>
<artwork anchor="test_dki_val-1" name="" type="" alt="">
<![CDATA[
Apex
    Authorizing DET  (HID=0|0)
        DET: 20010030000000052aeb9adc1ce8b1ec
        DET: 2001:0030:0000:0005:2aeb:9adc:1ce8:b1ec
        Raw HI:  d60268e6cf64ad693e5bb055d7c6e48c
                 7ed07013609e6ed02bb935b3d6acf53e
        vnb="05/01/2023"
        vna="06/01/2024"
        DETofP=0x20010030000000052aeb9adc1ce8b1ec
        Endorsement(136 bytes): 644f3940665a9cc020010030000000052a
            eb9adc1ce8b1ecd60268e6cf64ad693e5bb055d7c6e48c7ed07013
            609e6ed02bb935b3d6acf53e20010030000000052aeb9adc1ce8b1
            ec17008ad1bc982c6cd8c955b1ef621ef80ee5c269aa3dbcfd34b5
            85162b19d39dad7d7ba78aeb0e84bc4dd8efc2246dd30834b1e5d0
            d220e7815af921a560fc0d
]]>
</artwork>
<artwork anchor="test_dki_val-2" name="" type="" alt="">
<![CDATA[
raa16376
    Authorizing DET  (HID=16376|0)
        DET: 2001003ffe000005f970a4d7fd0e14a5
        DET: 2001:003f:fe00:0005:f970:a4d7:fd0e:14a5
        Raw HI:  df7e64cc1bfdcb65835437b37b6110d5
                 6fedb81443f58d53df8094e0e2828d23
        vnb="05/07/2023"
        vna="05/21/2024"
        DETofP=0x20010030000000052aeb9adc1ce8b1ec
        Endorsement(136 bytes): 64572240664c1c402001003ffe000005f9
            70a4d7fd0e14a5df7e64cc1bfdcb65835437b37b6110d56fedb814
            43f58d53df8094e0e2828d2320010030000000052aeb9adc1ce8b1
            ecea2cdf1933fb93842cb2c4e849fda3637493c9eedbfe08178fd5
            c7293c1b46acbd9a6c0c740a297ffda903b53bb34e8779ee8397d4
            9e6216b51ac7e87161200c
]]>
</artwork>
<artwork anchor="test_dki_val-3" name="" type="" alt="">
<![CDATA[
    Issuing DET  (HID=16376|0)
        DET: 2001003ffe000005191f150daf98f382
        DET: 2001:003f:fe00:0005:191f:150d:af98:f382
        Raw HI:  b81b0180631ce60c14d14ab80a69c214
                 7305836bf80b3b10284d36bae750265c
        vnb="05/07/2023"
        vna="05/21/2024"
        DETofP=0x20010030003ff805d80a0a62d3062894
        Endorsement(136 bytes): 64572240664c1c402001003ffe00000519
            1f150daf98f382b81b0180631ce60c14d14ab80a69c2147305836b
            f80b3b10284d36bae750265c20010030003ff805d80a0a62d30628
            94c1d2d6c8e0165da6318a8130a6eb5149830c9717bbad98be4fde
            abec31195df9d6c41319d477cafcebf19efaa2694abc05f4460cbb
            aedfee617fb44646523807
]]>
</artwork>
<artwork anchor="test_dki_val-4" name="" type="" alt="">
<![CDATA[
hda16376-16376
    Authorizing DET  (HID=16376|16376)
        DET: 2001003ffe3ff805e805a98f9df15e2d
        DET: 2001:003f:fe3f:f805:e805:a98f:9df1:5e2d
        Raw HI:  b82b27f86b013468fe48d85b54f01bf6
                 5385f302ab2e136dc51a3b929c88ce5a
        vnb="05/14/2023"
        vna="05/14/2024"
        DETofP=0x2001003ffe000005f970a4d7fd0e14a5
        Endorsement(136 bytes): 64605cc06642e1c02001003ffe000005a1
            43e69785df6f61e8f6d91f7d5351485471420a9c7d5df180c7a31d
            b86cc937581ee8106f18e4eb2001003ffe000005f970a4d7fd0e14
            a5a791e3e1f8fe3fcc4848232df472cb4f796a1b836b918b55d69e
            fac9a8d35d0fda184b5915e467969a8c6352f1e8ff65a0e8d42c2c
            08f1b22f800b1288512904
]]>
</artwork>
<artwork anchor="test_dki_val-5" name="" type="" alt="">
<![CDATA[
    Issuing DET  (HID=16376|16376)
        DET: 2001003ffe3ff8059b0e2860eb0bacde
        DET: 2001:003f:fe3f:f805:9b0e:2860:eb0b:acde
        Raw HI:  65f26bc01b89398f787c4785e4e7f6e0
                 1f2993137759995d7baa72791a44ac5d
        vnb="05/14/2023"
        vna="05/14/2024"
        DETofP=0x2001003ffe3ff805e805a98f9df15e2d
        Endorsement(136 bytes): 64605cc06642e1c02001003ffe3ff8059b
            0e2860eb0bacde65f26bc01b89398f787c4785e4e7f6e01f299313
            7759995d7baa72791a44ac5d2001003ffe3ff805e805a98f9df15e
            2d72e53262d8b49452bfd6324daf2193fce47bbbce37bce0391542
            bde64a156ab0942fa1ad340ecabf1e49eecf3818b25322955ef71d
            ffc7b786c5c48a6a84c003
]]>
</artwork>
<artwork anchor="test_dki_val-6" name="" type="" alt="">
<![CDATA[
    UA DET in 16376.16376
        DET: 2001003ffe3ff805a93e53b72709e0ba
        DET: 2001:003f:fe3f:f805:a93e:53b7:2709:e0ba
        Raw HI:  bf0453a01120ed8e651ae9f6951a8278
                 3da820296a338effd54a0ba846a99875
        vnb="05/14/2023"
        vna="05/21/2023"
        DETofP=0x2001003ffe3ff8059b0e2860eb0bacde
        Endorsement(136 bytes): 64605cc0646997402001003ffe3ff805a9
            3e53b72709e0babf0453a01120ed8e651ae9f6951a82783da82029
            6a338effd54a0ba846a998752001003ffe3ff8059b0e2860eb0bac
            de903ad90789c07f948737280159a071449caed275c91cb73d782d
            904a20492d12e27eb0f40c6098e70c5e5e382a3b43d9cac4994b4a
            e82758665d62346fd80d00
]]>
</artwork>
<section anchor="test_dns" numbered="true" toc="default"> <name>Test DNS</name>
<t>
	The DNS tree(s) for the above test data is still in limbo and will 
	be added in a later version of this draft.  But some of the RR for 
	these DETs are available below:
</t>
<t>
	Note: this needs to be updated with the proposed DET RR.
</t>
<artwork anchor="test_dns_val" name="" type="" alt="">
<![CDATA[
Apex
    Authorizing DET  (HID=0|0)
        IN  TLSA 3 1 0 ( 302a300506032b6570032100d60268e6cf64ad693e5b 
             b055d7c6e48c7ed07013609e6ed02bb935b3d6acf53e )
        IN  IN  HIP ( 5  2001003ffe000005f970a4d7fd0e14a5
                1gJo5s9krWk+W7BV18bkjH7QcBNgnm7QK7k1s9as9T4= )
        IN  CERT 254 0 0 ( DAYKKwYBBAG0OwIGBmRPOUBmWpzAIAEAMAAAAAUq65
              rcHOix7NYCaObPZK1pPluwVdfG5Ix+0HATYJ5u0Cu5NbPWrPU+IAEAM 
              AAAAAUq65rcHOix7BcAitG8mCxs2MlVse9iHvgO5cJpqj28/TS1hR 
              YrGdOdrX17p4rrDoS8TdjvwiRt0wg0seXQ0iDngVr5IaVg/A0= )

raa16376
    Authorizing DET  (HID=16376|0)
        IN  TLSA 3 1 0 ( 302a300506032b6570032100efcd5ca4427d87d9642c 
                76ebf48776df567cf2a9e5e513cb50b966ce54162fa0 )
        IN  IN  HIP ( 5  2001003ffe000005f970a4d7fd0e14a5
                335kzBv9y2WDVDeze2EQ1W/tuBRD9Y1T34CU4OKCjSM= )
        IN  CERT 254 0 0 ( DAYKKwYBBAG0OwIGBmRXIkBmTBxAIAEAP/4AAAX5cK 
              TX/Q4Upd9+ZMwb/ctlg1Q3s3thENVv7bgUQ/WNU9+AlODigo0jIAEAM 
              AAAAAUq65rcHOix7Oos3xkz+5OELLLE6En9o2N0k8nu2/4IF4/Vxy 
              k8G0asvZpsDHQKKX/9qQO1O7NOh3nug5fUnmIWtRrH6HFhIAw= )

    Issuing DET  (HID=16376|0)
        IN  TLSA 3 1 0 ( 302a300506032b6570032100b81b0180631ce60c14d1 
                4ab80a69c2147305836bf80b3b10284d36bae750265c )
        IN  IN  HIP ( 5  2001003ffe000005191f150daf98f382
                uBsBgGMc5gwU0Uq4CmnCFHMFg2v4CzsQKE02uudQJlw= )
        IN  CERT 254 0 0 ( DAYKKwYBBAG0OwIGBmRXIkBmTBxAIAEAP/4AAAUZHx 
              UNr5jzgrgbAYBjHOYMFNFKuAppwhRzBYNr+As7EChNNrrnUCZcIAEAM 
              AA/+AXYCgpi0wYolMHS1sjgFl2mMYqBMKbrUUmDDJcXu62Yvk/eq+ 
              wxGV351sQTGdR3yvzr8Z76omlKvAX0Rgy7rt/uYX+0RkZSOAc= )

hda16376-16376
    Authorizing DET  (HID=16376|16376)
        IN  TLSA 3 1 0 ( 302a300506032b6570032100b82b27f86b013468fe48 
                d85b54f01bf65385f302ab2e136dc51a3b929c88ce5a )
        IN  HIP ( 5  2001003ffe3ff805e805a98f9df15e2d 
                uCsn+GsBNGj+SNhbVPAb9lOF8wKrLhNtxRo7kpyIzlo= )
        IN  CERT 254 0 0 ( DAYKKwYBBAG0OwIGBmRgXMBmQuHAIAEAP/4/+AXoBa 
                 mPnfFeLbgrJ/hrATRo/kjYW1TwG/ZThfMCqy4TbcUaO5KciM5aIA 
                 EAP/4AAAX5cKTX/Q4UpYcZ8SaHQTV9yscZCjN/KwqfqJXc/h3M4R 
                 Hz366TSNShUany3nQG3bF+FR1vRQqOEbXIYdTID/PcgZaUiGezJw
                 w= )

    Issuing DET  (HID=16376|16376)
        IN  TLSA 3 1 0 ( 302a300506032b657003210065f26bc01b89398f787c 
                 4785e4e7f6e01f2993137759995d7baa72791a44ac5d )
        IN  HIP ( 5  2001003ffe3ff8059b0e2860eb0bacde 
                ZfJrwBuJOY94fEeF5Of24B8pkxN3WZlde6pyeRpErF0= )
        IN  CERT 254 0 0 ( DAYKKwYBBAG0OwIGBmRgXMBmQuHAIAEAP/4/+AWbDi 
                 hg6wus3mXya8AbiTmPeHxHheTn9uAfKZMTd1mZXXuqcnkaRKxdIA 
                 EAP/4/+AXoBamPnfFeLXLlMmLYtJRSv9YyTa8hk/zke7vON7zgOR 
                 VCveZKFWqwlC+hrTQOyr8eSe7POBiyUyKVXvcd/8e3hsXEimqEwA
                 M= )

    UA DET in 16376.16376
        IN  TLSA 3 1 0 ( 302a300506032b6570032100bf0453a01120ed8e651a 
                 e9f6951a82783da820296a338effd54a0ba846a99875 )
        IN  HIP ( 5  2001003ffe3ff805a93e53b72709e0ba 
                vwRToBEg7Y5lGun2lRqCeD2oIClqM47/1UoLqEapmHU= )
        IN  CERT 254 0 0 ( DAYKKwYBBAG0OwIGBmRgXMBkaZdAIAEAP/4/+AWpPl 
                 O3Jwngur8EU6ARIO2OZRrp9pUagng9qCApajOO/9VKC6hGqZh1IA 
                 EAP/4/+AWbDihg6wus3pA62QeJwH+UhzcoAVmgcUScrtJ1yRy3PX 
                 gtkEogSS0S4n6w9AxgmOcMXl44KjtD2crEmUtK6CdYZl1iNG/YDQ
                 A= )
]]>
</artwork>
</section>
</section>
<section anchor="test_pki_certs" numbered="true" toc="default"> <name>Test X.509 certificates</name>
<section anchor="test_pki_lite_certs" numbered="true" toc="default"> <name>Test Lite X.509 certificates</name>
<t>
	The following the test DRIP X.509 certificates that mirror the test Endorsements.
</t>
<artwork anchor="x509-Lite-apex-cert" name="" type="" alt="">
<![CDATA[
  apex.cert.pem (der is 233 bytes)
  
  -----BEGIN CERTIFICATE-----
  MIHmMIGZoAMCAQICAX0wBQYDK2VwMBsxGTAXBgNVBAMMEDIwMDEwMDMwMDAwMDAw
  MDUwHhcNMjMwNTAxMDAwMDAwWhcNMjQwNjAxMDAwMDAwWjAbMRkwFwYDVQQDDBAy
  MDAxMDAzMDAwMDAwMDA1MCowBQYDK2VwAyEA1gJo5s9krWk+W7BV18bkjH7QcBNg
  nm7QK7k1s9as9T6jAjAAMAUGAytlcANBACPlOBP4moEXJ71aX5K/U73RL07f20Av
  1XFK2Vsl3GKDVJ5AQPar68i+o3JGHXdvAUaI7WucxuMBy/akgicsrAA=
  -----END CERTIFICATE-----

  Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 125 (0x7d)
        Signature Algorithm: ED25519
        Issuer: CN = 2001003000000005
        Validity
            Not Before: May  1 00:00:00 2023 GMT
            Not After : Jun  1 00:00:00 2024 GMT
        Subject: CN = 2001003000000005
        Subject Public Key Info:
            Public Key Algorithm: ED25519
                ED25519 Public-Key:
                pub:
                    d6:02:68:e6:cf:64:ad:69:3e:5b:b0:55:d7:c6:e4:
                    8c:7e:d0:70:13:60:9e:6e:d0:2b:b9:35:b3:d6:ac:
                    f5:3e
    Signature Algorithm: ED25519
    Signature Value:
        23:e5:38:13:f8:9a:81:17:27:bd:5a:5f:92:bf:53:bd:d1:2f:
        4e:df:db:40:2f:d5:71:4a:d9:5b:25:dc:62:83:54:9e:40:40:
        f6:ab:eb:c8:be:a3:72:46:1d:77:6f:01:46:88:ed:6b:9c:c6:
        e3:01:cb:f6:a4:82:27:2c:ac:00
]]>
</artwork>
<artwork anchor="x509-Lite-raa16376-cert" name="" type="" alt="">
<![CDATA[
  raa16376.cert.pem (der is 233 bytes)
  
  -----BEGIN CERTIFICATE-----
  MIHmMIGZoAMCAQICAQowBQYDK2VwMBsxGTAXBgNVBAMMEDIwMDEwMDMwMDAwMDAw
  MDUwHhcNMjMwNTE1MDAwMDAwWhcNMjQwNTI0MDAwMDAwWjAbMRkwFwYDVQQDDBAy
  MDAxMDAzZmZlMDAwMDA1MCowBQYDK2VwAyEA335kzBv9y2WDVDeze2EQ1W/tuBRD
  9Y1T34CU4OKCjSOjAjAAMAUGAytlcANBAP2wkuzxmUj18bodQCs2PyZf+zGYGTfq
  QGp6bE85jKymT/w3Di94fDJwuEW03gaWM8fwbWTND2DjFfYru3Vd+w4=
  -----END CERTIFICATE-----
  
  Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 10 (0xa)
        Signature Algorithm: ED25519
        Issuer: CN = 2001003000000005
        Validity
            Not Before: May 15 00:00:00 2023 GMT
            Not After : May 24 00:00:00 2024 GMT
        Subject: CN = 2001003ffe000005
        Subject Public Key Info:
            Public Key Algorithm: ED25519
                ED25519 Public-Key:
                pub:
                    df:7e:64:cc:1b:fd:cb:65:83:54:37:b3:7b:61:10:
                    d5:6f:ed:b8:14:43:f5:8d:53:df:80:94:e0:e2:82:
                    8d:23
    Signature Algorithm: ED25519
    Signature Value:
        fd:b0:92:ec:f1:99:48:f5:f1:ba:1d:40:2b:36:3f:26:5f:fb:
        31:98:19:37:ea:40:6a:7a:6c:4f:39:8c:ac:a6:4f:fc:37:0e:
        2f:78:7c:32:70:b8:45:b4:de:06:96:33:c7:f0:6d:64:cd:0f:
        60:e3:15:f6:2b:bb:75:5d:fb:0e
]]>
</artwork>
<artwork anchor="x509-Lite-Ahda16376-16376-cert" name="" type="" alt="">
<![CDATA[
  Authentication hda16376-16376.cert.pem (der is 234 bytes)
  
  -----BEGIN CERTIFICATE-----
  MIHnMIGaoAMCAQICAgDxMAUGAytlcDAbMRkwFwYDVQQDDBAyMDAxMDAzZmZlMDAw
  MDA1MB4XDTIzMDUyMTAwMDAwMFoXDTI0MDUyMTAwMDAwMFowGzEZMBcGA1UEAwwQ
  MjAwMTAwM2ZmZTNmZjgwNTAqMAUGAytlcAMhAOj22R99U1FIVHFCCpx9XfGAx6Md
  uGzJN1ge6BBvGOTrowIwADAFBgMrZXADQQA1tx7/4AWWsW3NdmWgWVDiShJF96kn
  pw7CVU2vsYuXnXuLE/qIAluUEW+lnjGFAE9HjIgGks1He/uZekxCD9kI
  -----END CERTIFICATE-----

  Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 241 (0xf1)
        Signature Algorithm: ED25519
        Issuer: CN = 2001003ffe000005
        Validity
            Not Before: May 21 00:00:00 2023 GMT
            Not After : May 21 00:00:00 2024 GMT
        Subject: CN = 2001003ffe3ff805
        Subject Public Key Info:
            Public Key Algorithm: ED25519
                ED25519 Public-Key:
                pub:
                    e8:f6:d9:1f:7d:53:51:48:54:71:42:0a:9c:7d:5d:
                    f1:80:c7:a3:1d:b8:6c:c9:37:58:1e:e8:10:6f:18:
                    e4:eb
    Signature Algorithm: ED25519
    Signature Value:
        35:b7:1e:ff:e0:05:96:b1:6d:cd:76:65:a0:59:50:e2:4a:12:
        45:f7:a9:27:a7:0e:c2:55:4d:af:b1:8b:97:9d:7b:8b:13:fa:
        88:02:5b:94:11:6f:a5:9e:31:85:00:4f:47:8c:88:06:92:cd:
        47:7b:fb:99:7a:4c:42:0f:d9:08
]]>
</artwork>
<artwork anchor="x509-Lite-Ehda16376-16376-cert" name="" type="" alt="">
<![CDATA[
  Issuing hda16376-16376.cert.pem (der is 234 bytes)
  
  -----BEGIN CERTIFICATE-----
  MIHnMIGaoAMCAQICAWMwBQYDK2VwMBsxGTAXBgNVBAMMEDIwMDEwMDNmZmUzZmY4
  MDUwHhcNMjMwNTE0MDAwMDAwWhcNMjQwNTE0MDAwMDAwWjAcMRowGAYDVQQDDBEy
  MDAxMDAzZmZlM2ZmODA1STAqMAUGAytlcAMhAGXya8AbiTmPeHxHheTn9uAfKZMT
  d1mZXXuqcnkaRKxdowIwADAFBgMrZXADQQC59+Elr3gZjarg2Gjf7DFgkMvvwrBR
  y8j+1b5lm+V4GiWoPW24hWlO9oHmv5wMiyGuuE7w4Lmoka/AA2haQIEO
  -----END CERTIFICATE-----

  Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 99 (0x63)
        Signature Algorithm: ED25519
        Issuer: CN = 2001003ffe3ff805
        Validity
            Not Before: May 14 00:00:00 2023 GMT
            Not After : May 14 00:00:00 2024 GMT
        Subject: CN = 2001003ffe3ff805I
        Subject Public Key Info:
            Public Key Algorithm: ED25519
                ED25519 Public-Key:
                pub:
                    65:f2:6b:c0:1b:89:39:8f:78:7c:47:85:e4:e7:f6:
                    e0:1f:29:93:13:77:59:99:5d:7b:aa:72:79:1a:44:
                    ac:5d
    Signature Algorithm: ED25519
    Signature Value:
        b9:f7:e1:25:af:78:19:8d:aa:e0:d8:68:df:ec:31:60:90:cb:
        ef:c2:b0:51:cb:c8:fe:d5:be:65:9b:e5:78:1a:25:a8:3d:6d:
        b8:85:69:4e:f6:81:e6:bf:9c:0c:8b:21:ae:b8:4e:f0:e0:b9:
        a8:91:af:c0:03:68:5a:40:81:0e
]]>
</artwork>
<artwork anchor="x509-Lite-UA1-hda16376-16376-cert" name="" type="" alt="">
<![CDATA[
  UA1-16376-16376 CSR

    Data:
        Version: 1 (0x0)
        Subject: 
        Subject Public Key Info:
            Public Key Algorithm: ED25519
                ED25519 Public-Key:
                pub:
                    bf:04:53:a0:11:20:ed:8e:65:1a:e9:f6:95:1a:82:
                    78:3d:a8:20:29:6a:33:8e:ff:d5:4a:0b:a8:46:a9:
                    98:75
        Attributes:
            Requested Extensions:
                X509v3 Subject Alternative Name: critical
                    IP Address:2001:3F:FE3F:F805:A93E:53B7:2709:E0BA
    Signature Algorithm: ED25519
    Signature Value:
        e5:36:03:fa:3c:7b:c7:a8:03:4e:6e:37:37:de:79:7d:c3:d4:
        01:43:a4:62:4d:91:ec:e5:20:0e:7f:6e:2f:f2:44:02:3a:b8:
        b8:3f:1f:60:a8:e9:02:40:cc:e0:73:70:1c:2c:c5:1a:12:21:
        ff:a8:f8:d0:07:a8:47:29:fd:05

  UA1-16376-16376.cert.pem (der is 240 bytes)
  
  -----BEGIN CERTIFICATE-----
  MIHtMIGgoAMCAQICAgCtMAUGAytlcDAcMRowGAYDVQQDDBEyMDAxMDAzZmZlM2Zm
  ODA1STAeFw0yMzA1MjEwMDAwMDBaFw0yMzA1MjQwMDAwMDBaMAAwKjAFBgMrZXAD
  IQC/BFOgESDtjmUa6faVGoJ4PaggKWozjv/VSguoRqmYdaMiMCAwHgYDVR0RAQH/
  BBQwEocQIAEAP/4/+AWpPlO3JwngujAFBgMrZXADQQBK8rkblSDYvfLxsT34THDh
  ZBJTyEvtahfsTA1fY1bkMai8obOW5Gsn3tAad+BF1kyZUxR0tRl0Mwb+ZXZlsC8C
  -----END CERTIFICATE-----

Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 173 (0xad)
        Signature Algorithm: ED25519
        Issuer: CN = 2001003ffe3ff805I
        Validity
            Not Before: May 21 00:00:00 2023 GMT
            Not After : May 24 00:00:00 2023 GMT
        Subject: 
        Subject Public Key Info:
            Public Key Algorithm: ED25519
                ED25519 Public-Key:
                pub:
                    bf:04:53:a0:11:20:ed:8e:65:1a:e9:f6:95:1a:82:
                    78:3d:a8:20:29:6a:33:8e:ff:d5:4a:0b:a8:46:a9:
                    98:75
        X509v3 extensions:
            X509v3 Subject Alternative Name: critical
                IP Address:2001:3F:FE3F:F805:A93E:53B7:2709:E0BA
    Signature Algorithm: ED25519
    Signature Value:
        4a:f2:b9:1b:95:20:d8:bd:f2:f1:b1:3d:f8:4c:70:e1:64:12:
        53:c8:4b:ed:6a:17:ec:4c:0d:5f:63:56:e4:31:a8:bc:a1:b3:
        96:e4:6b:27:de:d0:1a:77:e0:45:d6:4c:99:53:14:74:b5:19:
        74:33:06:fe:65:76:65:b0:2f:02

]]>
</artwork>
<section anchor="Lite-conf" numbered="true" toc="default"> <name>openSSL Lite config file</name>
<t>
	The following openssl-conf file was used to create the above Lite,
	certificates.  It is dependent on a number of environment variables 
	to make each unique certificate.  The conf file is a bit of a hack 
	of multiple conf files and some sections are really not used.  It 
	is included here as a guide.
</t>
<artwork anchor="openssl-lite-conf-cert" name="" type="" alt="">
<![CDATA[
# OpenSSL DRIP Lite X.509 configuration file.
# Copy to `$dir/openssl-lite.cnf`.

[ ca ]
# `man ca`
default_ca = CA_default

[ CA_default ]
# Directory and file locations.
dir               = $ENV::dir
cadir             = $ENV::cadir
format            = $ENV::format
signcert          = $ENV::signcert

certs             = $dir/certs
crl_dir           = $dir/crl
new_certs_dir     = $dir/newcerts
database          = $dir/index.txt
serial            = $dir/serial
RANDFILE          = $dir/private/.rand

# The signing key and signing certificate.
private_key       = $cadir/private/$signcert.key.$format
certificate       = $cadir/certs/$signcert.cert.$format

# SHA-1 is deprecated, so use SHA-2 instead.
default_md        = sha256

name_opt          = ca_default
cert_opt          = ca_default
default_startdate = $ENV::startdate
default_enddate   = $ENV::enddate
preserve          = no
policy            = policy_loose
copy_extensions   = copy

[ policy_loose ]
# Allow the intermediate CA to sign a more
#   diverse range of certificates.
# See the POLICY FORMAT section of the `ca` man page.
countryName             = optional
stateOrProvinceName     = optional
localityName            = optional
organizationName        = optional
organizationalUnitName  = optional
commonName              = optional

[ req ]
# Options for the `req` tool (`man req`).
distinguished_name  = req_distinguished_name
string_mask         = utf8only
req_extensions      = req_ext
default_crl_days  = 30

# SHA-1 is deprecated, so use SHA-2 instead.
default_md          = sha256

# Extension to add when the -x509 option is used.
x509_extensions     = v3_ca

[ req_distinguished_name ]
# See <https://en.wikipedia.org/wiki/Certificate_signing_request>.
#countryName                     = Country Name (2 letter code)
#stateOrProvinceName             = State or Province Name
#localityName                    = Locality Name
#0.organizationName              = Organization Name
#organizationalUnitName          = Organizational Unit Name
commonName                      = Common Name

[ req_ext ]
#basicConstraints = $ENV::basicConstraints

[ v3_ca ]
# Extensions for a typical CA (`man x509v3_config`).
subjectKeyIdentifier = none
authorityKeyIdentifier = none
#basicConstraints = $ENV::basicConstraints

[ usr_cert ]
# Extensions for client certificates (`man x509v3_config`).
#basicConstraints = $ENV::basicConstraints
subjectKeyIdentifier = none
authorityKeyIdentifier = none

[ usr_req ]
# Extensions for client certificates (`man x509v3_config`).
subjectAltName = critical, $ENV::subjectAltName
]]>
</artwork>
</section>
</section>
<section anchor="test_pki_reg_certs" numbered="true" toc="default"> <name>Test PKIX-like X.509 certificates</name>
<t>
	The following the test DRIP X.509 certificates that mirror the test Endorsements.
</t>
<artwork anchor="x509-apex-cert" name="" type="" alt="">
<![CDATA[
  apex.cert.pem (der is 331 bytes)
  
  -----BEGIN CERTIFICATE-----
  MIIBRzCB+qADAgECAgkAgEv1rlaKZB4wBQYDK2VwMBsxGTAXBgNVBAMMEDIwMDEw
  MDMwMDAwMDAwMDUwHhcNMjMwNTAxMDAwMDAwWhcNMjQwNjAxMDAwMDAwWjAbMRkw
  FwYDVQQDDBAyMDAxMDAzMDAwMDAwMDA1MCowBQYDK2VwAyEA1gJo5s9krWk+W7BV
  18bkjH7QcBNgnm7QK7k1s9as9T6jWzBZMBkGA1UdDgQSBBAgAQAwAAAABSrrmtwc
  6LHsMBsGA1UdIwQUMBKAECABADAAAAAFKuua3BzosewwDwYDVR0TAQH/BAUwAwEB
  /zAOBgNVHQ8BAf8EBAMCAgQwBQYDK2VwA0EAB8h4FSMV3tqbAfFsu8ntlY6RIF7X
  7ikWzzKb2IoxEXjXLV9E1KpNG0WP572aK2aj1B1CCE5XGpuMm1s4pvpeCg==
  -----END CERTIFICATE-----

  Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            80:4b:f5:ae:56:8a:64:1e
        Signature Algorithm: ED25519
        Issuer: CN = 2001003000000005
        Validity
            Not Before: May  1 00:00:00 2023 GMT
            Not After : Jun  1 00:00:00 2024 GMT
        Subject: CN = 2001003000000005
        Subject Public Key Info:
            Public Key Algorithm: ED25519
                ED25519 Public-Key:
                pub:
                    d6:02:68:e6:cf:64:ad:69:3e:5b:b0:55:d7:c6:e4:
                    8c:7e:d0:70:13:60:9e:6e:d0:2b:b9:35:b3:d6:ac:
                    f5:3e
        X509v3 extensions:
            X509v3 Subject Key Identifier: 
                20:01:00:30:00:00:00:05:2A:EB:9A:DC:1C:E8:B1:EC
            X509v3 Authority Key Identifier: 
                20:01:00:30:00:00:00:05:2A:EB:9A:DC:1C:E8:B1:EC
            X509v3 Basic Constraints: critical
                CA:TRUE
            X509v3 Key Usage: critical
                Certificate Sign
    Signature Algorithm: ED25519
    Signature Value:
        07:c8:78:15:23:15:de:da:9b:01:f1:6c:bb:c9:ed:95:8e:91:
        20:5e:d7:ee:29:16:cf:32:9b:d8:8a:31:11:78:d7:2d:5f:44:
        d4:aa:4d:1b:45:8f:e7:bd:9a:2b:66:a3:d4:1d:42:08:4e:57:
        1a:9b:8c:9b:5b:38:a6:fa:5e:0a
]]>
</artwork>
<artwork anchor="x509-raa16376-cert" name="" type="" alt="">
<![CDATA[
  raa16376.cert.pem (der is 331 bytes)
  
  -----BEGIN CERTIFICATE-----
  MIIBRzCB+qADAgECAgkAtub1kRGFxHgwBQYDK2VwMBsxGTAXBgNVBAMMEDIwMDEw
  MDMwMDAwMDAwMDUwHhcNMjMwNTE1MDAwMDAwWhcNMjQwNTI0MDAwMDAwWjAbMRkw
  FwYDVQQDDBAyMDAxMDAzZmZlMDAwMDA1MCowBQYDK2VwAyEA335kzBv9y2WDVDez
  e2EQ1W/tuBRD9Y1T34CU4OKCjSOjWzBZMBkGA1UdDgQSBBAgAQA//gAABflwpNf9
  DhSlMBsGA1UdIwQUMBKAECABADAAAAAFKuua3BzosewwDwYDVR0TAQH/BAUwAwEB
  /zAOBgNVHQ8BAf8EBAMCAgQwBQYDK2VwA0EAqw9AheCVGyvi3/qp9QOdV+xQcKFM
  7jRX1+3uWR7FUoVZez2QX/dueYELScLqbHE7bK1KfAgavrD1YZZE2gJRCw==
  -----END CERTIFICATE-----
  
  Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            b6:e6:f5:91:11:85:c4:78
        Signature Algorithm: ED25519
        Issuer: CN = 2001003000000005
        Validity
            Not Before: May 15 00:00:00 2023 GMT
            Not After : May 24 00:00:00 2024 GMT
        Subject: CN = 2001003ffe000005
        Subject Public Key Info:
            Public Key Algorithm: ED25519
                ED25519 Public-Key:
                pub:
                    df:7e:64:cc:1b:fd:cb:65:83:54:37:b3:7b:61:10:
                    d5:6f:ed:b8:14:43:f5:8d:53:df:80:94:e0:e2:82:
                    8d:23
        X509v3 extensions:
            X509v3 Subject Key Identifier: 
                20:01:00:3F:FE:00:00:05:F9:70:A4:D7:FD:0E:14:A5
            X509v3 Authority Key Identifier: 
                20:01:00:30:00:00:00:05:2A:EB:9A:DC:1C:E8:B1:EC
            X509v3 Basic Constraints: critical
                CA:TRUE
            X509v3 Key Usage: critical
                Certificate Sign
    Signature Algorithm: ED25519
    Signature Value:
        ab:0f:40:85:e0:95:1b:2b:e2:df:fa:a9:f5:03:9d:57:ec:50:
        70:a1:4c:ee:34:57:d7:ed:ee:59:1e:c5:52:85:59:7b:3d:90:
        5f:f7:6e:79:81:0b:49:c2:ea:6c:71:3b:6c:ad:4a:7c:08:1a:
        be:b0:f5:61:96:44:da:02:51:0b
]]>
</artwork>
<artwork anchor="x509-Ahda16376-16376-cert" name="" type="" alt="">
<![CDATA[
  Authentication hda16376-16376.cert.pem (der is 331 bytes)
  
  -----BEGIN CERTIFICATE-----
  MIIBRzCB+qADAgECAgkAvmZjQZW1SFcwBQYDK2VwMBsxGTAXBgNVBAMMEDIwMDEw
  MDNmZmUwMDAwMDUwHhcNMjMwNTIxMDAwMDAwWhcNMjQwNTIxMDAwMDAwWjAbMRkw
  FwYDVQQDDBAyMDAxMDAzZmZlM2ZmODA1MCowBQYDK2VwAyEA6PbZH31TUUhUcUIK
  nH1d8YDHox24bMk3WB7oEG8Y5OujWzBZMBkGA1UdDgQSBBAgAQA//j/4BegFqY+d
  8V4tMBsGA1UdIwQUMBKAECABAD/+AAAF+XCk1/0OFKUwDwYDVR0TAQH/BAUwAwEB
  /zAOBgNVHQ8BAf8EBAMCAgQwBQYDK2VwA0EAGUPOy6K8XxT6QaguvdTVxhHba2Ws
  MEzF/oeyi8V1DNaH5wrLDgQLng7RrQfXpkUbI9l7GBq8+nr4jKkqcIxvDA==
  -----END CERTIFICATE-----

  Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            be:66:63:41:95:b5:48:57
        Signature Algorithm: ED25519
        Issuer: CN = 2001003ffe000005
        Validity
            Not Before: May 21 00:00:00 2023 GMT
            Not After : May 21 00:00:00 2024 GMT
        Subject: CN = 2001003ffe3ff805
        Subject Public Key Info:
            Public Key Algorithm: ED25519
                ED25519 Public-Key:
                pub:
                    e8:f6:d9:1f:7d:53:51:48:54:71:42:0a:9c:7d:5d:
                    f1:80:c7:a3:1d:b8:6c:c9:37:58:1e:e8:10:6f:18:
                    e4:eb
        X509v3 extensions:
            X509v3 Subject Key Identifier: 
                20:01:00:3F:FE:3F:F8:05:E8:05:A9:8F:9D:F1:5E:2D
            X509v3 Authority Key Identifier: 
                20:01:00:3F:FE:00:00:05:F9:70:A4:D7:FD:0E:14:A5
            X509v3 Basic Constraints: critical
                CA:TRUE
            X509v3 Key Usage: critical
                Certificate Sign
    Signature Algorithm: ED25519
    Signature Value:
        19:43:ce:cb:a2:bc:5f:14:fa:41:a8:2e:bd:d4:d5:c6:11:db:
        6b:65:ac:30:4c:c5:fe:87:b2:8b:c5:75:0c:d6:87:e7:0a:cb:
        0e:04:0b:9e:0e:d1:ad:07:d7:a6:45:1b:23:d9:7b:18:1a:bc:
        fa:7a:f8:8c:a9:2a:70:8c:6f:0c
]]>
</artwork>
<artwork anchor="x509-Ehda16376-16376-cert" name="" type="" alt="">
<![CDATA[
  Issuing hda16376-16376.cert.pem (der is 332 bytes)
  
  -----BEGIN CERTIFICATE-----
  MIIBSDCB+6ADAgECAgkAtkOsgzdFgMwwBQYDK2VwMBsxGTAXBgNVBAMMEDIwMDEw
  MDNmZmUzZmY4MDUwHhcNMjMwNTE0MDAwMDAwWhcNMjQwNTE0MDAwMDAwWjAcMRow
  GAYDVQQDDBEyMDAxMDAzZmZlM2ZmODA1STAqMAUGAytlcAMhAGXya8AbiTmPeHxH
  heTn9uAfKZMTd1mZXXuqcnkaRKxdo1swWTAZBgNVHQ4EEgQQIAEAP/4/+AWbDihg
  6wus3jAbBgNVHSMEFDASgBAgAQA//j/4BegFqY+d8V4tMA8GA1UdEwEB/wQFMAMB
  Af8wDgYDVR0PAQH/BAQDAgIEMAUGAytlcANBAJo6Va29k8nYIUvHqnQJlwGHHz0u
  gXgvaQuAt6f66T4eTX5zqG/ARy2MzDVlO0H/ojzWi3qiyAHjATcYRxMqzw8=
  -----END CERTIFICATE-----

  Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            b6:43:ac:83:37:45:80:cc
        Signature Algorithm: ED25519
        Issuer: CN = 2001003ffe3ff805
        Validity
            Not Before: May 14 00:00:00 2023 GMT
            Not After : May 14 00:00:00 2024 GMT
        Subject: CN = 2001003ffe3ff805I
        Subject Public Key Info:
            Public Key Algorithm: ED25519
                ED25519 Public-Key:
                pub:
                    65:f2:6b:c0:1b:89:39:8f:78:7c:47:85:e4:e7:f6:
                    e0:1f:29:93:13:77:59:99:5d:7b:aa:72:79:1a:44:
                    ac:5d
        X509v3 extensions:
            X509v3 Subject Key Identifier: 
                20:01:00:3F:FE:3F:F8:05:9B:0E:28:60:EB:0B:AC:DE
            X509v3 Authority Key Identifier: 
                20:01:00:3F:FE:3F:F8:05:E8:05:A9:8F:9D:F1:5E:2D
            X509v3 Basic Constraints: critical
                CA:TRUE
            X509v3 Key Usage: critical
                Certificate Sign
    Signature Algorithm: ED25519
    Signature Value:
        9a:3a:55:ad:bd:93:c9:d8:21:4b:c7:aa:74:09:97:01:87:1f:
        3d:2e:81:78:2f:69:0b:80:b7:a7:fa:e9:3e:1e:4d:7e:73:a8:
        6f:c0:47:2d:8c:cc:35:65:3b:41:ff:a2:3c:d6:8b:7a:a2:c8:
        01:e3:01:37:18:47:13:2a:cf:0f
]]>
</artwork>
<artwork anchor="x509-UA1-hda16376-16376-cert" name="" type="" alt="">
<![CDATA[

  UA1-16376-16376 CSR

    Data:
        Version: 1 (0x0)
        Subject: 
        Subject Public Key Info:
            Public Key Algorithm: ED25519
                ED25519 Public-Key:
                pub:
                    bf:04:53:a0:11:20:ed:8e:65:1a:e9:f6:95:1a:82:
                    78:3d:a8:20:29:6a:33:8e:ff:d5:4a:0b:a8:46:a9:
                    98:75
        Attributes:
            Requested Extensions:
                X509v3 Subject Alternative Name: critical
                    IP Address:2001:3F:FE3F:F805:A93E:53B7:2709:E0BA
    Signature Algorithm: ED25519
    Signature Value:
        e5:36:03:fa:3c:7b:c7:a8:03:4e:6e:37:37:de:79:7d:c3:d4:
        01:43:a4:62:4d:91:ec:e5:20:0e:7f:6e:2f:f2:44:02:3a:b8:
        b8:3f:1f:60:a8:e9:02:40:cc:e0:73:70:1c:2c:c5:1a:12:21:
        ff:a8:f8:d0:07:a8:47:29:fd:05

  UA1-16376-16376.cert.pem (der is 335 bytes)
  
  -----BEGIN CERTIFICATE-----
  MIIBSzCB/qADAgECAgkAnwfIckSSf74wBQYDK2VwMBwxGjAYBgNVBAMMETIwMDEw
  MDNmZmUzZmY4MDVJMB4XDTIzMDUyMTAwMDAwMFoXDTIzMDUyNDAwMDAwMFowADAq
  MAUGAytlcAMhAL8EU6ARIO2OZRrp9pUagng9qCApajOO/9VKC6hGqZh1o3kwdzAJ
  BgNVHRMEAjAAMA4GA1UdDwEB/wQEAwIDyDAdBgNVHSUEFjAUBggrBgEFBQcDAgYI
  KwYBBQUHAwQwHgYDVR0RAQH/BBQwEocQIAEAP/4/+AWpPlO3JwngujAbBgNVHSME
  FDASgBAgAQA//j/4BZsOKGDrC6zeMAUGAytlcANBAL0ztu4wCQZFH7V/gfKnK5fP
  HqUXxYzA4stvb4k1DMEHgum8NesVnlOhZ3OPpUet6GrnjIKd8SksbADW1h+hcwI=
  -----END CERTIFICATE-----

Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            9f:07:c8:72:44:92:7f:be
        Signature Algorithm: ED25519
        Issuer: CN = 2001003ffe3ff805I
        Validity
            Not Before: May 21 00:00:00 2023 GMT
            Not After : May 24 00:00:00 2023 GMT
        Subject: 
        Subject Public Key Info:
            Public Key Algorithm: ED25519
                ED25519 Public-Key:
                pub:
                    bf:04:53:a0:11:20:ed:8e:65:1a:e9:f6:95:1a:82:
                    78:3d:a8:20:29:6a:33:8e:ff:d5:4a:0b:a8:46:a9:
                    98:75
        X509v3 extensions:
            X509v3 Basic Constraints: 
                CA:FALSE
            X509v3 Key Usage: critical
                Digital Signature, Non Repudiation, Key Agreement
            X509v3 Extended Key Usage: 
                TLS Web Client Authentication, E-mail Protection
            X509v3 Subject Alternative Name: critical
                IP Address:2001:3F:FE3F:F805:A93E:53B7:2709:E0BA
            X509v3 Authority Key Identifier: 
                20:01:00:3F:FE:3F:F8:05:9B:0E:28:60:EB:0B:AC:DE
    Signature Algorithm: ED25519
    Signature Value:
        bd:33:b6:ee:30:09:06:45:1f:b5:7f:81:f2:a7:2b:97:cf:1e:
        a5:17:c5:8c:c0:e2:cb:6f:6f:89:35:0c:c1:07:82:e9:bc:35:
        eb:15:9e:53:a1:67:73:8f:a5:47:ad:e8:6a:e7:8c:82:9d:f1:
        29:2c:6c:00:d6:d6:1f:a1:73:02
]]>
</artwork>
<section anchor="conf" numbered="true" toc="default"> <name>openSSL config file</name>
<t>
	The following openssl-conf file was used to create the above 
	certificates.  It is dependent on a number of environment variables 
	to make each unique certificate.  The conf file is a bit of a hack 
	of multiple conf files and some sections are really not used.  It 
	is included here as a guide.
</t>
<artwork anchor="openssl-conf-cert" name="" type="" alt="">
<![CDATA[
# OpenSSL DRIP X.509 configuration file.
# Copy to `$dir/openssl-root.cnf`.

[ ca ]
# `man ca`
default_ca = CA_default

[ CA_default ]
# Directory and file locations.
dir               = $ENV::dir
cadir             = $ENV::cadir
format            = $ENV::format
signcert          = $ENV::signcert
certkeyusage      = $ENV::certkeyusage
certextkeyusage   = $ENV::certextkeyusage
basicConstraints  = $ENV::basicConstraints

certs             = $dir/certs
crl_dir           = $dir/crl
new_certs_dir     = $dir/newcerts
database          = $dir/index.txt
serial            = $dir/serial
RANDFILE          = $dir/private/.rand

# The signing key and signing certificate.
private_key       = $cadir/private/$signcert.key.$format
certificate       = $cadir/certs/$signcert.cert.$format

# For certificate revocation lists.
crlnumber         = $dir/crlnumber
crl               = $dir/crl/ca.crl.pem
crl_extensions    = crl_ext
default_crl_days  = 30

# SHA-1 is deprecated, so use SHA-2 instead.
default_md        = sha256

name_opt          = ca_default
cert_opt          = ca_default
default_startdate = $ENV::startdate
default_enddate   = $ENV::enddate
preserve          = no
policy            = policy_loose
copy_extensions   = copy

[ policy_loose ]
# Allow the intermediate CA to sign a more
#   diverse range of certificates.
# See the POLICY FORMAT section of the `ca` man page.
countryName             = optional
stateOrProvinceName     = optional
localityName            = optional
organizationName        = optional
organizationalUnitName  = optional
commonName              = optional

[ req ]
# Options for the `req` tool (`man req`).
distinguished_name  = req_distinguished_name
string_mask         = utf8only
req_extensions      = req_ext
default_crl_days  = 30

# SHA-1 is deprecated, so use SHA-2 instead.
default_md          = sha256

# Extension to add when the -x509 option is used.
x509_extensions     = v3_ca

[ req_distinguished_name ]
# See <https://en.wikipedia.org/wiki/Certificate_signing_request>.
#countryName                     = Country Name (2 letter code)
#stateOrProvinceName             = State or Province Name
#localityName                    = Locality Name
#0.organizationName              = Organization Name
#organizationalUnitName          = Organizational Unit Name
commonName                      = Common Name

[ req_ext ]
basicConstraints = $ENV::basicConstraints
keyUsage = $ENV::certkeyusage

[ v3_ca ]
# Extensions for a typical CA (`man x509v3_config`).
subjectKeyIdentifier = $ENV::DET
authorityKeyIdentifier = keyid:always
basicConstraints = critical, CA:true
keyUsage = $ENV::certkeyusage

[ usr_cert ]
# Extensions for client certificates (`man x509v3_config`).
basicConstraints = $ENV::basicConstraints
authorityKeyIdentifier = keyid:always
keyUsage = $ENV::certkeyusage
extendedKeyUsage = $ENV::certextkeyusage
# uncomment the following if the ENV variables set
# crlDistributionPoints = $ENV::crlDP
# authorityInfoAccess = $ENV::ocspIAI

[ usr_req ]
# Extensions for client certificates (`man x509v3_config`).
subjectAltName = critical, $ENV::subjectAltName

[ crl_ext ]
# Extension for CRLs (`man x509v3_config`).
authorityKeyIdentifier=keyid:always

[ ocsp ]
# Extension for OCSP signing certificates (`man ocsp`).
basicConstraints = CA:FALSE
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid,issuer
# keyUsage = critical, digitalSignature
keyUsage = $ENV::certkeyusage
# extendedKeyUsage = critical, OCSPSigning
extendedkeyUsage = $ENV::certextkeyusage
]]>
</artwork>
</section>
</section>
<section anchor="c509_certs" numbered="true" toc="default"> <name>Test PKIX-like C509 certificates</name>
<t>
	The CBOR Encoded X.509 Certificates (C509 Certificates) <xref 
	target="I-D.ietf-cose-cbor-encoded-cert" format="default"/> 
	provides a standards-based approach to reduce the size of X.509 
	certificates both on-the-wire and in storage.
</t>
<t>
	These C509 certificates MAY be stored in the DET RR, but are more 
	likely to by used in over-the-air protocols and exist only for 
	transmission, being converted from/to their source X.509 
	certificates.
</t>
<t>
	Author's Note:  This section is still a Work in Progress.
</t>
<t>
	The following are examples of a C509 cert.
</t>
<artwork anchor="x509-raa16376-c509-cert" name="" type="" alt="">
<![CDATA[
  raa16376.cert CBOR diagnostic notation:
  
1,
h'b6e6f5911185c478',
h'002001003000000005',
1684108800,
1716508800,
h'002001003ffe000005',
10,  
h'df7e64cc1bfdcb65835437b37b6110d56fedb81443f58d53df8094e0e2828d23',
[
  1, h'2001003FFE000005F970A4D7FD0E14A5',
  7, h'20010030000000052AEB9ADC1CE8B1EC',
 -4, -1,
 -2, 1
],
12,
h'ab0f4085e0951b2be2dffaa9f5039d57ec5070a14cee3457d7edee591ec5528559
7b3d905ff76e79810b49c2ea6c713b6cad4a7c081abeb0f5619644da02510b'

Plain hex (183 bytes):

0148B6E6F5911185C478490020010030000000051A646176001A664FD88049002001
003FFE0000050A5820DF7E64CC1BFDCB65835437B37B6110D56FEDB81443F58D53DF
8094E0E2828D238801502001003FFE000005F970A4D7FD0E14A50750200100300000
00052AEB9ADC1CE8B1EC232021010C5840AB0F4085E0951B2BE2DFFAA9F5039D57EC
5070A14CEE3457D7EDEE591EC55285597B3D905FF76E79810B49C2EA6C713B6CAD4A
7C081ABEB0F5619644DA02510B
]]>
</artwork>
<artwork anchor="x509-raa16376-c509-cert-diag" name="" type="" alt="">
<![CDATA[

CBOR diagnostic notation with annotation (manual):

1,                        / X.509 v3, signature on DER encoding/
h'b6e6f5911185c478',      / certificateSerialNumber /
h'002001003000000005',    / issuer /
1684108800,               / notBefore /
1716508800,               / notAfter /
h'002001003ffe000005',    / subject /
10,                       / subjectPublicKeyAlgorithm = Ed25519 /
h'df7e64cc1bfdcb65835437b37b6110d56fedb81443f58d53df8094e0e2828d23', 
[                         / extensions /
  1, h'2001003FFE000005F970A4D7FD0E14A5', / subjectKeyIdentifier /
  7, h'20010030000000052AEB9ADC1CE8B1EC', / authorityKeyIdentifier /
 -4, -1,                  / critical basicConstraints CA = True /
 -2, 1                    / critical keyUsage = digitalSignature /
],
12,                       / issuerSignatureAlgorithm = Ed25519 /
h'ab0f4085e0951b2be2dffaa9f5039d57ec5070a14cee3457d7edee591ec5528559
7b3d905ff76e79810b49c2ea6c713b6cad4a7c081abeb0f5619644da02510b'
]]>
</artwork>
<artwork anchor="x509-UA1-16376-16376-c509-cert-diag" name="" type="" alt="">
<![CDATA[

CBOR diagnostic notation with annotation (manual):

1,                        / X.509 v3, signature on DER encoding/
h'9f07c87244927fbe',      / certificateSerialNumber /
"2001003ffe3ff805I",      / issuer /
1684627200,               / notBefore /
1684886400,               / notAfter /
"",                       / subject /
10,                       / subjectPublicKeyAlgorithm = Ed25519 /
h'bf0453a01120ed8e651ae9f6951a82783da820296a338effd54a0ba846a99875',
[                         / extensions /
  4, -2,                  / basicConstraints CA = True /
 -2, 19,                  / critical keyUsage = digitalSignature, 
                            nonRepudiation, keyAgreement /
  8, [2, 4],              / extKeyUsage: TLS Web Client
                            Authentication, E-mail Protection /
 -3, [7, h'2001003FFE3FF805A93E53B72709E0BA'], 
                          / critical subjectAltName: iPAddress /
  7, h'2001003FFE3FF8059B0E2860EB0BACDE'
                          / authorityKeyIdentifier /
],
12,                       / issuerSignatureAlgorithm = Ed25519 /
h'bd33b6ee300906451fb57f81f2a72b97cf1ea517c58cc0e2cb6f6f89350cc10782
e9bc35eb159e53a167738fa547ade86ae78c829df1292c6c00d6d61fa17302'

Plain hex (183 bytes):

01489F07C87244927FBE7132303031303033666665336666383035491A64695F001A
646D5380600A5820BF0453A01120ED8E651AE9F6951A82783DA820296A338EFFD54A
0BA846A998758A0421211308820204228207502001003FFE3FF805A93E53B72709E0
BA07502001003FFE3FF8059B0E2860EB0BACDE0C5840BD33B6EE300906451FB57F81
F2A72B97CF1EA517C58CC0E2CB6F6F89350CC10782E9BC35EB159E53A167738FA547
ADE86AE78C829DF1292C6C00D6D61FA17302
]]>
</artwork>
</section>
</section>
<section numbered="false" toc="default"> <name>Acknowledgments</name>
<t>
	Many people assisted in creating the python scripts for making DETs 
	and DRIP Endorsements. Any roughness in the scripts is all my 
	doing.
</t>
<t>
	The openssl-user mailing list provided needed help in getting 
	openssl command line to do what was needed to build the test PKI.
</t>
<t>
	The COSE C509 authors are providing active help in creating the 
	C509 equivalent objects.
</t>
</section>
</back>
</rfc>
