multiversx_sdk/data/
keystore.rs1use serde::{Deserialize, Serialize};
2
3pub const KDF_N: u32 = 4096;
4pub const KDF_R: u32 = 8;
5pub const KDF_P: u32 = 1;
6pub const KDF_DKLEN: usize = 32;
7pub const KEYSTORE_VERSION: u32 = 4;
8
9#[derive(Debug)]
10pub enum WalletError {
11 InvalidPassword,
12 InvalidKdf,
13 InvalidCipher,
14}
15
16#[derive(Debug)]
17pub enum InsertPassword {
18 Plaintext(String),
19 StandardInput,
20}
21
22#[derive(Debug, Serialize, Deserialize)]
23pub struct CryptoParams {
24 pub iv: String,
25}
26
27#[derive(Debug, Serialize, Deserialize)]
28pub struct KdfParams {
29 pub dklen: u32,
30 pub salt: String,
31 pub n: u32,
32 pub r: u32,
33 pub p: u32,
34}
35
36#[derive(Debug, Serialize, Deserialize)]
37pub struct Crypto {
38 pub ciphertext: String,
39 pub cipherparams: CryptoParams,
40 pub cipher: String,
41 pub kdf: String,
42 pub kdfparams: KdfParams,
43 pub mac: String,
44}
45
46#[derive(Debug, Serialize, Deserialize)]
47pub struct Keystore {
48 pub version: u32,
49 pub kind: String,
50 pub id: String,
51 pub address: String,
52 pub bech32: String,
53 pub crypto: Crypto,
54}
55
56#[derive(Clone, Debug)]
57pub struct DecryptionParams {
58 pub derived_key_first_half: Vec<u8>,
59 pub iv: Vec<u8>,
60 pub data: Vec<u8>,
61}