Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

ORCHIDs for Internet Applications & Protocols

Overlay Routable Cryptographic Hash IDentifiers (ORCHIDs) are valid non-routable addresses that are found under specific IANA assigned prefixes out of the IPv6 Special Purpose Address Space. They encode cryptographic agility and optional additional information (such as hierarchy) while acting as a handle to the public portion of an asymmetric keypair.

An ORCHID is formed with the following general procedure:

  1. Select an application specific Suite ID (selecting a key algorithm family and hash algorithm)
  2. Generate an asymmetric key pair using the specified Suite ID algorithm family
  3. Construct hash input string per application specification with public key
  4. With the specified hash algorithm of Suite ID and application Context ID hash previous steps output
  5. Assemble ORCHID using application provided prefix, Suite ID and resulting hash

The main protocols using ORCHIDs are:

  • Host Identity Protocol (HIP, RFC7401) with the Host Identity Tag (HIT)
  • Drone Remote ID Protocol (DRIP, RFC9374) with the DRIP Entity Tag (DET), a form of Hierarchical HIT (HHIT)

More on ORCHIDs can be found in RFC7343.

This project is designed as a reference implementation for ORCHIDs and provides a simple interface to generate and import them in Internet based applications or protocols. It is not intended to be a complete solution but rather a general toolbox for using of ORCHIDs.

The project (pyorchis) is named after the plant family and genus that orchids are from.

Installing

pip3 install pyorchis # core ORCHID capabilities
pip3 install pyorchis[drip] # capabilities for DRIP
pip3 install pyorchis[all] # all capabilities

Cryptography Matrix

This project relies on pycryptodome to provide its cryptographic capabilities in support of ORCHID generation and utility functions for HIP and DRIP.

[H]HIT Suite ID HI Algorithm Key Algorithm Curve Hash Algorithm Supported
1 3 DSA - SHA-256 :white_check_mark:
1 5 RSA - SHA-256 :white_check_mark:
2 7 ECDSA NIST P-256 SHA-384 :white_check_mark:
2 7 ECDSA NIST P-384 SHA-384 :white_check_mark:
3 9 ECDSA_LOW SECP160R1 SHA-1 :x:
5 13 EdDSA Ed25519 cSHAKE128 :white_check_mark:
5 13 EdDSA Ed25519ph cSHAKE128 :x:
5 13 EdDSA Ed448 cSHAKE128 :white_check_mark:
5 13 EdDSA Ed448ph cSHAKE128 :x:

Both RFC7401 prefix of 2001:20::/28 and RFC9374 prefix of 2001:30::/28 are supported.

Import/Export Matrix

Key Algorithm Curve PEM/DER/OpenSSH Raw JSON Web Key COSE Key
DSA - :white_check_mark: :x: :x: :x:
RSA - :white_check_mark: :x: :white_check_mark: :white_check_mark:
ECDSA NIST P-256 :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark:
ECDSA NIST P-384 :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark:
EdDSA Ed25519 :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark:
ECDSA Ed448 :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark:

JSON Web Keys of RFC7517 and COSE Keys of RFC9052 are imported using their native encoded typing (str/bytes) and can be exported either encoded or in dict[int, Any] for COSE Key and dict[str, Any] for JWK.

When exported as COSE Key/JWK, a Key ID is set using the ORCHID of the key. When imported with a Key ID an attempt is made to convert it to an ORCHID or use the imported key to generate the ORCHID and set the Orchid.ip attribute. A raw key import generates the ORCHID directly from incoming key material.

HIP Capabilities

Orchid.host_identity() provides the "Host Identity" field for the HOST_ID parameter. This is used as part of the Base Exchange (BEX) when initiating a HIP connection. This structure is also used in the generation of an ORCHID as the primary data input for the hash algorithm.

DRIP Capabilities

Orchid.arpa() returns the reverse lookup (i.e. nibble-reversed) IPv6 Fully Qualified Domain Name (FQDN) that is used by DRIP to enable lookups via RFC9886.


x509 is a module supporting X.509 functions around CertificateSigningRequests & Certificates. It follows the guidelines in DRIP Key Infrastructure (DKI) and generalizes them away from the DRIP ecosystem/constraints.

It includes the use of Subject Alternative Name: IP6 for holding the Subject ORCHID and the extension of Authority Key Identifier for the Issuer ORCHID. These certificates are the "Canonical Registration Certificate" that are issued by levels of the hierarchy in DRIP and stored in the HHIT RRType of DNS.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyorchis-2026.8.0a0.tar.gz (26.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pyorchis-2026.8.0a0-py3-none-any.whl (24.6 kB view details)

Uploaded Python 3

File details

Details for the file pyorchis-2026.8.0a0.tar.gz.

File metadata

  • Download URL: pyorchis-2026.8.0a0.tar.gz
  • Upload date:
  • Size: 26.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for pyorchis-2026.8.0a0.tar.gz
Algorithm Hash digest
SHA256 fa2ea29f6612fdb13314549b8767fd5245dab57232bc930b0ddcdbf37270eef6
MD5 0746a08e7a05fd4f2d92e6e94538c3c9
BLAKE2b-256 8f2896a3f5b221997abe9c96bd2eb79c621666464f814e30188f0e785b57e209

See more details on using hashes here.

File details

Details for the file pyorchis-2026.8.0a0-py3-none-any.whl.

File metadata

  • Download URL: pyorchis-2026.8.0a0-py3-none-any.whl
  • Upload date:
  • Size: 24.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for pyorchis-2026.8.0a0-py3-none-any.whl
Algorithm Hash digest
SHA256 d920e600cba43494043d3008d56b4025df2d0bd94e08cd0514c8e8399b79ea1f
MD5 26b86f449f2129010122bec7f2ae0866
BLAKE2b-256 d7b219a9a394b53788d1a27b511359e29e2659b068ee168b0066ad9dc7cf2e7d

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

2026.8.0a0 This release

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page