174 if (source ==
NULL || length < 1 || CipherKey ==
NULL) {
196 char buffer[MAX_KEY_BLOCK_SIZE];
197 memset(buffer,
'\0',
sizeof(buffer));
198 Rand.Get(buffer, BLOWFISH_KEY_SIZE);
203 int didput = CipherKey->Encrypt(buffer, Plain_Key_Length(), Buffer);
205 BF.Key(buffer, BLOWFISH_KEY_SIZE);
207 IsGettingKey =
false;
214 int toget = (BytesLeft < length) ? BytesLeft : length;
215 memmove(&Buffer[Counter-BytesLeft], source, toget);
218 source = (
char *)source + toget;
224 if (BytesLeft == 0) {
225 char buffer[MAX_KEY_BLOCK_SIZE];
226 CipherKey->Decrypt(Buffer, Counter, buffer);
227 BF.Key(buffer, BLOWFISH_KEY_SIZE);
229 IsGettingKey =
false;