2024-02-04 @roberto_vpt
In Gemini serve uno standard per identificare gli utenti, i passeggeri, partendo dalla registrazione sulla capsula.
In Gemini gli utenti sono identificati cai certificati client.
Capsula e passeggero coincidono solo per la capsula ed è necessario passare al formato user@host.
La necessità è legata all'uso di messaggi e commenti che possono avere messaggi di risposta.
Dalla propria capsula si possono vedere e nel caso rispondere.
Inoltre è possibile in alternativa inoltrare ad una casella e-mail.
Facendola semplice basterebbe mettere user@host in CN.
Mi correggo:
DC non può contenere il '.' però openSSL crea il certificato, quindi forse si può usare nell'ambito dei certificati autofirmati su Gemini. Provo e magari funziona, altrimenti sarà necessario usare SUBJECT_ALT_NAME.
L'uso del certificato sbagliato è come pensavo accettato dai client e dai server Gemini.
Ovviamente il certificato non è valido per Misfin e-mail ma devo provare la possibilità di ricavare user@host da UID@DC accettando il certificato client nel codice del server.
In caso di difficoltà restano user@host su CN oppure usare SUBJECT_ALT_NAME.
String X.500 AttributeType (per OpenSSL -subj) ------ -------------------------------------------- CN commonName (2.5.4.3) L localityName (2.5.4.7) ST stateOrProvinceName (2.5.4.8) O organizationName (2.5.4.10) OU organizationalUnitName (2.5.4.11) C countryName (2.5.4.6) STREET streetAddress (2.5.4.9) DC domainComponent (0.9.2342.19200300.100.1.25) UID userId (0.9.2342.19200300.100.1.1)
Serve una specifica e propongo il set base64net, registrato in lowercase.
Il carattere '_' indica uno o più spazi e non è consentito a inizio o fine userId.
Il carattere '-' è usato al posto di uno o più caratteri '-' o diversi dal set base64net.
Si antepone '@' per idendicare un userId per la capsula che si stà visitando.
I link "=> @user" e "=> user@host" sono link alla capsula personale se disponibile.
Può essere "gemini://host/~user/", oppure quanto usato nella capsula.
Propongo l'aggiunta del carattere ':' all'identificativo.
I link "=> @user:" e "=> user@host:" attivano una procedura che accetta messaggi e li inserisce in una pagina riservata all'user indicato.
Inserisco questa idea nel codice e procedo ai test in locale.
PS) Testo anche l'inserimento di un certificato completo ma sbagliato nei client.