Blame


1 0fc65b37 2004-03-21 devnull #include "os.h"
2 0fc65b37 2004-03-21 devnull #include <mp.h>
3 0fc65b37 2004-03-21 devnull #include <libsec.h>
4 0fc65b37 2004-03-21 devnull
5 cbeb0b26 2006-04-01 devnull /* I wasn't sure what to do when the buffer was not */
6 cbeb0b26 2006-04-01 devnull /* a multiple of 8. I did what lacy's cryptolib did */
7 cbeb0b26 2006-04-01 devnull /* to be compatible, but it looks dangerous to me */
8 cbeb0b26 2006-04-01 devnull /* since its encrypting plain text with the key. -- presotto */
9 0fc65b37 2004-03-21 devnull
10 0fc65b37 2004-03-21 devnull void
11 0fc65b37 2004-03-21 devnull desECBencrypt(uchar *p, int len, DESstate *s)
12 0fc65b37 2004-03-21 devnull {
13 0fc65b37 2004-03-21 devnull int i;
14 0fc65b37 2004-03-21 devnull uchar tmp[8];
15 0fc65b37 2004-03-21 devnull
16 0fc65b37 2004-03-21 devnull for(; len >= 8; len -= 8){
17 0fc65b37 2004-03-21 devnull block_cipher(s->expanded, p, 0);
18 0fc65b37 2004-03-21 devnull p += 8;
19 0fc65b37 2004-03-21 devnull }
20 fa325e9b 2020-01-10 cross
21 0fc65b37 2004-03-21 devnull if(len > 0){
22 0fc65b37 2004-03-21 devnull for (i=0; i<8; i++)
23 0fc65b37 2004-03-21 devnull tmp[i] = i;
24 0fc65b37 2004-03-21 devnull block_cipher(s->expanded, tmp, 0);
25 0fc65b37 2004-03-21 devnull for (i = 0; i < len; i++)
26 0fc65b37 2004-03-21 devnull p[i] ^= tmp[i];
27 0fc65b37 2004-03-21 devnull }
28 0fc65b37 2004-03-21 devnull }
29 0fc65b37 2004-03-21 devnull
30 0fc65b37 2004-03-21 devnull void
31 0fc65b37 2004-03-21 devnull desECBdecrypt(uchar *p, int len, DESstate *s)
32 0fc65b37 2004-03-21 devnull {
33 0fc65b37 2004-03-21 devnull int i;
34 0fc65b37 2004-03-21 devnull uchar tmp[8];
35 0fc65b37 2004-03-21 devnull
36 0fc65b37 2004-03-21 devnull for(; len >= 8; len -= 8){
37 0fc65b37 2004-03-21 devnull block_cipher(s->expanded, p, 1);
38 0fc65b37 2004-03-21 devnull p += 8;
39 0fc65b37 2004-03-21 devnull }
40 fa325e9b 2020-01-10 cross
41 0fc65b37 2004-03-21 devnull if(len > 0){
42 0fc65b37 2004-03-21 devnull for (i=0; i<8; i++)
43 0fc65b37 2004-03-21 devnull tmp[i] = i;
44 0fc65b37 2004-03-21 devnull block_cipher(s->expanded, tmp, 0);
45 0fc65b37 2004-03-21 devnull for (i = 0; i < len; i++)
46 0fc65b37 2004-03-21 devnull p[i] ^= tmp[i];
47 0fc65b37 2004-03-21 devnull }
48 0fc65b37 2004-03-21 devnull }