comparison mycrypt_cipher.h @ 143:5d99163f7e32 libtomcrypt-orig

import of libtomcrypt 0.99
author Matt Johnston <matt@ucc.asn.au>
date Sun, 19 Dec 2004 11:34:45 +0000
parents 6362d3854bb4
children
comparison
equal deleted inserted replaced
15:6362d3854bb4 143:5d99163f7e32
177 unsigned char ctr[MAXBLOCKSIZE], pad[MAXBLOCKSIZE]; 177 unsigned char ctr[MAXBLOCKSIZE], pad[MAXBLOCKSIZE];
178 symmetric_key key; 178 symmetric_key key;
179 } symmetric_CTR; 179 } symmetric_CTR;
180 180
181 /* cipher descriptor table, last entry has "name == NULL" to mark the end of table */ 181 /* cipher descriptor table, last entry has "name == NULL" to mark the end of table */
182 extern struct _cipher_descriptor { 182 extern struct _cipher_descriptor {
183 char *name; 183 char *name;
184 unsigned char ID; 184 unsigned char ID;
185 int min_key_length, max_key_length, block_length, default_rounds; 185 int min_key_length, max_key_length, block_length, default_rounds;
186 int (*setup)(const unsigned char *key, int keylength, int num_rounds, symmetric_key *skey); 186 int (*setup)(const unsigned char *key, int keylength, int num_rounds, symmetric_key *skey);
187 void (*ecb_encrypt)(const unsigned char *pt, unsigned char *ct, symmetric_key *key); 187 void (*ecb_encrypt)(const unsigned char *pt, unsigned char *ct, symmetric_key *key);
189 int (*test)(void); 189 int (*test)(void);
190 int (*keysize)(int *desired_keysize); 190 int (*keysize)(int *desired_keysize);
191 } cipher_descriptor[]; 191 } cipher_descriptor[];
192 192
193 #ifdef BLOWFISH 193 #ifdef BLOWFISH
194 extern int blowfish_setup(const unsigned char *key, int keylen, int num_rounds, symmetric_key *skey); 194 int blowfish_setup(const unsigned char *key, int keylen, int num_rounds, symmetric_key *skey);
195 extern void blowfish_ecb_encrypt(const unsigned char *pt, unsigned char *ct, symmetric_key *key); 195 void blowfish_ecb_encrypt(const unsigned char *pt, unsigned char *ct, symmetric_key *key);
196 extern void blowfish_ecb_decrypt(const unsigned char *ct, unsigned char *pt, symmetric_key *key); 196 void blowfish_ecb_decrypt(const unsigned char *ct, unsigned char *pt, symmetric_key *key);
197 extern int blowfish_test(void); 197 int blowfish_test(void);
198 extern int blowfish_keysize(int *desired_keysize); 198 int blowfish_keysize(int *desired_keysize);
199 extern const struct _cipher_descriptor blowfish_desc; 199 extern const struct _cipher_descriptor blowfish_desc;
200 #endif 200 #endif
201 201
202 #ifdef RC5 202 #ifdef RC5
203 extern int rc5_setup(const unsigned char *key, int keylen, int num_rounds, symmetric_key *skey); 203 int rc5_setup(const unsigned char *key, int keylen, int num_rounds, symmetric_key *skey);
204 extern void rc5_ecb_encrypt(const unsigned char *pt, unsigned char *ct, symmetric_key *key); 204 void rc5_ecb_encrypt(const unsigned char *pt, unsigned char *ct, symmetric_key *key);
205 extern void rc5_ecb_decrypt(const unsigned char *ct, unsigned char *pt, symmetric_key *key); 205 void rc5_ecb_decrypt(const unsigned char *ct, unsigned char *pt, symmetric_key *key);
206 extern int rc5_test(void); 206 int rc5_test(void);
207 extern int rc5_keysize(int *desired_keysize); 207 int rc5_keysize(int *desired_keysize);
208 extern const struct _cipher_descriptor rc5_desc; 208 extern const struct _cipher_descriptor rc5_desc;
209 #endif 209 #endif
210 210
211 #ifdef RC6 211 #ifdef RC6
212 extern int rc6_setup(const unsigned char *key, int keylen, int num_rounds, symmetric_key *skey); 212 int rc6_setup(const unsigned char *key, int keylen, int num_rounds, symmetric_key *skey);
213 extern void rc6_ecb_encrypt(const unsigned char *pt, unsigned char *ct, symmetric_key *key); 213 void rc6_ecb_encrypt(const unsigned char *pt, unsigned char *ct, symmetric_key *key);
214 extern void rc6_ecb_decrypt(const unsigned char *ct, unsigned char *pt, symmetric_key *key); 214 void rc6_ecb_decrypt(const unsigned char *ct, unsigned char *pt, symmetric_key *key);
215 extern int rc6_test(void); 215 int rc6_test(void);
216 extern int rc6_keysize(int *desired_keysize); 216 int rc6_keysize(int *desired_keysize);
217 extern const struct _cipher_descriptor rc6_desc; 217 extern const struct _cipher_descriptor rc6_desc;
218 #endif 218 #endif
219 219
220 #ifdef RC2 220 #ifdef RC2
221 extern int rc2_setup(const unsigned char *key, int keylen, int num_rounds, symmetric_key *skey); 221 int rc2_setup(const unsigned char *key, int keylen, int num_rounds, symmetric_key *skey);
222 extern void rc2_ecb_encrypt(const unsigned char *pt, unsigned char *ct, symmetric_key *key); 222 void rc2_ecb_encrypt(const unsigned char *pt, unsigned char *ct, symmetric_key *key);
223 extern void rc2_ecb_decrypt(const unsigned char *ct, unsigned char *pt, symmetric_key *key); 223 void rc2_ecb_decrypt(const unsigned char *ct, unsigned char *pt, symmetric_key *key);
224 extern int rc2_test(void); 224 int rc2_test(void);
225 extern int rc2_keysize(int *desired_keysize); 225 int rc2_keysize(int *desired_keysize);
226 extern const struct _cipher_descriptor rc2_desc; 226 extern const struct _cipher_descriptor rc2_desc;
227 #endif 227 #endif
228 228
229 #ifdef SAFERP 229 #ifdef SAFERP
230 extern int saferp_setup(const unsigned char *key, int keylen, int num_rounds, symmetric_key *skey); 230 int saferp_setup(const unsigned char *key, int keylen, int num_rounds, symmetric_key *skey);
231 extern void saferp_ecb_encrypt(const unsigned char *pt, unsigned char *ct, symmetric_key *key); 231 void saferp_ecb_encrypt(const unsigned char *pt, unsigned char *ct, symmetric_key *key);
232 extern void saferp_ecb_decrypt(const unsigned char *ct, unsigned char *pt, symmetric_key *key); 232 void saferp_ecb_decrypt(const unsigned char *ct, unsigned char *pt, symmetric_key *key);
233 extern int saferp_test(void); 233 int saferp_test(void);
234 extern int saferp_keysize(int *desired_keysize); 234 int saferp_keysize(int *desired_keysize);
235 extern const struct _cipher_descriptor saferp_desc; 235 extern const struct _cipher_descriptor saferp_desc;
236 #endif 236 #endif
237 237
238 #ifdef SAFER 238 #ifdef SAFER
239 extern int safer_k64_setup(const unsigned char *key, int keylen, int num_rounds, symmetric_key *skey); 239 int safer_k64_setup(const unsigned char *key, int keylen, int num_rounds, symmetric_key *skey);
240 extern int safer_sk64_setup(const unsigned char *key, int keylen, int num_rounds, symmetric_key *skey); 240 int safer_sk64_setup(const unsigned char *key, int keylen, int num_rounds, symmetric_key *skey);
241 extern int safer_k128_setup(const unsigned char *key, int keylen, int num_rounds, symmetric_key *skey); 241 int safer_k128_setup(const unsigned char *key, int keylen, int num_rounds, symmetric_key *skey);
242 extern int safer_sk128_setup(const unsigned char *key, int keylen, int num_rounds, symmetric_key *skey); 242 int safer_sk128_setup(const unsigned char *key, int keylen, int num_rounds, symmetric_key *skey);
243 extern void safer_ecb_encrypt(const unsigned char *pt, unsigned char *ct, symmetric_key *key); 243 void safer_ecb_encrypt(const unsigned char *pt, unsigned char *ct, symmetric_key *key);
244 extern void safer_ecb_decrypt(const unsigned char *ct, unsigned char *pt, symmetric_key *key); 244 void safer_ecb_decrypt(const unsigned char *ct, unsigned char *pt, symmetric_key *key);
245 245
246 extern int safer_k64_test(void); 246 int safer_k64_test(void);
247 extern int safer_sk64_test(void); 247 int safer_sk64_test(void);
248 extern int safer_sk128_test(void); 248 int safer_sk128_test(void);
249 249
250 extern int safer_64_keysize(int *desired_keysize); 250 int safer_64_keysize(int *desired_keysize);
251 extern int safer_128_keysize(int *desired_keysize); 251 int safer_128_keysize(int *desired_keysize);
252 extern const struct _cipher_descriptor safer_k64_desc, safer_k128_desc, safer_sk64_desc, safer_sk128_desc; 252 extern const struct _cipher_descriptor safer_k64_desc, safer_k128_desc, safer_sk64_desc, safer_sk128_desc;
253 #endif 253 #endif
254 254
255 #ifdef RIJNDAEL 255 #ifdef RIJNDAEL
256 256
257 /* make aes an alias */ 257 /* make aes an alias */
263 263
264 #define aes_enc_setup rijndael_enc_setup 264 #define aes_enc_setup rijndael_enc_setup
265 #define aes_enc_ecb_encrypt rijndael_enc_ecb_encrypt 265 #define aes_enc_ecb_encrypt rijndael_enc_ecb_encrypt
266 #define aes_enc_keysize rijndael_enc_keysize 266 #define aes_enc_keysize rijndael_enc_keysize
267 267
268 extern int rijndael_setup(const unsigned char *key, int keylen, int num_rounds, symmetric_key *skey); 268 int rijndael_setup(const unsigned char *key, int keylen, int num_rounds, symmetric_key *skey);
269 extern void rijndael_ecb_encrypt(const unsigned char *pt, unsigned char *ct, symmetric_key *key); 269 void rijndael_ecb_encrypt(const unsigned char *pt, unsigned char *ct, symmetric_key *key);
270 extern void rijndael_ecb_decrypt(const unsigned char *ct, unsigned char *pt, symmetric_key *key); 270 void rijndael_ecb_decrypt(const unsigned char *ct, unsigned char *pt, symmetric_key *key);
271 extern int rijndael_test(void); 271 int rijndael_test(void);
272 extern int rijndael_keysize(int *desired_keysize); 272 int rijndael_keysize(int *desired_keysize);
273 273
274 extern int rijndael_enc_setup(const unsigned char *key, int keylen, int num_rounds, symmetric_key *skey); 274 int rijndael_enc_setup(const unsigned char *key, int keylen, int num_rounds, symmetric_key *skey);
275 extern void rijndael_enc_ecb_encrypt(const unsigned char *pt, unsigned char *ct, symmetric_key *key); 275 void rijndael_enc_ecb_encrypt(const unsigned char *pt, unsigned char *ct, symmetric_key *key);
276 extern int rijndael_enc_keysize(int *desired_keysize); 276 int rijndael_enc_keysize(int *desired_keysize);
277 277
278 extern const struct _cipher_descriptor rijndael_desc, aes_desc; 278 extern const struct _cipher_descriptor rijndael_desc, aes_desc;
279 extern const struct _cipher_descriptor rijndael_enc_desc, aes_enc_desc; 279 extern const struct _cipher_descriptor rijndael_enc_desc, aes_enc_desc;
280 #endif 280 #endif
281 281
282 #ifdef XTEA 282 #ifdef XTEA
283 extern int xtea_setup(const unsigned char *key, int keylen, int num_rounds, symmetric_key *skey); 283 int xtea_setup(const unsigned char *key, int keylen, int num_rounds, symmetric_key *skey);
284 extern void xtea_ecb_encrypt(const unsigned char *pt, unsigned char *ct, symmetric_key *key); 284 void xtea_ecb_encrypt(const unsigned char *pt, unsigned char *ct, symmetric_key *key);
285 extern void xtea_ecb_decrypt(const unsigned char *ct, unsigned char *pt, symmetric_key *key); 285 void xtea_ecb_decrypt(const unsigned char *ct, unsigned char *pt, symmetric_key *key);
286 extern int xtea_test(void); 286 int xtea_test(void);
287 extern int xtea_keysize(int *desired_keysize); 287 int xtea_keysize(int *desired_keysize);
288 extern const struct _cipher_descriptor xtea_desc; 288 extern const struct _cipher_descriptor xtea_desc;
289 #endif 289 #endif
290 290
291 #ifdef TWOFISH 291 #ifdef TWOFISH
292 extern int twofish_setup(const unsigned char *key, int keylen, int num_rounds, symmetric_key *skey); 292 int twofish_setup(const unsigned char *key, int keylen, int num_rounds, symmetric_key *skey);
293 extern void twofish_ecb_encrypt(const unsigned char *pt, unsigned char *ct, symmetric_key *key); 293 void twofish_ecb_encrypt(const unsigned char *pt, unsigned char *ct, symmetric_key *key);
294 extern void twofish_ecb_decrypt(const unsigned char *ct, unsigned char *pt, symmetric_key *key); 294 void twofish_ecb_decrypt(const unsigned char *ct, unsigned char *pt, symmetric_key *key);
295 extern int twofish_test(void); 295 int twofish_test(void);
296 extern int twofish_keysize(int *desired_keysize); 296 int twofish_keysize(int *desired_keysize);
297 extern const struct _cipher_descriptor twofish_desc; 297 extern const struct _cipher_descriptor twofish_desc;
298 #endif 298 #endif
299 299
300 #ifdef DES 300 #ifdef DES
301 extern int des_setup(const unsigned char *key, int keylen, int num_rounds, symmetric_key *skey); 301 int des_setup(const unsigned char *key, int keylen, int num_rounds, symmetric_key *skey);
302 extern void des_ecb_encrypt(const unsigned char *pt, unsigned char *ct, symmetric_key *key); 302 void des_ecb_encrypt(const unsigned char *pt, unsigned char *ct, symmetric_key *key);
303 extern void des_ecb_decrypt(const unsigned char *ct, unsigned char *pt, symmetric_key *key); 303 void des_ecb_decrypt(const unsigned char *ct, unsigned char *pt, symmetric_key *key);
304 extern int des_test(void); 304 int des_test(void);
305 extern int des_keysize(int *desired_keysize); 305 int des_keysize(int *desired_keysize);
306 306
307 extern int des3_setup(const unsigned char *key, int keylen, int num_rounds, symmetric_key *skey); 307 int des3_setup(const unsigned char *key, int keylen, int num_rounds, symmetric_key *skey);
308 extern void des3_ecb_encrypt(const unsigned char *pt, unsigned char *ct, symmetric_key *key); 308 void des3_ecb_encrypt(const unsigned char *pt, unsigned char *ct, symmetric_key *key);
309 extern void des3_ecb_decrypt(const unsigned char *ct, unsigned char *pt, symmetric_key *key); 309 void des3_ecb_decrypt(const unsigned char *ct, unsigned char *pt, symmetric_key *key);
310 extern int des3_test(void); 310 int des3_test(void);
311 extern int des3_keysize(int *desired_keysize); 311 int des3_keysize(int *desired_keysize);
312 312
313 extern const struct _cipher_descriptor des_desc, des3_desc; 313 extern const struct _cipher_descriptor des_desc, des3_desc;
314 #endif 314 #endif
315 315
316 #ifdef CAST5 316 #ifdef CAST5
317 extern int cast5_setup(const unsigned char *key, int keylen, int num_rounds, symmetric_key *skey); 317 int cast5_setup(const unsigned char *key, int keylen, int num_rounds, symmetric_key *skey);
318 extern void cast5_ecb_encrypt(const unsigned char *pt, unsigned char *ct, symmetric_key *key); 318 void cast5_ecb_encrypt(const unsigned char *pt, unsigned char *ct, symmetric_key *key);
319 extern void cast5_ecb_decrypt(const unsigned char *ct, unsigned char *pt, symmetric_key *key); 319 void cast5_ecb_decrypt(const unsigned char *ct, unsigned char *pt, symmetric_key *key);
320 extern int cast5_test(void); 320 int cast5_test(void);
321 extern int cast5_keysize(int *desired_keysize); 321 int cast5_keysize(int *desired_keysize);
322 extern const struct _cipher_descriptor cast5_desc; 322 extern const struct _cipher_descriptor cast5_desc;
323 #endif 323 #endif
324 324
325 #ifdef NOEKEON 325 #ifdef NOEKEON
326 extern int noekeon_setup(const unsigned char *key, int keylen, int num_rounds, symmetric_key *skey); 326 int noekeon_setup(const unsigned char *key, int keylen, int num_rounds, symmetric_key *skey);
327 extern void noekeon_ecb_encrypt(const unsigned char *pt, unsigned char *ct, symmetric_key *key); 327 void noekeon_ecb_encrypt(const unsigned char *pt, unsigned char *ct, symmetric_key *key);
328 extern void noekeon_ecb_decrypt(const unsigned char *ct, unsigned char *pt, symmetric_key *key); 328 void noekeon_ecb_decrypt(const unsigned char *ct, unsigned char *pt, symmetric_key *key);
329 extern int noekeon_test(void); 329 int noekeon_test(void);
330 extern int noekeon_keysize(int *desired_keysize); 330 int noekeon_keysize(int *desired_keysize);
331 extern const struct _cipher_descriptor noekeon_desc; 331 extern const struct _cipher_descriptor noekeon_desc;
332 #endif 332 #endif
333 333
334 #ifdef SKIPJACK 334 #ifdef SKIPJACK
335 extern int skipjack_setup(const unsigned char *key, int keylen, int num_rounds, symmetric_key *skey); 335 int skipjack_setup(const unsigned char *key, int keylen, int num_rounds, symmetric_key *skey);
336 extern void skipjack_ecb_encrypt(const unsigned char *pt, unsigned char *ct, symmetric_key *key); 336 void skipjack_ecb_encrypt(const unsigned char *pt, unsigned char *ct, symmetric_key *key);
337 extern void skipjack_ecb_decrypt(const unsigned char *ct, unsigned char *pt, symmetric_key *key); 337 void skipjack_ecb_decrypt(const unsigned char *ct, unsigned char *pt, symmetric_key *key);
338 extern int skipjack_test(void); 338 int skipjack_test(void);
339 extern int skipjack_keysize(int *desired_keysize); 339 int skipjack_keysize(int *desired_keysize);
340 extern const struct _cipher_descriptor skipjack_desc; 340 extern const struct _cipher_descriptor skipjack_desc;
341 #endif 341 #endif
342 342
343 #ifdef ECB 343 #ifdef ECB
344 extern int ecb_start(int cipher, const unsigned char *key, 344 int ecb_start(int cipher, const unsigned char *key,
345 int keylen, int num_rounds, symmetric_ECB *ecb); 345 int keylen, int num_rounds, symmetric_ECB *ecb);
346 extern int ecb_encrypt(const unsigned char *pt, unsigned char *ct, symmetric_ECB *ecb); 346 int ecb_encrypt(const unsigned char *pt, unsigned char *ct, symmetric_ECB *ecb);
347 extern int ecb_decrypt(const unsigned char *ct, unsigned char *pt, symmetric_ECB *ecb); 347 int ecb_decrypt(const unsigned char *ct, unsigned char *pt, symmetric_ECB *ecb);
348 #endif 348 #endif
349 349
350 #ifdef CFB 350 #ifdef CFB
351 extern int cfb_start(int cipher, const unsigned char *IV, const unsigned char *key, 351 int cfb_start(int cipher, const unsigned char *IV, const unsigned char *key,
352 int keylen, int num_rounds, symmetric_CFB *cfb); 352 int keylen, int num_rounds, symmetric_CFB *cfb);
353 extern int cfb_encrypt(const unsigned char *pt, unsigned char *ct, unsigned long len, symmetric_CFB *cfb); 353 int cfb_encrypt(const unsigned char *pt, unsigned char *ct, unsigned long len, symmetric_CFB *cfb);
354 extern int cfb_decrypt(const unsigned char *ct, unsigned char *pt, unsigned long len, symmetric_CFB *cfb); 354 int cfb_decrypt(const unsigned char *ct, unsigned char *pt, unsigned long len, symmetric_CFB *cfb);
355 extern int cfb_getiv(unsigned char *IV, unsigned long *len, symmetric_CFB *cfb); 355 int cfb_getiv(unsigned char *IV, unsigned long *len, symmetric_CFB *cfb);
356 extern int cfb_setiv(const unsigned char *IV, unsigned long len, symmetric_CFB *cfb); 356 int cfb_setiv(const unsigned char *IV, unsigned long len, symmetric_CFB *cfb);
357 #endif 357 #endif
358 358
359 #ifdef OFB 359 #ifdef OFB
360 extern int ofb_start(int cipher, const unsigned char *IV, const unsigned char *key, 360 int ofb_start(int cipher, const unsigned char *IV, const unsigned char *key,
361 int keylen, int num_rounds, symmetric_OFB *ofb); 361 int keylen, int num_rounds, symmetric_OFB *ofb);
362 extern int ofb_encrypt(const unsigned char *pt, unsigned char *ct, unsigned long len, symmetric_OFB *ofb); 362 int ofb_encrypt(const unsigned char *pt, unsigned char *ct, unsigned long len, symmetric_OFB *ofb);
363 extern int ofb_decrypt(const unsigned char *ct, unsigned char *pt, unsigned long len, symmetric_OFB *ofb); 363 int ofb_decrypt(const unsigned char *ct, unsigned char *pt, unsigned long len, symmetric_OFB *ofb);
364 extern int ofb_getiv(unsigned char *IV, unsigned long *len, symmetric_OFB *ofb); 364 int ofb_getiv(unsigned char *IV, unsigned long *len, symmetric_OFB *ofb);
365 extern int ofb_setiv(const unsigned char *IV, unsigned long len, symmetric_OFB *ofb); 365 int ofb_setiv(const unsigned char *IV, unsigned long len, symmetric_OFB *ofb);
366 #endif 366 #endif
367 367
368 #ifdef CBC 368 #ifdef CBC
369 extern int cbc_start(int cipher, const unsigned char *IV, const unsigned char *key, 369 int cbc_start(int cipher, const unsigned char *IV, const unsigned char *key,
370 int keylen, int num_rounds, symmetric_CBC *cbc); 370 int keylen, int num_rounds, symmetric_CBC *cbc);
371 extern int cbc_encrypt(const unsigned char *pt, unsigned char *ct, symmetric_CBC *cbc); 371 int cbc_encrypt(const unsigned char *pt, unsigned char *ct, symmetric_CBC *cbc);
372 extern int cbc_decrypt(const unsigned char *ct, unsigned char *pt, symmetric_CBC *cbc); 372 int cbc_decrypt(const unsigned char *ct, unsigned char *pt, symmetric_CBC *cbc);
373 extern int cbc_getiv(unsigned char *IV, unsigned long *len, symmetric_CBC *cbc); 373 int cbc_getiv(unsigned char *IV, unsigned long *len, symmetric_CBC *cbc);
374 extern int cbc_setiv(const unsigned char *IV, unsigned long len, symmetric_CBC *cbc); 374 int cbc_setiv(const unsigned char *IV, unsigned long len, symmetric_CBC *cbc);
375 #endif 375 #endif
376 376
377 #ifdef CTR 377 #ifdef CTR
378 extern int ctr_start(int cipher, const unsigned char *IV, const unsigned char *key, 378 int ctr_start(int cipher, const unsigned char *IV, const unsigned char *key,
379 int keylen, int num_rounds, symmetric_CTR *ctr); 379 int keylen, int num_rounds, symmetric_CTR *ctr);
380 extern int ctr_encrypt(const unsigned char *pt, unsigned char *ct, unsigned long len, symmetric_CTR *ctr); 380 int ctr_encrypt(const unsigned char *pt, unsigned char *ct, unsigned long len, symmetric_CTR *ctr);
381 extern int ctr_decrypt(const unsigned char *ct, unsigned char *pt, unsigned long len, symmetric_CTR *ctr); 381 int ctr_decrypt(const unsigned char *ct, unsigned char *pt, unsigned long len, symmetric_CTR *ctr);
382 extern int ctr_getiv(unsigned char *IV, unsigned long *len, symmetric_CTR *ctr); 382 int ctr_getiv(unsigned char *IV, unsigned long *len, symmetric_CTR *ctr);
383 extern int ctr_setiv(const unsigned char *IV, unsigned long len, symmetric_CTR *ctr); 383 int ctr_setiv(const unsigned char *IV, unsigned long len, symmetric_CTR *ctr);
384 #endif 384 #endif
385 385
386 386
387 387
388 extern int find_cipher(const char *name); 388 int find_cipher(const char *name);
389 extern int find_cipher_any(const char *name, int blocklen, int keylen); 389 int find_cipher_any(const char *name, int blocklen, int keylen);
390 extern int find_cipher_id(unsigned char ID); 390 int find_cipher_id(unsigned char ID);
391 391
392 extern int register_cipher(const struct _cipher_descriptor *cipher); 392 int register_cipher(const struct _cipher_descriptor *cipher);
393 extern int unregister_cipher(const struct _cipher_descriptor *cipher); 393 int unregister_cipher(const struct _cipher_descriptor *cipher);
394 394
395 extern int cipher_is_valid(int idx); 395 int cipher_is_valid(int idx);
396 396