/usr/include/openssl
NameSizeModeActions
aes.h55070644editdlrm
asn1.h524220644editdlrm
asn1t.h300920644editdlrm
asn1_mac.h191430644editdlrm
bio.h329870644editdlrm
blowfish.h51430644editdlrm
bn.h336600644editdlrm
buffer.h46460644editdlrm
camellia.h49560644editdlrm
cast.h44920644editdlrm
cmac.h32440644editdlrm
cms.h199270644editdlrm
comp.h19780644editdlrm
conf.h98480644editdlrm
conf_api.h40800644editdlrm
crypto.h245470644editdlrm
des.h107360644editdlrm
des_old.h182380644editdlrm
dh.h101980644editdlrm
dsa.h130470644editdlrm
dso.h180950644editdlrm
dtls1.h80660644editdlrm
ebcdic.h5400644editdlrm
ec.h427860644editdlrm
ecdh.h47200644editdlrm
ecdsa.h105100644editdlrm
engine.h405850644editdlrm
err.h158620644editdlrm
evp.h527140644editdlrm
e_os2.h104440644editdlrm
fips.h106770644editdlrm
fips_rand.h55120644editdlrm
hmac.h44760644editdlrm
idea.h44690644editdlrm
krb5_asn.h76420644editdlrm
kssl.h60640644editdlrm
lhash.h90920644editdlrm
md2.h39580644editdlrm
md4.h46920644editdlrm
md5.h46920644editdlrm
modes.h56190644editdlrm
objects.h366410644editdlrm
obj_mac.h1362140644editdlrm
ocsp.h240410644editdlrm
opensslconf-x86_64.h73470644editdlrm
opensslconf.h12060644editdlrm
opensslv.h37530644editdlrm
ossl_typ.h73970644editdlrm
pem.h219920644editdlrm
pem2.h28630644editdlrm
pkcs7.h180640644editdlrm
pkcs12.h126540644editdlrm
pqueue.h35800644editdlrm
rand.h62760644editdlrm
rc2.h44050644editdlrm
rc4.h37970644editdlrm
ripemd.h43270644editdlrm
rsa.h233520644editdlrm
safestack.h1841550644editdlrm
seed.h57140644editdlrm
sha.h73600644editdlrm
srtp.h66440644editdlrm
ssl.h1022510644editdlrm
ssl2.h107550644editdlrm
ssl3.h269330644editdlrm
ssl23.h37440644editdlrm
stack.h44120644editdlrm
symhacks.h239410644editdlrm
tls1.h351580644editdlrm
ts.h310060644editdlrm
txt_db.h44810644editdlrm
ui.h166560644editdlrm
ui_compat.h34390644editdlrm
whrlpool.h10190644editdlrm
x509.h451030644editdlrm
x509v3.h327150644editdlrm
x509_vfy.h224800644editdlrm
Edit: /usr/include/openssl/des.h (10736B)
/* crypto/des/des.h */ /* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com) * All rights reserved. * * This package is an SSL implementation written * by Eric Young (eay@cryptsoft.com). * The implementation was written so as to conform with Netscapes SSL. * * This library is free for commercial and non-commercial use as long as * the following conditions are aheared to. The following conditions * apply to all code found in this distribution, be it the RC4, RSA, * lhash, DES, etc., code; not just the SSL code. The SSL documentation * included with this distribution is covered by the same copyright terms * except that the holder is Tim Hudson (tjh@cryptsoft.com). * * Copyright remains Eric Young's, and as such any Copyright notices in * the code are not to be removed. * If this package is used in a product, Eric Young should be given attribution * as the author of the parts of the library used. * This can be in the form of a textual message at program startup or * in documentation (online or textual) provided with the package. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * 3. All advertising materials mentioning features or use of this software * must display the following acknowledgement: * "This product includes cryptographic software written by * Eric Young (eay@cryptsoft.com)" * The word 'cryptographic' can be left out if the rouines from the library * being used are not cryptographic related :-). * 4. If you include any Windows specific code (or a derivative thereof) from * the apps directory (application code) you must include an acknowledgement: * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" * * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * * The licence and distribution terms for any publically available version or * derivative of this code cannot be changed. i.e. this code cannot simply be * copied and put under another distribution licence * [including the GNU Public Licence.] */ #ifndef HEADER_NEW_DES_H #define HEADER_NEW_DES_H #include /* OPENSSL_EXTERN, OPENSSL_NO_DES, DES_LONG (via openssl/opensslconf.h */ #ifdef OPENSSL_NO_DES #error DES is disabled. #endif #ifdef OPENSSL_BUILD_SHLIBCRYPTO # undef OPENSSL_EXTERN # define OPENSSL_EXTERN OPENSSL_EXPORT #endif #ifdef __cplusplus extern "C" { #endif typedef unsigned char DES_cblock[8]; typedef /* const */ unsigned char const_DES_cblock[8]; /* With "const", gcc 2.8.1 on Solaris thinks that DES_cblock * * and const_DES_cblock * are incompatible pointer types. */ typedef struct DES_ks { union { DES_cblock cblock; /* make sure things are correct size on machines with * 8 byte longs */ DES_LONG deslong[2]; } ks[16]; } DES_key_schedule; #ifndef OPENSSL_DISABLE_OLD_DES_SUPPORT # ifndef OPENSSL_ENABLE_OLD_DES_SUPPORT # define OPENSSL_ENABLE_OLD_DES_SUPPORT # endif #endif #ifdef OPENSSL_ENABLE_OLD_DES_SUPPORT # include #endif #define DES_KEY_SZ (sizeof(DES_cblock)) #define DES_SCHEDULE_SZ (sizeof(DES_key_schedule)) #define DES_ENCRYPT 1 #define DES_DECRYPT 0 #define DES_CBC_MODE 0 #define DES_PCBC_MODE 1 #define DES_ecb2_encrypt(i,o,k1,k2,e) \ DES_ecb3_encrypt((i),(o),(k1),(k2),(k1),(e)) #define DES_ede2_cbc_encrypt(i,o,l,k1,k2,iv,e) \ DES_ede3_cbc_encrypt((i),(o),(l),(k1),(k2),(k1),(iv),(e)) #define DES_ede2_cfb64_encrypt(i,o,l,k1,k2,iv,n,e) \ DES_ede3_cfb64_encrypt((i),(o),(l),(k1),(k2),(k1),(iv),(n),(e)) #define DES_ede2_ofb64_encrypt(i,o,l,k1,k2,iv,n) \ DES_ede3_ofb64_encrypt((i),(o),(l),(k1),(k2),(k1),(iv),(n)) OPENSSL_DECLARE_GLOBAL(int,DES_check_key); /* defaults to false */ #define DES_check_key OPENSSL_GLOBAL_REF(DES_check_key) OPENSSL_DECLARE_GLOBAL(int,DES_rw_mode); /* defaults to DES_PCBC_MODE */ #define DES_rw_mode OPENSSL_GLOBAL_REF(DES_rw_mode) const char *DES_options(void); void DES_ecb3_encrypt(const_DES_cblock *input, DES_cblock *output, DES_key_schedule *ks1,DES_key_schedule *ks2, DES_key_schedule *ks3, int enc); DES_LONG DES_cbc_cksum(const unsigned char *input,DES_cblock *output, long length,DES_key_schedule *schedule, const_DES_cblock *ivec); /* DES_cbc_encrypt does not update the IV! Use DES_ncbc_encrypt instead. */ void DES_cbc_encrypt(const unsigned char *input,unsigned char *output, long length,DES_key_schedule *schedule,DES_cblock *ivec, int enc); void DES_ncbc_encrypt(const unsigned char *input,unsigned char *output, long length,DES_key_schedule *schedule,DES_cblock *ivec, int enc); void DES_xcbc_encrypt(const unsigned char *input,unsigned char *output, long length,DES_key_schedule *schedule,DES_cblock *ivec, const_DES_cblock *inw,const_DES_cblock *outw,int enc); void DES_cfb_encrypt(const unsigned char *in,unsigned char *out,int numbits, long length,DES_key_schedule *schedule,DES_cblock *ivec, int enc); void DES_ecb_encrypt(const_DES_cblock *input,DES_cblock *output, DES_key_schedule *ks,int enc); /* This is the DES encryption function that gets called by just about every other DES routine in the library. You should not use this function except to implement 'modes' of DES. I say this because the functions that call this routine do the conversion from 'char *' to long, and this needs to be done to make sure 'non-aligned' memory access do not occur. The characters are loaded 'little endian'. Data is a pointer to 2 unsigned long's and ks is the DES_key_schedule to use. enc, is non zero specifies encryption, zero if decryption. */ void DES_encrypt1(DES_LONG *data,DES_key_schedule *ks, int enc); /* This functions is the same as DES_encrypt1() except that the DES initial permutation (IP) and final permutation (FP) have been left out. As for DES_encrypt1(), you should not use this function. It is used by the routines in the library that implement triple DES. IP() DES_encrypt2() DES_encrypt2() DES_encrypt2() FP() is the same as DES_encrypt1() DES_encrypt1() DES_encrypt1() except faster :-). */ void DES_encrypt2(DES_LONG *data,DES_key_schedule *ks, int enc); void DES_encrypt3(DES_LONG *data, DES_key_schedule *ks1, DES_key_schedule *ks2, DES_key_schedule *ks3); void DES_decrypt3(DES_LONG *data, DES_key_schedule *ks1, DES_key_schedule *ks2, DES_key_schedule *ks3); void DES_ede3_cbc_encrypt(const unsigned char *input,unsigned char *output, long length, DES_key_schedule *ks1,DES_key_schedule *ks2, DES_key_schedule *ks3,DES_cblock *ivec,int enc); void DES_ede3_cbcm_encrypt(const unsigned char *in,unsigned char *out, long length, DES_key_schedule *ks1,DES_key_schedule *ks2, DES_key_schedule *ks3, DES_cblock *ivec1,DES_cblock *ivec2, int enc); void DES_ede3_cfb64_encrypt(const unsigned char *in,unsigned char *out, long length,DES_key_schedule *ks1, DES_key_schedule *ks2,DES_key_schedule *ks3, DES_cblock *ivec,int *num,int enc); void DES_ede3_cfb_encrypt(const unsigned char *in,unsigned char *out, int numbits,long length,DES_key_schedule *ks1, DES_key_schedule *ks2,DES_key_schedule *ks3, DES_cblock *ivec,int enc); void DES_ede3_ofb64_encrypt(const unsigned char *in,unsigned char *out, long length,DES_key_schedule *ks1, DES_key_schedule *ks2,DES_key_schedule *ks3, DES_cblock *ivec,int *num); #if 0 void DES_xwhite_in2out(const_DES_cblock *DES_key,const_DES_cblock *in_white, DES_cblock *out_white); #endif int DES_enc_read(int fd,void *buf,int len,DES_key_schedule *sched, DES_cblock *iv); int DES_enc_write(int fd,const void *buf,int len,DES_key_schedule *sched, DES_cblock *iv); char *DES_fcrypt(const char *buf,const char *salt, char *ret); char *DES_crypt(const char *buf,const char *salt); void DES_ofb_encrypt(const unsigned char *in,unsigned char *out,int numbits, long length,DES_key_schedule *schedule,DES_cblock *ivec); void DES_pcbc_encrypt(const unsigned char *input,unsigned char *output, long length,DES_key_schedule *schedule,DES_cblock *ivec, int enc); DES_LONG DES_quad_cksum(const unsigned char *input,DES_cblock output[], long length,int out_count,DES_cblock *seed); int DES_random_key(DES_cblock *ret); void DES_set_odd_parity(DES_cblock *key); int DES_check_key_parity(const_DES_cblock *key); int DES_is_weak_key(const_DES_cblock *key); /* DES_set_key (= set_key = DES_key_sched = key_sched) calls * DES_set_key_checked if global variable DES_check_key is set, * DES_set_key_unchecked otherwise. */ int DES_set_key(const_DES_cblock *key,DES_key_schedule *schedule); int DES_key_sched(const_DES_cblock *key,DES_key_schedule *schedule); int DES_set_key_checked(const_DES_cblock *key,DES_key_schedule *schedule); void DES_set_key_unchecked(const_DES_cblock *key,DES_key_schedule *schedule); void DES_string_to_key(const char *str,DES_cblock *key); void DES_string_to_2keys(const char *str,DES_cblock *key1,DES_cblock *key2); void DES_cfb64_encrypt(const unsigned char *in,unsigned char *out,long length, DES_key_schedule *schedule,DES_cblock *ivec,int *num, int enc); void DES_ofb64_encrypt(const unsigned char *in,unsigned char *out,long length, DES_key_schedule *schedule,DES_cblock *ivec,int *num); int DES_read_password(DES_cblock *key, const char *prompt, int verify); int DES_read_2passwords(DES_cblock *key1, DES_cblock *key2, const char *prompt, int verify); #define DES_fixup_key_parity DES_set_odd_parity #ifdef __cplusplus } #endif #endif