1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
use super::*;

use {BString, CString, Error, CommandHandle, WalletHandle};

extern {

    #[no_mangle]
    pub fn indy_create_key(command_handle: CommandHandle,
                           wallet_handle: WalletHandle,
                           key_json: CString,
                           cb: Option<ResponseStringCB>) -> Error;

    #[no_mangle]
    pub fn indy_set_key_metadata(command_handle: CommandHandle,
                                 wallet_handle: WalletHandle,
                                 verkey: CString,
                                 metadata: CString,
                                 cb: Option<ResponseEmptyCB>) -> Error;

    #[no_mangle]
    pub fn indy_get_key_metadata(command_handle: CommandHandle,
                                 wallet_handle: WalletHandle,
                                 verkey: CString,
                                 cb: Option<ResponseStringCB>) -> Error;

    #[no_mangle]
    pub fn indy_crypto_sign(command_handle: CommandHandle,
                            wallet_handle: WalletHandle,
                            signer_vk: CString,
                            message_raw: BString,
                            message_len: u32,
                            cb: Option<ResponseSliceCB>) -> Error;

    #[no_mangle]
    pub fn indy_crypto_verify(command_handle: CommandHandle,
                              signer_vk: CString,
                              message_raw: BString,
                              message_len: u32,
                              signature_raw: BString,
                              signature_len: u32,
                              cb: Option<ResponseBoolCB>) -> Error;

    #[no_mangle]
    pub fn indy_crypto_auth_crypt(command_handle: CommandHandle,
                                  wallet_handle: WalletHandle,
                                  sender_vk: CString,
                                  recipient_vk: CString,
                                  msg_data: BString,
                                  msg_len: u32,
                                  cb: Option<ResponseSliceCB>) -> Error;

    #[no_mangle]
    pub fn indy_crypto_auth_decrypt(command_handle: CommandHandle,
                                    wallet_handle: WalletHandle,
                                    recipient_vk: CString,
                                    encrypted_msg: BString,
                                    encrypted_len: u32,
                                    cb: Option<ResponseStringSliceCB>) -> Error;

    #[no_mangle]
    pub fn indy_crypto_anon_crypt(command_handle: CommandHandle,
                                  recipient_vk: CString,
                                  msg_data: BString,
                                  msg_len: u32,
                                  cb: Option<ResponseSliceCB>) -> Error;

    #[no_mangle]
    pub fn indy_crypto_anon_decrypt(command_handle: CommandHandle,
                                    wallet_handle: WalletHandle,
                                    recipient_vk: CString,
                                    encrypted_msg: BString,
                                    encrypted_len: u32,
                                    cb: Option<ResponseSliceCB>) -> Error;

    #[no_mangle]
    pub fn indy_pack_message(command_handle: CommandHandle,
                             wallet_handle: WalletHandle,
                             message: BString,
                             message_len: u32,
                             receiver_keys: CString,
                             sender: CString,
                             cb: Option<ResponseSliceCB>) -> Error;

    #[no_mangle]
    pub fn indy_unpack_message(command_handle: CommandHandle,
                               wallet_handle: WalletHandle,
                               jwe_msg: BString,
                               jwe_len: u32,
                               cb: Option<ResponseSliceCB>) -> Error;
}