Deleted Added
full compact
bf_skey.c (63249) bf_skey.c (78064)
1/* $FreeBSD: head/sys/crypto/blowfish/bf_skey.c 62587 2000-07-04 16:35:15Z itojun $ */
2/* $KAME: bf_skey.c,v 1.3 2000/03/27 04:36:27 sumikawa Exp $ */
1/* $FreeBSD: head/sys/crypto/blowfish/bf_skey.c 78064 2001-06-11 12:39:29Z ume $ */
2/* $KAME: bf_skey.c,v 1.5 2000/11/06 13:58:08 itojun Exp $ */
3
4/* crypto/bf/bf_skey.c */
5/* Copyright (C) 1995-1997 Eric Young (eay@mincom.oz.au)
6 * All rights reserved.
7 *
8 * This package is an SSL implementation written
9 * by Eric Young (eay@mincom.oz.au).
10 * The implementation was written so as to conform with Netscapes SSL.

--- 50 unchanged lines hidden (view full) ---

61
62#include <sys/types.h>
63#include <sys/time.h>
64#include <sys/systm.h>
65#include <crypto/blowfish/blowfish.h>
66#include <crypto/blowfish/bf_locl.h>
67#include <crypto/blowfish/bf_pi.h>
68
3
4/* crypto/bf/bf_skey.c */
5/* Copyright (C) 1995-1997 Eric Young (eay@mincom.oz.au)
6 * All rights reserved.
7 *
8 * This package is an SSL implementation written
9 * by Eric Young (eay@mincom.oz.au).
10 * The implementation was written so as to conform with Netscapes SSL.

--- 50 unchanged lines hidden (view full) ---

61
62#include <sys/types.h>
63#include <sys/time.h>
64#include <sys/systm.h>
65#include <crypto/blowfish/blowfish.h>
66#include <crypto/blowfish/bf_locl.h>
67#include <crypto/blowfish/bf_pi.h>
68
69void BF_set_key(key,len,data)
70BF_KEY *key;
71int len;
72unsigned char *data;
73 {
69void
70BF_set_key(key, len, data)
71 BF_KEY *key;
72 int len;
73 unsigned char *data;
74{
74 int i;
75 int i;
75 BF_LONG *p,ri,in[2];
76 unsigned char *d,*end;
76 BF_LONG *p, ri, in[2];
77 unsigned char *d, *end;
77
78
79 memcpy((char *)key, (char *)&bf_init, sizeof(BF_KEY));
80 p = key->P;
78
81
79 memcpy((char *)key,(char *)&bf_init,sizeof(BF_KEY));
80 p=key->P;
82 if (len > ((BF_ROUNDS + 2) * 4))
83 len = (BF_ROUNDS + 2) * 4;
81
84
82 if (len > ((BF_ROUNDS+2)*4)) len=(BF_ROUNDS+2)*4;
83
84 d=data;
85 d = data;
85 end= &(data[len]);
86 end= &(data[len]);
86 for (i=0; i<(BF_ROUNDS+2); i++)
87 {
88 ri= *(d++);
89 if (d >= end) d=data;
87 for (i = 0; i < BF_ROUNDS + 2; i++) {
88 ri = *(d++);
89 if (d >= end) d = data;
90
90
91 ri<<=8;
92 ri|= *(d++);
93 if (d >= end) d=data;
91 ri <<= 8;
92 ri |= *(d++);
93 if (d >= end) d = data;
94
94
95 ri<<=8;
96 ri|= *(d++);
97 if (d >= end) d=data;
95 ri <<= 8;
96 ri |= *(d++);
97 if (d >= end) d = data;
98
98
99 ri<<=8;
100 ri|= *(d++);
101 if (d >= end) d=data;
99 ri <<= 8;
100 ri |= *(d++);
101 if (d >= end) d = data;
102
102
103 p[i]^=ri;
104 }
103 p[i] ^= ri;
104 }
105
105
106 in[0]=0L;
107 in[1]=0L;
108 for (i=0; i<(BF_ROUNDS+2); i+=2)
109 {
110 BF_encrypt(in,key,BF_ENCRYPT);
111 p[i ]=in[0];
112 p[i+1]=in[1];
113 }
114
115 p=key->S;
116 for (i=0; i<4*256; i+=2)
117 {
118 BF_encrypt(in,key,BF_ENCRYPT);
119 p[i ]=in[0];
120 p[i+1]=in[1];
121 }
106 in[0] = 0L;
107 in[1] = 0L;
108 for (i = 0; i < BF_ROUNDS + 2; i += 2) {
109 BF_encrypt(in, key, BF_ENCRYPT);
110 p[i ] = in[0];
111 p[i+1] = in[1];
122 }
123
112 }
113
114 p = key->S;
115 for (i = 0; i < 4 * 256; i += 2) {
116 BF_encrypt(in, key, BF_ENCRYPT);
117 p[i ] = in[0];
118 p[i+1] = in[1];
119 }
120}