|  | /* | 
|  | C K _ D E S . C  -  libDES interface for Kermit 95" | 
|  |  | 
|  | Copyright (C) 1998, 2001, Trustees of Columbia University in the City of New | 
|  | York.  The C-Kermit software may not be, in whole or in part, licensed or | 
|  | sold for profit as a software product itself, nor may it be included in or | 
|  | distributed with commercial products or otherwise distributed by commercial | 
|  | concerns to their clients or customers without written permission of the | 
|  | Office of Kermit Development and Distribution, Columbia University.  This | 
|  | copyright notice must not be removed, altered, or obscured. | 
|  |  | 
|  | Author: | 
|  | Jeffrey E Altman (jaltman@secure-endpoints.com) | 
|  | */ | 
|  |  | 
|  | /* | 
|  | This file contains wrappers so that the following functions will be imported | 
|  | into the k95crypt.dll/k2crypt.dll files in such a form that they can be | 
|  | re-exported to k95.exe/k2.exe.  This subset of the DES library is needed to | 
|  | provide DES based Kerberos authentication. | 
|  | */ | 
|  |  | 
|  |  | 
|  | #ifdef LIBDES | 
|  | /* The following is specific to my installation, but since I'm the only one */ | 
|  | /* that uses this file ...                                                  */ | 
|  | #include "ckcdeb.h" | 
|  | #include "ckuath.h" | 
|  | #define CK_DES_C | 
|  | #include "ckuat2.h" | 
|  | #ifdef NT | 
|  | #ifdef _M_ALPHA | 
|  | #include <c:\srp\des\des.h> | 
|  | #else | 
|  | #include <c:\src\srp\des\des.h> | 
|  | #endif | 
|  | #else | 
|  | #include <c:\srp\des\des.h> | 
|  | #endif | 
|  |  | 
|  | int | 
|  | libdes_random_key(des_cblock B) | 
|  | { | 
|  | des_random_key(B); | 
|  | return(0); | 
|  | } | 
|  |  | 
|  | void | 
|  | libdes_random_seed(des_cblock B) | 
|  | { | 
|  | des_random_seed(B); | 
|  | } | 
|  |  | 
|  | void | 
|  | libdes_key_sched(des_cblock * B, des_key_schedule S) | 
|  | { | 
|  | des_key_sched(B,S); | 
|  | } | 
|  |  | 
|  | void | 
|  | libdes_ecb_encrypt(des_cblock * B1, des_cblock * B2, des_key_schedule S, int n) | 
|  | { | 
|  | des_ecb_encrypt(B1,B2,S,n); | 
|  | } | 
|  |  | 
|  | int | 
|  | libdes_string_to_key(char * s, des_cblock * B) | 
|  | { | 
|  | des_string_to_key(s,B); | 
|  | return(0); | 
|  | } | 
|  |  | 
|  | void | 
|  | libdes_fixup_key_parity(des_cblock * B) | 
|  | { | 
|  | des_set_odd_parity(B); | 
|  | } | 
|  |  | 
|  | void | 
|  | libdes_pcbc_encrypt(des_cblock *input, des_cblock *output, long length, | 
|  | des_key_schedule schedule, des_cblock *ivec, int enc) | 
|  | { | 
|  | des_pcbc_encrypt(input,output,length,schedule,ivec,enc); | 
|  | } | 
|  |  | 
|  | void | 
|  | libdes_dll_init(struct _crypt_dll_init * init) | 
|  | { | 
|  | init->p_install_funcs("libdes_random_key",libdes_random_key); | 
|  | init->p_install_funcs("libdes_random_seed",libdes_random_seed); | 
|  | init->p_install_funcs("libdes_key_sched",libdes_key_sched); | 
|  | init->p_install_funcs("libdes_ecb_encrypt",libdes_ecb_encrypt); | 
|  | init->p_install_funcs("libdes_string_to_key",libdes_string_to_key); | 
|  | init->p_install_funcs("libdes_fixup_key_parity",libdes_fixup_key_parity); | 
|  | init->p_install_funcs("libdes_pcbc_encrypt",libdes_pcbc_encrypt); | 
|  |  | 
|  | } | 
|  | #endif /* LIBDES */ |