diff options
Diffstat (limited to '')
| -rw-r--r-- | src/lib/libcrypto/des/DES.xs | 268 |
1 files changed, 0 insertions, 268 deletions
diff --git a/src/lib/libcrypto/des/DES.xs b/src/lib/libcrypto/des/DES.xs deleted file mode 100644 index b8050b9edf..0000000000 --- a/src/lib/libcrypto/des/DES.xs +++ /dev/null | |||
| @@ -1,268 +0,0 @@ | |||
| 1 | #include "EXTERN.h" | ||
| 2 | #include "perl.h" | ||
| 3 | #include "XSUB.h" | ||
| 4 | #include "des.h" | ||
| 5 | |||
| 6 | #define deschar char | ||
| 7 | static STRLEN len; | ||
| 8 | |||
| 9 | static int | ||
| 10 | not_here(s) | ||
| 11 | char *s; | ||
| 12 | { | ||
| 13 | croak("%s not implemented on this architecture", s); | ||
| 14 | return -1; | ||
| 15 | } | ||
| 16 | |||
| 17 | MODULE = DES PACKAGE = DES PREFIX = des_ | ||
| 18 | |||
| 19 | char * | ||
| 20 | des_crypt(buf,salt) | ||
| 21 | char * buf | ||
| 22 | char * salt | ||
| 23 | |||
| 24 | void | ||
| 25 | des_set_odd_parity(key) | ||
| 26 | des_cblock * key | ||
| 27 | PPCODE: | ||
| 28 | { | ||
| 29 | SV *s; | ||
| 30 | |||
| 31 | s=sv_newmortal(); | ||
| 32 | sv_setpvn(s,(char *)key,8); | ||
| 33 | des_set_odd_parity((des_cblock *)SvPV(s,na)); | ||
| 34 | PUSHs(s); | ||
| 35 | } | ||
| 36 | |||
| 37 | int | ||
| 38 | des_is_weak_key(key) | ||
| 39 | des_cblock * key | ||
| 40 | |||
| 41 | des_key_schedule | ||
| 42 | des_set_key(key) | ||
| 43 | des_cblock * key | ||
| 44 | CODE: | ||
| 45 | des_set_key(key,RETVAL); | ||
| 46 | OUTPUT: | ||
| 47 | RETVAL | ||
| 48 | |||
| 49 | des_cblock | ||
| 50 | des_ecb_encrypt(input,ks,encrypt) | ||
| 51 | des_cblock * input | ||
| 52 | des_key_schedule * ks | ||
| 53 | int encrypt | ||
| 54 | CODE: | ||
| 55 | des_ecb_encrypt(input,&RETVAL,*ks,encrypt); | ||
| 56 | OUTPUT: | ||
| 57 | RETVAL | ||
| 58 | |||
| 59 | void | ||
| 60 | des_cbc_encrypt(input,ks,ivec,encrypt) | ||
| 61 | char * input | ||
| 62 | des_key_schedule * ks | ||
| 63 | des_cblock * ivec | ||
| 64 | int encrypt | ||
| 65 | PPCODE: | ||
| 66 | { | ||
| 67 | SV *s; | ||
| 68 | STRLEN len,l; | ||
| 69 | char *c; | ||
| 70 | |||
| 71 | l=SvCUR(ST(0)); | ||
| 72 | len=((((unsigned long)l)+7)/8)*8; | ||
| 73 | s=sv_newmortal(); | ||
| 74 | sv_setpvn(s,"",0); | ||
| 75 | SvGROW(s,len); | ||
| 76 | SvCUR_set(s,len); | ||
| 77 | c=(char *)SvPV(s,na); | ||
| 78 | des_cbc_encrypt((des_cblock *)input,(des_cblock *)c, | ||
| 79 | l,*ks,ivec,encrypt); | ||
| 80 | sv_setpvn(ST(2),(char *)c[len-8],8); | ||
| 81 | PUSHs(s); | ||
| 82 | } | ||
| 83 | |||
| 84 | void | ||
| 85 | des_cbc3_encrypt(input,ks1,ks2,ivec1,ivec2,encrypt) | ||
| 86 | char * input | ||
| 87 | des_key_schedule * ks1 | ||
| 88 | des_key_schedule * ks2 | ||
| 89 | des_cblock * ivec1 | ||
| 90 | des_cblock * ivec2 | ||
| 91 | int encrypt | ||
| 92 | PPCODE: | ||
| 93 | { | ||
| 94 | SV *s; | ||
| 95 | STRLEN len,l; | ||
| 96 | |||
| 97 | l=SvCUR(ST(0)); | ||
| 98 | len=((((unsigned long)l)+7)/8)*8; | ||
| 99 | s=sv_newmortal(); | ||
| 100 | sv_setpvn(s,"",0); | ||
| 101 | SvGROW(s,len); | ||
| 102 | SvCUR_set(s,len); | ||
| 103 | des_3cbc_encrypt((des_cblock *)input,(des_cblock *)SvPV(s,na), | ||
| 104 | l,*ks1,*ks2,ivec1,ivec2,encrypt); | ||
| 105 | sv_setpvn(ST(3),(char *)ivec1,8); | ||
| 106 | sv_setpvn(ST(4),(char *)ivec2,8); | ||
| 107 | PUSHs(s); | ||
| 108 | } | ||
| 109 | |||
| 110 | void | ||
| 111 | des_cbc_cksum(input,ks,ivec) | ||
| 112 | char * input | ||
| 113 | des_key_schedule * ks | ||
| 114 | des_cblock * ivec | ||
| 115 | PPCODE: | ||
| 116 | { | ||
| 117 | SV *s1,*s2; | ||
| 118 | STRLEN len,l; | ||
| 119 | des_cblock c; | ||
| 120 | unsigned long i1,i2; | ||
| 121 | |||
| 122 | s1=sv_newmortal(); | ||
| 123 | s2=sv_newmortal(); | ||
| 124 | l=SvCUR(ST(0)); | ||
| 125 | des_cbc_cksum((des_cblock *)input,(des_cblock *)c, | ||
| 126 | l,*ks,ivec); | ||
| 127 | i1=c[4]|(c[5]<<8)|(c[6]<<16)|(c[7]<<24); | ||
| 128 | i2=c[0]|(c[1]<<8)|(c[2]<<16)|(c[3]<<24); | ||
| 129 | sv_setiv(s1,i1); | ||
| 130 | sv_setiv(s2,i2); | ||
| 131 | sv_setpvn(ST(2),(char *)c,8); | ||
| 132 | PUSHs(s1); | ||
| 133 | PUSHs(s2); | ||
| 134 | } | ||
| 135 | |||
| 136 | void | ||
| 137 | des_cfb_encrypt(input,numbits,ks,ivec,encrypt) | ||
| 138 | char * input | ||
| 139 | int numbits | ||
| 140 | des_key_schedule * ks | ||
| 141 | des_cblock * ivec | ||
| 142 | int encrypt | ||
| 143 | PPCODE: | ||
| 144 | { | ||
| 145 | SV *s; | ||
| 146 | STRLEN len; | ||
| 147 | char *c; | ||
| 148 | |||
| 149 | len=SvCUR(ST(0)); | ||
| 150 | s=sv_newmortal(); | ||
| 151 | sv_setpvn(s,"",0); | ||
| 152 | SvGROW(s,len); | ||
| 153 | SvCUR_set(s,len); | ||
| 154 | c=(char *)SvPV(s,na); | ||
| 155 | des_cfb_encrypt((unsigned char *)input,(unsigned char *)c, | ||
| 156 | (int)numbits,(long)len,*ks,ivec,encrypt); | ||
| 157 | sv_setpvn(ST(3),(char *)ivec,8); | ||
| 158 | PUSHs(s); | ||
| 159 | } | ||
| 160 | |||
| 161 | des_cblock * | ||
| 162 | des_ecb3_encrypt(input,ks1,ks2,encrypt) | ||
| 163 | des_cblock * input | ||
| 164 | des_key_schedule * ks1 | ||
| 165 | des_key_schedule * ks2 | ||
| 166 | int encrypt | ||
| 167 | CODE: | ||
| 168 | { | ||
| 169 | des_cblock c; | ||
| 170 | |||
| 171 | des_ecb3_encrypt((des_cblock *)input,(des_cblock *)&c, | ||
| 172 | *ks1,*ks2,encrypt); | ||
| 173 | RETVAL= &c; | ||
| 174 | } | ||
| 175 | OUTPUT: | ||
| 176 | RETVAL | ||
| 177 | |||
| 178 | void | ||
| 179 | des_ofb_encrypt(input,numbits,ks,ivec) | ||
| 180 | unsigned char * input | ||
| 181 | int numbits | ||
| 182 | des_key_schedule * ks | ||
| 183 | des_cblock * ivec | ||
| 184 | PPCODE: | ||
| 185 | { | ||
| 186 | SV *s; | ||
| 187 | STRLEN len,l; | ||
| 188 | unsigned char *c; | ||
| 189 | |||
| 190 | len=SvCUR(ST(0)); | ||
| 191 | s=sv_newmortal(); | ||
| 192 | sv_setpvn(s,"",0); | ||
| 193 | SvGROW(s,len); | ||
| 194 | SvCUR_set(s,len); | ||
| 195 | c=(unsigned char *)SvPV(s,na); | ||
| 196 | des_ofb_encrypt((unsigned char *)input,(unsigned char *)c, | ||
| 197 | numbits,len,*ks,ivec); | ||
| 198 | sv_setpvn(ST(3),(char *)ivec,8); | ||
| 199 | PUSHs(s); | ||
| 200 | } | ||
| 201 | |||
| 202 | void | ||
| 203 | des_pcbc_encrypt(input,ks,ivec,encrypt) | ||
| 204 | char * input | ||
| 205 | des_key_schedule * ks | ||
| 206 | des_cblock * ivec | ||
| 207 | int encrypt | ||
| 208 | PPCODE: | ||
| 209 | { | ||
| 210 | SV *s; | ||
| 211 | STRLEN len,l; | ||
| 212 | char *c; | ||
| 213 | |||
| 214 | l=SvCUR(ST(0)); | ||
| 215 | len=((((unsigned long)l)+7)/8)*8; | ||
| 216 | s=sv_newmortal(); | ||
| 217 | sv_setpvn(s,"",0); | ||
| 218 | SvGROW(s,len); | ||
| 219 | SvCUR_set(s,len); | ||
| 220 | c=(char *)SvPV(s,na); | ||
| 221 | des_pcbc_encrypt((des_cblock *)input,(des_cblock *)c, | ||
| 222 | l,*ks,ivec,encrypt); | ||
| 223 | sv_setpvn(ST(2),(char *)c[len-8],8); | ||
| 224 | PUSHs(s); | ||
| 225 | } | ||
| 226 | |||
| 227 | des_cblock * | ||
| 228 | des_random_key() | ||
| 229 | CODE: | ||
| 230 | { | ||
| 231 | des_cblock c; | ||
| 232 | |||
| 233 | des_random_key(c); | ||
| 234 | RETVAL=&c; | ||
| 235 | } | ||
| 236 | OUTPUT: | ||
| 237 | RETVAL | ||
| 238 | |||
| 239 | des_cblock * | ||
| 240 | des_string_to_key(str) | ||
| 241 | char * str | ||
| 242 | CODE: | ||
| 243 | { | ||
| 244 | des_cblock c; | ||
| 245 | |||
| 246 | des_string_to_key(str,&c); | ||
| 247 | RETVAL=&c; | ||
| 248 | } | ||
| 249 | OUTPUT: | ||
| 250 | RETVAL | ||
| 251 | |||
| 252 | void | ||
| 253 | des_string_to_2keys(str) | ||
| 254 | char * str | ||
| 255 | PPCODE: | ||
| 256 | { | ||
| 257 | des_cblock c1,c2; | ||
| 258 | SV *s1,*s2; | ||
| 259 | |||
| 260 | des_string_to_2keys(str,&c1,&c2); | ||
| 261 | EXTEND(sp,2); | ||
| 262 | s1=sv_newmortal(); | ||
| 263 | sv_setpvn(s1,(char *)c1,8); | ||
| 264 | s2=sv_newmortal(); | ||
| 265 | sv_setpvn(s2,(char *)c2,8); | ||
| 266 | PUSHs(s1); | ||
| 267 | PUSHs(s2); | ||
| 268 | } | ||
