8 #include "crypto_core_salsa2012.h"
10 typedef unsigned int uint32
;
12 static const unsigned char sigma
[16] = {
13 'e', 'x', 'p', 'a', 'n', 'd', ' ', '3', '2', '-', 'b', 'y', 't', 'e', ' ', 'k'
16 int crypto_stream_xor(
18 const unsigned char *m
,unsigned long long mlen
,
19 const unsigned char *n
,
20 const unsigned char *k
24 unsigned char block
[64];
30 for (i
= 0;i
< 8;++i
) in
[i
] = n
[i
];
31 for (i
= 8;i
< 16;++i
) in
[i
] = 0;
34 crypto_core_salsa2012(block
,in
,k
,sigma
);
35 for (i
= 0;i
< 64;++i
) c
[i
] = m
[i
] ^ block
[i
];
38 for (i
= 8;i
< 16;++i
) {
39 u
+= (unsigned int) in
[i
];
50 crypto_core_salsa2012(block
,in
,k
,sigma
);
51 for (i
= 0;i
< mlen
;++i
) c
[i
] = m
[i
] ^ block
[i
];