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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
pub const crypto_box_curve25519xsalsa20poly1305_SEEDBYTES: usize = 32;
pub const crypto_box_curve25519xsalsa20poly1305_PUBLICKEYBYTES: usize = 32;
pub const crypto_box_curve25519xsalsa20poly1305_SECRETKEYBYTES: usize = 32;
pub const crypto_box_curve25519xsalsa20poly1305_BEFORENMBYTES: usize = 32;
pub const crypto_box_curve25519xsalsa20poly1305_NONCEBYTES: usize = 24;
pub const crypto_box_curve25519xsalsa20poly1305_ZEROBYTES: usize = 32;
pub const crypto_box_curve25519xsalsa20poly1305_BOXZEROBYTES: usize = 16;
pub const crypto_box_curve25519xsalsa20poly1305_MACBYTES: usize =
crypto_box_curve25519xsalsa20poly1305_ZEROBYTES -
crypto_box_curve25519xsalsa20poly1305_BOXZEROBYTES;
extern {
pub fn crypto_box_curve25519xsalsa20poly1305_keypair(
pk: *mut [u8; crypto_box_curve25519xsalsa20poly1305_PUBLICKEYBYTES],
sk: *mut [u8; crypto_box_curve25519xsalsa20poly1305_SECRETKEYBYTES])
-> c_int;
pub fn crypto_box_curve25519xsalsa20poly1305(
c: *mut u8,
m: *const u8,
mlen: c_ulonglong,
n: *const [u8; crypto_box_curve25519xsalsa20poly1305_NONCEBYTES],
pk: *const [u8; crypto_box_curve25519xsalsa20poly1305_PUBLICKEYBYTES],
sk: *const [u8; crypto_box_curve25519xsalsa20poly1305_SECRETKEYBYTES])
-> c_int;
pub fn crypto_box_curve25519xsalsa20poly1305_open(
m: *mut u8,
c: *const u8,
clen: c_ulonglong,
n: *const [u8; crypto_box_curve25519xsalsa20poly1305_NONCEBYTES],
pk: *const [u8; crypto_box_curve25519xsalsa20poly1305_PUBLICKEYBYTES],
sk: *const [u8; crypto_box_curve25519xsalsa20poly1305_SECRETKEYBYTES])
-> c_int;
pub fn crypto_box_curve25519xsalsa20poly1305_beforenm(
k: *mut [u8; crypto_box_curve25519xsalsa20poly1305_BEFORENMBYTES],
pk: *const [u8; crypto_box_curve25519xsalsa20poly1305_PUBLICKEYBYTES],
sk: *const [u8; crypto_box_curve25519xsalsa20poly1305_SECRETKEYBYTES])
-> c_int;
pub fn crypto_box_curve25519xsalsa20poly1305_afternm(
c: *mut u8,
m: *const u8,
mlen: c_ulonglong,
n: *const [u8; crypto_box_curve25519xsalsa20poly1305_NONCEBYTES],
k: *const [u8; crypto_box_curve25519xsalsa20poly1305_BEFORENMBYTES])
-> c_int;
pub fn crypto_box_curve25519xsalsa20poly1305_open_afternm(
m: *mut u8,
c: *const u8,
clen: c_ulonglong,
n: *const [u8; crypto_box_curve25519xsalsa20poly1305_NONCEBYTES],
k: *const [u8; crypto_box_curve25519xsalsa20poly1305_BEFORENMBYTES])
-> c_int;
pub fn crypto_box_curve25519xsalsa20poly1305_seedbytes() -> size_t;
pub fn crypto_box_curve25519xsalsa20poly1305_publickeybytes() -> size_t;
pub fn crypto_box_curve25519xsalsa20poly1305_secretkeybytes() -> size_t;
pub fn crypto_box_curve25519xsalsa20poly1305_beforenmbytes() -> size_t;
pub fn crypto_box_curve25519xsalsa20poly1305_noncebytes() -> size_t;
pub fn crypto_box_curve25519xsalsa20poly1305_zerobytes() -> size_t;
pub fn crypto_box_curve25519xsalsa20poly1305_boxzerobytes() -> size_t;
pub fn crypto_box_curve25519xsalsa20poly1305_macbytes() -> size_t;
}
#[test]
fn test_crypto_box_curve25519xsalsa20poly1305_seedbytes() {
assert!(unsafe {
crypto_box_curve25519xsalsa20poly1305_seedbytes() as usize
} == crypto_box_curve25519xsalsa20poly1305_SEEDBYTES)
}
#[test]
fn test_crypto_box_curve25519xsalsa20poly1305_publickeybytes() {
assert!(unsafe {
crypto_box_curve25519xsalsa20poly1305_publickeybytes() as usize
} == crypto_box_curve25519xsalsa20poly1305_PUBLICKEYBYTES)
}
#[test]
fn test_crypto_box_curve25519xsalsa20poly1305_secretkeybytes() {
assert!(unsafe {
crypto_box_curve25519xsalsa20poly1305_secretkeybytes() as usize
} == crypto_box_curve25519xsalsa20poly1305_SECRETKEYBYTES)
}
#[test]
fn test_crypto_box_curve25519xsalsa20poly1305_beforenmbytes() {
assert!(unsafe {
crypto_box_curve25519xsalsa20poly1305_beforenmbytes() as usize
} == crypto_box_curve25519xsalsa20poly1305_BEFORENMBYTES)
}
#[test]
fn test_crypto_box_curve25519xsalsa20poly1305_noncebytes() {
assert!(unsafe {
crypto_box_curve25519xsalsa20poly1305_noncebytes() as usize
} == crypto_box_curve25519xsalsa20poly1305_NONCEBYTES)
}
#[test]
fn test_crypto_box_curve25519xsalsa20poly1305_zerobytes() {
assert!(unsafe {
crypto_box_curve25519xsalsa20poly1305_zerobytes() as usize
} == crypto_box_curve25519xsalsa20poly1305_ZEROBYTES)
}
#[test]
fn test_crypto_box_curve25519xsalsa20poly1305_boxzerobytes() {
assert!(unsafe {
crypto_box_curve25519xsalsa20poly1305_boxzerobytes() as usize
} == crypto_box_curve25519xsalsa20poly1305_BOXZEROBYTES)
}
#[test]
fn test_crypto_box_curve25519xsalsa20poly1305_macbytes() {
assert!(unsafe {
crypto_box_curve25519xsalsa20poly1305_macbytes() as usize
} == crypto_box_curve25519xsalsa20poly1305_MACBYTES)
}