decl namespace @name; decl enum @name; decl interface @name; decl exception @name; decl method @name; decl struct @name; decl basic @type @name; namespace pEp { exception Status { pEp_status_ok > 0 pEp_init_cannot_load_gpgme > 0x0110 pEp_init_gpgme_init_failed > 0x0111 pEp_init_no_gpg_home > 0x0112 pEp_init_netpgp_init_failed > 0x0113 pEp_init_cannot_determine_gpg_version > 0x0114 pEp_init_unsupported_gpg_version > 0x0115 pEp_init_cannot_config_gpg_agent > 0x0116 pEp_init_sqlite3_without_mutex > 0x0120 pEp_init_cannot_open_db > 0x0121 pEp_init_cannot_open_system_db > 0x0122 pEp_key_not_found > 0x0201 pEp_key_has_ambig_name > 0x0202 pEp_get_key_failed > 0x0203 pEp_cannot_export_key > 0x0204 pEp_cannot_edit_key > 0x0205 pEp_key_unsuitable > 0x0206 pEp_cannot_find_identity > 0x0301 pEp_cannot_set_person > 0x0381 pEp_cannot_set_pgp_keypair > 0x0382 pEp_cannot_set_identity > 0x0383 pEp_cannot_set_trust > 0x0384 pEp_key_blacklisted > 0x0385 pEp_cannot_find_person > 0x0386 pEp_cannot_find_alias > 0x0391 pEp_cannot_set_alias > 0x0392 pEp_unencrypted > 0x0400 pEp_verified > 0x0401 pEp_decrypted > 0x0402 pEp_decrypted_and_verified > 0x0403 pEp_decrypt_wrong_format > 0x0404 pEp_decrypt_no_key > 0x0405 pEp_decrypt_signature_does_not_match > 0x0406 pEp_verify_no_key > 0x0407 pEp_verified_and_trusted > 0x0408 pEp_cannot_reencrypt > 0x0409 pEp_cannot_decrypt_unknown > 0x04ff pEp_trustword_not_found > 0x0501 pEp_trustwords_fpr_wrong_length > 0x0502 pEp_trustwords_duplicate_fpr > 0x0503 pEp_cannot_create_key > 0x0601 pEp_cannot_send_key > 0x0602 pEp_phrase_not_found > 0x0701 pEp_send_function_not_registered > 0x0801 pEp_contraints_violated > 0x0802 pEp_cannot_encode > 0x0803 pEp_sync_no_notify_callback > 0x0901 pEp_sync_illegal_message > 0x0902 pEp_sync_no_inject_callback > 0x0903 pEp_sync_no_channel > 0x0904 pEp_sync_cannot_encrypt > 0x0905 pEp_cannot_increase_sequence > 0x0971 pEp_statemachine_error > 0x0980 pEp_no_trust > 0x0981 pEp_statemachine_invalid_state > 0x0982 pEp_statemachine_invalid_event > 0x0983 pEp_statemachine_invalid_condition > 0x0984 pEp_statemachine_invalid_action > 0x0985 pEp_statemachine_inhibited_event > 0x0986 pEp_commit_failed > 0xff01 pEp_message_consume > 0xff02 pEp_message_ignore > 0xff03 pEp_record_not_found > -6 pEp_cannot_create_temp_file > -5 pEp_illegal_value > -4 pEp_buffer_too_small > -3 pEp_out_of_memory > -2 pEp_unknown_error > -1 pEp_version_mismatch > -7 }; enum Color { PEP_color_no_color > 0 PEP_color_yellow > 1 PEP_color_green > 2 PEP_color_red > -1 }; enum Rating { pEp_rating_undefined > 0 pEp_rating_cannot_decrypt > 1 pEp_rating_have_no_key > 2 pEp_rating_unencrypted > 3 pEp_rating_unencrypted_for_some > 4 pEp_rating_unreliable > 5 pEp_rating_reliable > 6 pEp_rating_trusted > 7 pEp_rating_trusted_and_anonymized > 8 pEp_rating_fully_anonymous > 9 pEp_rating_mistrust > -1 pEp_rating_b0rken > -2 pEp_rating_under_attack > -3 }; enum DecryptFlags { pEp_decrypt_flag_own_private_key > 1 PEP_decrypt_flag_consumed > 2 PEP_decrypt_flag_ignored > 4 PEP_decrypt_flag_src_modified > 8 PEP_decrypt_flag_untrusted_server > 0x100 }; enum IdentityFlags { PEP_idf_not_for_sync > 1 PEP_idf_list > 2 PEP_idf_devicegroup > 256 }; enum SyncHandshakeResult { sync_handshake_cancel > -1 sync_handshake_accepted > 0 sync_handshake_rejected > 1 }; enum SyncHandshakeSignal { sync_notify_undefined > 0 sync_notify_init_add_our_device > 1 sync_notify_init_add_other_device > 2 sync_notify_init_form_group > 3 sync_notify_init_move_our_device > 4 sync_notify_timeout > 5 sync_notify_accepted_device_added > 6 sync_notify_accepted_group_created > 7 sync_notify_accepted_device_moved > 8 }; interface Engine { method encrypt_message( in message src, in stringlist extra, creates message dst, in EncFormat format, Cconst PEP_encrypt_flags flags "0" ); method encrypt_message_and_add_priv_key( in message src, creates message dst, in string fpr, Cconst PEP_enc_format encformat "PEP_enc_PEP", Cconst PEP_encrypt_flags flags "0" ); method encrypt_message_for_self( in identity target, in message src, in stringlist extra, creates message dst, Cconst PEP_enc_format encformat "PEP_enc_PEP", Cconst PEP_encrypt_flags flags "0" ); method decrypt_message( inout message src, creates message dst, inout stringlist keylist, returns Rating rating, inout int flags ); method re_evaluate_message_rating( in message src, Cconst stringlist x_keylist "NULL", Cconst Rating x_enc_status "PEP_rating_undefined", returns Rating rating ); method outgoing_message_rating( in message msg, returns Rating rating ); method get_identity( in string address, in string userid, returns identity ident ); method identity_rating( in identity ident, returns Rating rating ); method blacklist_retrieve( returns stringlist blacklist ); method own_message_private_key_details( in message msg, returns identity ident ); method OpenPGP_list_keyinfo( in string pattern, returns stringpairlist keyinfoList ); method set_identity_flags( in identity ident, in int flags ); method unset_identity_flags( in identity ident, in int flags ); method own_identities_retrieve( returns identitylist identities ); method get_trustwords( in identity id1, in identity id2, in string lang, returns sstring words, in bool full ); method get_message_trustwords( in message msg, in stringlist keylist, in identity receivedby, in string lang, returns string words, in bool full ); method get_languagelist( returns string languagelist ); basic string trustwords(identity ident); basic identity myself(identity ident); basic identity updateIdentity(identity ident); basic identity setOwnKey(identity ident, string fpr); basic void keyMistrusted(identity ident); basic void keyResetTrust(identity ident); basic void trustPersonalKey(identity ident); basic void importKey(string key); basic void blacklist_add(string fpr); basic void blacklist_delete(string fpr); basic bool blacklist_is_listed(string fpr); basic void config_passive_mode(bool enable); basic void config_unencrypted_subject(bool enable); basic void accept_sync_handshake(identity ident); basic void reject_sync_handshake(identity ident); basic void cancel_sync_handshake(identity ident); basic string getCrashdumpLog(int maxlines); }; struct message { enum TextFormat { plain > 0 html > 1 other > 255 } enum direction { incoming > 0 outgoing > 1 } enum EncFormat { none > 0 pieces > 1 SMIME > 2 PGPMIME > 3 PEP > 4 } direction dir; string id; string shortmsg; string longmsg; string longmsg_formatted; bloblist attachments; timestamp sent; timestamp recv; identity from; identitylist to; identity recv_by; identitylist cc; identitylist bcc; identitylist reply_to; stringlist in_reply_to; stringlist references; stringlist keywords; string comments; stringpairlist opt_fields; EncFormat enc_format; }; };