|
|
@ -7,5 +7,116 @@ |
|
|
|
// written by Nana Karlstetter and Volker Birk |
|
|
|
|
|
|
|
|
|
|
|
type ISO639_1 is string size=2 > a-z |
|
|
|
|
|
|
|
type hex is string > a-f0-9 |
|
|
|
|
|
|
|
type hash doc="32bit Key ID to SHA512 in hex" |
|
|
|
is hex min=16, max=128; |
|
|
|
|
|
|
|
type hash_list doc="sequence of fingerprints of keys" |
|
|
|
is list< hash >; |
|
|
|
|
|
|
|
type TID doc="UUID version 4 variant 1" |
|
|
|
is binary size=16; |
|
|
|
|
|
|
|
type blob_list is list< blob >; |
|
|
|
|
|
|
|
type identity_list is list< identity >; |
|
|
|
|
|
|
|
type string_list is list< string > ; |
|
|
|
|
|
|
|
type string_pair is pair< string, string >; |
|
|
|
|
|
|
|
|
|
|
|
enum comm_type { |
|
|
|
hex unknown 0; |
|
|
|
|
|
|
|
doc > range 0x01 to 0x09: no encryption, 0x0a to 0x0e: nothing reasonable |
|
|
|
|
|
|
|
hex no_encryption 0x01 doc="generic"; |
|
|
|
hex no_encrypted_channel 0x02; |
|
|
|
hex key_not_found 0x03; |
|
|
|
hex key_expired 0x04; |
|
|
|
hex key_revoked 0x05; |
|
|
|
hex key_b0rken 0x06; |
|
|
|
|
|
|
|
hex key_expired_but_confirmed 0x07 |
|
|
|
doc="NOT with confirmed bit. Just retaining info here in case of renewal."; |
|
|
|
|
|
|
|
hex my_key_not_included 0x09; |
|
|
|
|
|
|
|
hex security_by_obscurity 0x0a; |
|
|
|
hex b0rken_crypto 0x0b; |
|
|
|
hex key_too_short 0x0c; |
|
|
|
|
|
|
|
hex compromised 0x0e doc="known compromised connection"; |
|
|
|
hex compromized 0x0e doc="deprecated misspelling"; |
|
|
|
hex mistrusted 0x0f doc="known mistrusted key"; |
|
|
|
|
|
|
|
doc > range 0x10 to 0x3f: unconfirmed encryption |
|
|
|
|
|
|
|
hex unconfirmed_encryption 0x10 doc="generic"; |
|
|
|
hex OpenPGP_weak_unconfirmed 0x11 doc="RSA 1024 is weak"; |
|
|
|
|
|
|
|
hex to_be_checked 0x20 doc="generic"; |
|
|
|
hex SMIME_unconfirmed 0x21; |
|
|
|
hex CMS_unconfirmed 0x22; |
|
|
|
|
|
|
|
hex strong_but_unconfirmed 0x30 doc="generic"; |
|
|
|
hex OpenPGP_unconfirmed 0x38 doc="key at least 2048 bit RSA or EC"; |
|
|
|
hex OTR_unconfirmed 0x3a; |
|
|
|
|
|
|
|
doc > range 0x40 to 0x7f: unconfirmed encryption and anonymization |
|
|
|
|
|
|
|
hex unconfirmed_enc_anon 0x40 doc="generic"; |
|
|
|
hex pEp_unconfirmed 0x7f |
|
|
|
|
|
|
|
hex confirmed 0x80 doc="this bit decides if trust is confirmed"; |
|
|
|
|
|
|
|
doc > range 0x81 to 0x8f: reserved |
|
|
|
doc > range 0x90 to 0xbf: confirmed encryption |
|
|
|
|
|
|
|
hex confirmed_encryption 0x90 doc="generic"; |
|
|
|
hex OpenPGP_weak 0x91 doc="RSA 1024 is weak (unused)"; |
|
|
|
|
|
|
|
hex to_be_checked_confirmed 0xa0 doc="generic"; |
|
|
|
hex SMIME 0xa1; |
|
|
|
hex CMS 0xa2; |
|
|
|
|
|
|
|
hex strong_encryption 0xb0 doc="generic"; |
|
|
|
hex OpenPGP 0xb8 doc="key at least 2048 bit RSA or EC"; |
|
|
|
hex OTR 0xba; |
|
|
|
|
|
|
|
doc > range 0xc0 to 0xff: confirmed encryption and anonymization |
|
|
|
|
|
|
|
hex confirmed_enc_anon 0xc0 doc="generic"; |
|
|
|
hex pEp 0xff |
|
|
|
|
|
|
|
} // enum comm_type |
|
|
|
|
|
|
|
|
|
|
|
struct identity { |
|
|
|
|
|
|
|
field string address doc="SMTP address or URI"; |
|
|
|
field hash fpr doc="fingerprint of key being used as ID"; |
|
|
|
field string user_id doc="ID for person or entity in M2M case"; |
|
|
|
field string username doc="descriptive string"; |
|
|
|
field ISO639_1 lang doc="two-digit language code or null bytes"; |
|
|
|
|
|
|
|
flags { |
|
|
|
flag not_for_sync 0x0001 |
|
|
|
doc="don't use this identity for Sync"; |
|
|
|
|
|
|
|
flag list 0x0002 |
|
|
|
doc="identity of list of persons"; |
|
|
|
|
|
|
|
doc | the second octet flags are calculated |
|
|
|
|
|
|
|
flag devicegroup 0x0100 |
|
|
|
doc="identity of a device group member" |
|
|
|
} |
|
|
|
|
|
|
|
} // struct Identity |
|
|
|
|
|
|
|
|