From c1fd8b8e89626b086352a1c8f36f31a1fdbb39c8 Mon Sep 17 00:00:00 2001 From: nk Date: Thu, 28 Mar 2019 15:07:16 +0100 Subject: [PATCH] ... --- api/basic_api.yml2 | 111 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 111 insertions(+) diff --git a/api/basic_api.yml2 b/api/basic_api.yml2 index 4746272a..b72ac4ac 100644 --- a/api/basic_api.yml2 +++ b/api/basic_api.yml2 @@ -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