You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Aug 15, 2025. It is now read-only.
Copy file name to clipboardExpand all lines: docs/Protocol Specifications/core.md
+49-40Lines changed: 49 additions & 40 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -28,7 +28,7 @@ of the specification document: **v0.1.0-alpha.1**
28
28
-[6. Cryptography and ID-Certs](#6-cryptography-and-id-certs)
29
29
-[6.1 Home server signed certificates for public client identity keys (ID-Cert)](#61-home-server-signed-certificates-for-public-client-identity-keys-id-cert)
30
30
-[6.1.1 Structure of an ID-Cert](#611-structure-of-an-id-cert)
|`actor`| "Local Name" or "Common Name" | Must be unique on each instance. |
398
+
|`@`| "Separator" | Separates local name from domain name |
399
+
|`optionalsubdomain.domain.tld`| "Domain Name" | Includes top-level domain, second-level domain and other subdomains. Address which the actors' home server can be reached at. |
400
+
393
401
The following regular expression can be used to validate actor IDs: `\b([a-z0-9._%+-]+)@([a-z0-9-]+(\.[a-z0-9-]+)*)`.
394
402
395
403
!!! info
@@ -429,8 +437,8 @@ client.
429
437
An ID-CSR includes the following information, according to the X.509 standard:
430
438
431
439
- The public identity key of the client.
432
-
-An identity descriptor (IDD), describing the actor the certificate is issued to. The IDD must be
433
-
formatted according to [Section 6.1.1.1](#6111-identity-descriptors-idds).
440
+
-A polyproto Distinguished Name (`pDN`), describing the actor the certificate is issued to. The `pDN`
441
+
must be formatted according to [Section 6.1.1.1](#6111-polyproto-distinguished-name-pdn).
434
442
- The signature algorithm used to sign the certificate.
435
443
- The signature of the certificate, generated by using the entities' private identity key.
436
444
@@ -457,47 +465,48 @@ ID-Certs encompass a subset of the structure of an X.509 certificate.
457
465
458
466
ID-Certs have the following structure:
459
467
460
-
| Field Description | Special requirements, if any | X.509 equivalent |
| Correctly formatted Name attribute, according to [#6.1.1.1](#6111-identity-descriptors-idds)|[Identity descriptor](#6111-identity-descriptors-idds)| Issuer Name |
463
-
| A unique identifier for the certificate, used by the CA to identify this certificate. | Must be unique across all certificates issued by a home server. | Serial Number |
464
-
| The algorithm used to sign the certificate. || Certificate Signature Algorithm & Signature Algorithm ID |
465
-
| The signature of the certificate, generated by using the home servers' private identity key. || Certificate Signature |
466
-
| The expiry date of the certificate. | Time must not be after expiry date of the home server's root certificate | Validity period: Not After |
467
-
| Certificate validity period starting date | Time must not be before the home server's root certificate was generated | Validity period: Not Before |
468
-
| X.509 Version Number (v3) | polyproto only uses Version 3 X.509 certificates. | Version Number |
469
-
| The public identity key of the client. || Subject Public Key Info: Subject Public Key |
470
-
| The public key algorithm used to generate the client's public identity key. || Subject Public Key Info: Public Key Algorithm |
471
-
| The session ID of the client. | No two valid certificates for one session ID can exist. Session IDs have to be unique per user. | Subject Unique Identifier |
472
-
| Extensions |[Extensions and Constraints](#6112-extensions-and-constraints)| Extensions |
473
-
474
-
##### 6.1.1.1 Identity Descriptors (IDDs)
475
-
476
-
polyproto Identity Descriptors are a subset of the X.509 certificate's distinguished name. [Distinguished
477
-
Names (`DNs`)](https://ldap.com/ldap-dns-and-rdns/), according to the LDAP Data Interchange Format (LDIF).
468
+
| Field Description | Special requirements, if any | X.509 equivalent |
| Correctly formatted Name attribute, according to [#6.1.1.1](#6111-polyproto-distinguished-name-pdn)|[polyproto Distinguished Name](#6111-polyproto-distinguished-name-pdn)| Issuer Name |
471
+
| A unique identifier for the certificate, used by the CA to identify this certificate. | Must be unique across all certificates issued by a home server. | Serial Number |
472
+
| The algorithm used to sign the certificate. || Certificate Signature Algorithm & Signature Algorithm ID |
473
+
| The signature of the certificate, generated by using the home servers' private identity key. || Certificate Signature |
474
+
| The expiry date of the certificate. | Time must not be after expiry date of the home server's root certificate | Validity period: Not After |
475
+
| Certificate validity period starting date | Time must not be before the home server's root certificate was generated | Validity period: Not Before |
476
+
| X.509 Version Number (v3) | polyproto only uses Version 3 X.509 certificates. | Version Number |
477
+
| The public identity key of the client. || Subject Public Key Info: Subject Public Key |
478
+
| The public key algorithm used to generate the client's public identity key. || Subject Public Key Info: Public Key Algorithm |
479
+
| The session ID of the client. | No two valid certificates for one session ID can exist. Session IDs have to be unique per user. | Subject Unique Identifier |
480
+
| Extensions |[Extensions and Constraints](#6112-extensions-and-constraints)| Extensions |
481
+
482
+
##### 6.1.1.1 polyproto Distinguished Name (`pDN`)
483
+
484
+
polyproto Distinguished Names (`pDNs`) are a subset of an X.509 certificate's [distinguished
485
+
Names (`DNs`)](https://ldap.com/ldap-dns-and-rdns/), defined by the LDAP Data Interchange Format (LDIF).
478
486
The `DN` is a sequence of [relative distinguished names (`RDNs`)](https://ldap.com/ldap-dns-and-rdns/).
479
487
480
-
The identity descriptor must be unique for each certificate issued by a home server. The `DN` of an ID-Cert
481
-
must meet all of the following requirements:
482
-
483
-
- Identity descriptor (IDD) must have "common name" attribute. If the ID-Cert is for an actor, the
484
-
common name must be the local name of the actor. In the case of an actor with an FID of
485
-
`[email protected]`, the "common name" would be `xenia`. If the ID-Cert is a self-signed home server
486
-
certificate, the "common name" attribute must not be present.
487
-
- Must have at least one domain component, specifying the home servers' FQDN
488
-
(fully qualified domain name).
489
-
- If the ID-Cert or ID-CSR is for an actor, the IDD must include the `UID` (OID 0.9.2342.19200300.100.1.1)
0 commit comments