... generate_api
authornk
Thu, 28 Mar 2019 15:07:16 +0100
branchgenerate_api
changeset 3415e9388ddb3962
parent 3414 10dd8071d216
child 3416 a5e50e8ea902
...
api/basic_api.yml2
     1.1 --- a/api/basic_api.yml2	Thu Mar 28 15:05:07 2019 +0100
     1.2 +++ b/api/basic_api.yml2	Thu Mar 28 15:07:16 2019 +0100
     1.3 @@ -7,5 +7,116 @@
     1.4  // written by Nana Karlstetter and Volker Birk
     1.5  
     1.6  
     1.7 +type ISO639_1 is string size=2 > a-z
     1.8 +
     1.9 +type hex is string > a-f0-9
    1.10 +
    1.11 +type hash doc="32bit Key ID to SHA512 in hex"
    1.12 +    is hex min=16, max=128;
    1.13 +
    1.14 +type hash_list doc="sequence of fingerprints of keys"
    1.15 +    is list< hash >;
    1.16 +
    1.17 +type TID doc="UUID version 4 variant 1"
    1.18 +    is binary size=16;
    1.19 +
    1.20 +type blob_list is list< blob >;
    1.21 +
    1.22 +type identity_list is list< identity >;
    1.23 +
    1.24 +type string_list is list< string > ; 
    1.25 +
    1.26 +type string_pair is pair< string, string >;
    1.27  
    1.28  
    1.29 +enum comm_type {
    1.30 +    hex unknown 0;
    1.31 +
    1.32 +    doc > range 0x01 to 0x09: no encryption, 0x0a to 0x0e: nothing reasonable
    1.33 +
    1.34 +    hex no_encryption 0x01                 doc="generic";
    1.35 +    hex no_encrypted_channel 0x02;
    1.36 +    hex key_not_found 0x03;
    1.37 +    hex key_expired 0x04;
    1.38 +    hex key_revoked 0x05;
    1.39 +    hex key_b0rken 0x06;
    1.40 +
    1.41 +    hex key_expired_but_confirmed 0x07
    1.42 +        doc="NOT with confirmed bit. Just retaining info here in case of renewal.";
    1.43 +
    1.44 +    hex my_key_not_included 0x09;
    1.45 +
    1.46 +    hex security_by_obscurity 0x0a;
    1.47 +    hex b0rken_crypto 0x0b;
    1.48 +    hex key_too_short 0x0c;
    1.49 +
    1.50 +    hex compromised 0x0e                   doc="known compromised connection";
    1.51 +    hex compromized 0x0e                   doc="deprecated misspelling";
    1.52 +    hex mistrusted 0x0f                    doc="known mistrusted key";
    1.53 +
    1.54 +    doc > range 0x10 to 0x3f: unconfirmed encryption
    1.55 +
    1.56 +    hex unconfirmed_encryption 0x10        doc="generic";
    1.57 +    hex OpenPGP_weak_unconfirmed 0x11      doc="RSA 1024 is weak";
    1.58 +
    1.59 +    hex to_be_checked 0x20                 doc="generic";
    1.60 +    hex SMIME_unconfirmed 0x21;
    1.61 +    hex CMS_unconfirmed 0x22;
    1.62 +
    1.63 +    hex strong_but_unconfirmed 0x30        doc="generic";
    1.64 +    hex OpenPGP_unconfirmed 0x38           doc="key at least 2048 bit RSA or EC";
    1.65 +    hex OTR_unconfirmed 0x3a;
    1.66 +
    1.67 +    doc > range 0x40 to 0x7f: unconfirmed encryption and anonymization
    1.68 +
    1.69 +    hex unconfirmed_enc_anon 0x40          doc="generic";
    1.70 +    hex pEp_unconfirmed 0x7f 
    1.71 +
    1.72 +    hex confirmed 0x80                     doc="this bit decides if trust is confirmed";
    1.73 +
    1.74 +    doc > range 0x81 to 0x8f: reserved
    1.75 +    doc > range 0x90 to 0xbf: confirmed encryption
    1.76 +
    1.77 +    hex confirmed_encryption 0x90          doc="generic";
    1.78 +    hex OpenPGP_weak 0x91                  doc="RSA 1024 is weak (unused)";
    1.79 +
    1.80 +    hex to_be_checked_confirmed 0xa0       doc="generic";
    1.81 +    hex SMIME 0xa1;
    1.82 +    hex CMS 0xa2;
    1.83 +
    1.84 +    hex strong_encryption 0xb0             doc="generic";
    1.85 +    hex OpenPGP 0xb8                       doc="key at least 2048 bit RSA or EC";
    1.86 +    hex OTR 0xba;
    1.87 +
    1.88 +    doc > range 0xc0 to 0xff: confirmed encryption and anonymization
    1.89 +
    1.90 +    hex confirmed_enc_anon 0xc0            doc="generic";
    1.91 +    hex pEp 0xff
    1.92 +
    1.93 +} // enum comm_type
    1.94 +
    1.95 +
    1.96 +struct identity {
    1.97 +    
    1.98 +    field string address doc="SMTP address or URI";
    1.99 +    field hash fpr doc="fingerprint of key being used as ID";
   1.100 +    field string user_id doc="ID for person or entity in M2M case";
   1.101 +    field string username doc="descriptive string";
   1.102 +    field ISO639_1 lang doc="two-digit language code or null bytes";
   1.103 +
   1.104 +    flags {
   1.105 +        flag not_for_sync 0x0001
   1.106 +            doc="don't use this identity for Sync";
   1.107 +
   1.108 +        flag list 0x0002
   1.109 +            doc="identity of list of persons";
   1.110 +
   1.111 +        doc | the second octet flags are calculated
   1.112 +
   1.113 +        flag devicegroup 0x0100
   1.114 +            doc="identity of a device group member"
   1.115 +    }
   1.116 +
   1.117 +} // struct Identity
   1.118 +
   1.119 +