1*8ccd4a63SDavid du Colombier #include "os.h"
2*8ccd4a63SDavid du Colombier #include <mp.h>
3*8ccd4a63SDavid du Colombier #include <libsec.h>
49b943567SDavid du Colombier
59b943567SDavid du Colombier // I wasn't sure what to do when the buffer was not
69b943567SDavid du Colombier // a multiple of 8. I did what lacy's cryptolib did
79b943567SDavid du Colombier // to be compatible, but it looks dangerous to me
89b943567SDavid du Colombier // since its encrypting plain text with the key. -- presotto
99b943567SDavid du Colombier
109b943567SDavid du Colombier void
desECBencrypt(uchar * p,int len,DESstate * s)119b943567SDavid du Colombier desECBencrypt(uchar *p, int len, DESstate *s)
129b943567SDavid du Colombier {
139b943567SDavid du Colombier int i;
149b943567SDavid du Colombier uchar tmp[8];
159b943567SDavid du Colombier
169b943567SDavid du Colombier for(; len >= 8; len -= 8){
179b943567SDavid du Colombier block_cipher(s->expanded, p, 0);
189b943567SDavid du Colombier p += 8;
199b943567SDavid du Colombier }
209b943567SDavid du Colombier
219b943567SDavid du Colombier if(len > 0){
229b943567SDavid du Colombier for (i=0; i<8; i++)
239b943567SDavid du Colombier tmp[i] = i;
249b943567SDavid du Colombier block_cipher(s->expanded, tmp, 0);
259b943567SDavid du Colombier for (i = 0; i < len; i++)
269b943567SDavid du Colombier p[i] ^= tmp[i];
279b943567SDavid du Colombier }
289b943567SDavid du Colombier }
299b943567SDavid du Colombier
309b943567SDavid du Colombier void
desECBdecrypt(uchar * p,int len,DESstate * s)319b943567SDavid du Colombier desECBdecrypt(uchar *p, int len, DESstate *s)
329b943567SDavid du Colombier {
339b943567SDavid du Colombier int i;
349b943567SDavid du Colombier uchar tmp[8];
359b943567SDavid du Colombier
369b943567SDavid du Colombier for(; len >= 8; len -= 8){
379b943567SDavid du Colombier block_cipher(s->expanded, p, 1);
389b943567SDavid du Colombier p += 8;
399b943567SDavid du Colombier }
409b943567SDavid du Colombier
419b943567SDavid du Colombier if(len > 0){
429b943567SDavid du Colombier for (i=0; i<8; i++)
439b943567SDavid du Colombier tmp[i] = i;
449b943567SDavid du Colombier block_cipher(s->expanded, tmp, 0);
459b943567SDavid du Colombier for (i = 0; i < len; i++)
469b943567SDavid du Colombier p[i] ^= tmp[i];
479b943567SDavid du Colombier }
489b943567SDavid du Colombier }
49