diff options
68 files changed, 0 insertions, 15664 deletions
diff --git a/apps/bss_file.c b/apps/bss_file.c deleted file mode 100644 index 9aa71f9..0000000 --- a/apps/bss_file.c +++ /dev/null @@ -1,324 +0,0 @@ -/* crypto/bio/bss_file.c */ -/* 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.] - */ - -#define APPS_WIN16 -#include <stdio.h> -#include <errno.h> -#include "cryptlib.h" -#include "bio.h" -#include "err.h" - -#ifndef NOPROTO -static int MS_CALLBACK file_write(BIO *h,char *buf,int num); -static int MS_CALLBACK file_read(BIO *h,char *buf,int size); -static int MS_CALLBACK file_puts(BIO *h,char *str); -static int MS_CALLBACK file_gets(BIO *h,char *str,int size); -static long MS_CALLBACK file_ctrl(BIO *h,int cmd,long arg1,char *arg2); -static int MS_CALLBACK file_new(BIO *h); -static int MS_CALLBACK file_free(BIO *data); -#else -static int MS_CALLBACK file_write(); -static int MS_CALLBACK file_read(); -static int MS_CALLBACK file_puts(); -static int MS_CALLBACK file_gets(); -static long MS_CALLBACK file_ctrl(); -static int MS_CALLBACK file_new(); -static int MS_CALLBACK file_free(); -#endif - -static BIO_METHOD methods_filep= - { - BIO_TYPE_FILE,"FILE pointer", - file_write, - file_read, - file_puts, - file_gets, - file_ctrl, - file_new, - file_free, - }; - -BIO *BIO_new_file(filename,mode) -char *filename; -char *mode; - { - BIO *ret; - FILE *file; - - if ((file=fopen(filename,mode)) == NULL) - { - SYSerr(SYS_F_FOPEN,errno); - BIOerr(BIO_F_BIO_NEW_FILE,ERR_R_SYS_LIB); - return(NULL); - } - if ((ret=BIO_new_fp(file,BIO_CLOSE)) == NULL) - { - fclose(file); - return(NULL); - } - return(ret); - } - -BIO *BIO_new_fp(stream,close_flag) -FILE *stream; -int close_flag; - { - BIO *ret; - - if ((ret=BIO_new(BIO_s_file())) == NULL) - return(NULL); - BIO_set_fp(ret,stream,close_flag); - return(ret); - } - -#if !defined(WIN16) || defined(APPS_WIN16) - -BIO_METHOD *BIO_s_file() - { - return(&methods_filep); - } - -#else - -BIO_METHOD *BIO_s_file_internal_w16() - { - return(&methods_filep); - } - -#endif - -static int MS_CALLBACK file_new(bi) -BIO *bi; - { - bi->init=0; - bi->num=0; - bi->ptr=NULL; - return(1); - } - -static int MS_CALLBACK file_free(a) -BIO *a; - { - if (a == NULL) return(0); - if (a->shutdown) - { - if ((a->init) && (a->ptr != NULL)) - { - fclose((FILE *)a->ptr); - a->ptr=NULL; - } - a->init=0; - } - return(1); - } - -static int MS_CALLBACK file_read(b,out,outl) -BIO *b; -char *out; -int outl; - { - int ret=0; - - if (b->init && (out != NULL)) - { - ret=fread(out,1,(int)outl,(FILE *)b->ptr); - } - return(ret); - } - -static int MS_CALLBACK file_write(b,in,inl) -BIO *b; -char *in; -int inl; - { - int ret=0; - - if (b->init && (in != NULL)) - { - if (fwrite(in,(int)inl,1,(FILE *)b->ptr)) - ret=inl; - /* ret=fwrite(in,1,(int)inl,(FILE *)b->ptr); */ - /* acording to Tim Hudson <tjh@cryptsoft.com>, the commented - * out version above can cause 'inl' write calls under - * some stupid stdio implementations (VMS) */ - } - return(ret); - } - -static long MS_CALLBACK file_ctrl(b,cmd,num,ptr) -BIO *b; -int cmd; -long num; -char *ptr; - { - long ret=1; - FILE *fp=(FILE *)b->ptr; - FILE **fpp; - char p[4]; - - switch (cmd) - { - case BIO_CTRL_RESET: - ret=(long)fseek(fp,num,0); - break; - case BIO_CTRL_EOF: - ret=(long)feof(fp); - break; - case BIO_CTRL_INFO: - ret=ftell(fp); - break; - case BIO_C_SET_FILE_PTR: - file_free(b); - b->shutdown=(int)num; - b->ptr=(char *)ptr; - b->init=1; - break; - case BIO_C_SET_FILENAME: - file_free(b); - b->shutdown=(int)num&BIO_CLOSE; - if (num & BIO_FP_APPEND) - { - if (num & BIO_FP_READ) - strcpy(p,"a+"); - else strcpy(p,"a"); - } - else if ((num & BIO_FP_READ) && (num & BIO_FP_WRITE)) - strcpy(p,"r+"); - else if (num & BIO_FP_WRITE) - strcpy(p,"w"); - else if (num & BIO_FP_READ) - strcpy(p,"r"); - else - { - BIOerr(BIO_F_FILE_CTRL,BIO_R_BAD_FOPEN_MODE); - ret=0; - break; - } -#if defined(MSDOS) || defined(WINDOWS) - if (!(num & BIO_FP_TEXT)) - strcat(p,"b"); - else - strcat(p,"t"); -#endif - fp=fopen(ptr,p); - if (fp == NULL) - { - SYSerr(SYS_F_FOPEN,errno); - BIOerr(BIO_F_FILE_CTRL,ERR_R_SYS_LIB); - ret=0; - break; - } - b->ptr=(char *)fp; - b->init=1; - break; - case BIO_C_GET_FILE_PTR: - /* the ptr parameter is actually a FILE ** in this case. */ - if (ptr != NULL) - { - fpp=(FILE **)ptr; - *fpp=(FILE *)b->ptr; - } - break; - case BIO_CTRL_GET_CLOSE: - ret=(long)b->shutdown; - break; - case BIO_CTRL_SET_CLOSE: - b->shutdown=(int)num; - break; - case BIO_CTRL_FLUSH: - fflush((FILE *)b->ptr); - break; - case BIO_CTRL_DUP: - ret=1; - break; - - case BIO_CTRL_PENDING: - case BIO_CTRL_PUSH: - case BIO_CTRL_POP: - default: - ret=0; - break; - } - return(ret); - } - -static int MS_CALLBACK file_gets(bp,buf,size) -BIO *bp; -char *buf; -int size; - { - int ret=0; - - buf[0]='\0'; - fgets(buf,size,(FILE *)bp->ptr); - if (buf[0] != '\0') - ret=strlen(buf); - return(ret); - } - -static int MS_CALLBACK file_puts(bp,str) -BIO *bp; -char *str; - { - int n,ret; - - n=strlen(str); - ret=file_write(bp,str,n); - return(ret); - } - diff --git a/apps/c512-key.pem b/apps/c512-key.pem deleted file mode 100644 index a1ea82e..0000000 --- a/apps/c512-key.pem +++ /dev/null @@ -1,9 +0,0 @@ ------BEGIN RSA PRIVATE KEY----- -MIIBOwIBAAJBALtv55QyzG6i2PlwZ1pah7++Gv8L5j6Hnyr/uTZE1NLG0ABDDexm -q/R4KedLjFEIYjocDui+IXs62NNtXrT8odkCAwEAAQJAbwXq0vJ/+uyEvsNgxLko -/V86mGXQ/KrSkeKlL0r4ENxjcyeMAGoKu6J9yMY7+X9+Zm4nxShNfTsf/+Freoe1 -HQIhAPOSm5Q1YI+KIsII2GeVJx1U69+wnd71OasIPakS1L1XAiEAxQAW+J3/JWE0 -ftEYakbhUOKL8tD1OaFZS71/5GdG7E8CIQCefUMmySSvwd6kC0VlATSWbW+d+jp/ -nWmM1KvqnAo5uQIhALqEADu5U1Wvt8UN8UDGBRPQulHWNycuNV45d3nnskWPAiAw -ueTyr6WsZ5+SD8g/Hy3xuvF3nPmJRH+rwvVihlcFOg== ------END RSA PRIVATE KEY----- diff --git a/apps/c512-req.pem b/apps/c512-req.pem deleted file mode 100644 index e8d0fea..0000000 --- a/apps/c512-req.pem +++ /dev/null @@ -1,8 +0,0 @@ ------BEGIN CERTIFICATE REQUEST----- -MIIBGzCBxgIBADBjMQswCQYDVQQGEwJBVTETMBEGA1UECBMKUXVlZW5zbGFuZDEa -MBgGA1UEChMRQ3J5cHRTb2Z0IFB0eSBMdGQxIzAhBgNVBAMTGkNsaWVudCB0ZXN0 -IGNlcnQgKDUxMiBiaXQpMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBALtv55QyzG6i -2PlwZ1pah7++Gv8L5j6Hnyr/uTZE1NLG0ABDDexmq/R4KedLjFEIYjocDui+IXs6 -2NNtXrT8odkCAwEAATANBgkqhkiG9w0BAQQFAANBAC5JBTeji7RosqMaUIDzIW13 -oO6+kPhx9fXSpMFHIsY3aH92Milkov/2A4SuZTcnv/P6+8klmS0EaiUKcRzak4E= ------END CERTIFICATE REQUEST----- diff --git a/apps/crl.out b/apps/crl.out deleted file mode 100644 index 85d10e9..0000000 --- a/apps/crl.out +++ /dev/null @@ -1,8 +0,0 @@ ------BEGIN X509 CRL----- -MIIBDjCBuTANBgkqhkiG9w0BAQQFADBgMQswCQYDVQQGEwJBVTEMMAoGA1UECBMD -UUxEMRkwFwYDVQQKExBNaW5jb20gUHR5LiBMdGQuMQswCQYDVQQLEwJDUzEbMBkG -A1UEAxMSU1NMZWF5IGRlbW8gc2VydmVyFw05NzA3MDkwMDAwMjJaFw05NzA4MDgw -MDAwMjJaMCgwEgIBARcNOTUxMDA5MjMzMjA1WjASAgEDFw05NTEyMDEwMTAwMDBa -MA0GCSqGSIb3DQEBBAUAA0EAcEBIWVZPXxSlLMPPLfBi4s0N3lzTgskZkgO6pjZi -oQRwh5vi5zFqDNQteGx7RTHpUYntgyoAZ87FZE0GOJgBaQ== ------END X509 CRL----- @@ -1,5 +0,0 @@ -586 -2481 - -1400 -2064 diff --git a/apps/stuff/pkcs12.der b/apps/stuff/pkcs12.der Binary files differdeleted file mode 100644 index 49c28b4..0000000 --- a/apps/stuff/pkcs12.der +++ /dev/null diff --git a/apps/stuff/pkcs7.ex1 b/apps/stuff/pkcs7.ex1 deleted file mode 100644 index 0eed41b..0000000 --- a/apps/stuff/pkcs7.ex1 +++ /dev/null @@ -1,25 +0,0 @@ ------BEGIN xxx----- -MIAGCSqGSIb3DQEHAqCAMIACAQExADCABgkqhkiG9w0BBwEAAKCAMIIB -rTCCAUkCAgC2MA0GCSqGSIb3DQEBAgUAME0xCzAJBgNVBAYTAlVTMSAw -HgYDVQQKExdSU0EgRGF0YSBTZWN1cml0eSwgSW5jLjEcMBoGA1UECxMT -UGVyc29uYSBDZXJ0aWZpY2F0ZTAeFw05NDA0MDkwMDUwMzdaFw05NDA4 -MDIxODM4NTdaMGcxCzAJBgNVBAYTAlVTMSAwHgYDVQQKExdSU0EgRGF0 -YSBTZWN1cml0eSwgSW5jLjEcMBoGA1UECxMTUGVyc29uYSBDZXJ0aWZp -Y2F0ZTEYMBYGA1UEAxMPU2V0ZWMgQXN0cm9ub215MFwwDQYJKoZIhvcN -AQEBBQADSwAwSAJBAMy8QcW7RMrB4sTdQ8Nmb2DFmJmkWn+el+NdeamI -DElX/qw9mIQu4xNj1FfepfJNxzPvA0OtMKhy6+bkrlyMEU8CAwEAATAN -BgkqhkiG9w0BAQIFAANPAAYn7jDgirhiIL4wnP8nGzUisGSpsFsF4/7z -2P2wqne6Qk8Cg/Dstu3RyaN78vAMGP8d82H5+Ndfhi2mRp4YHiGHz0Hl -K6VbPfnyvS2wdjCCAccwggFRAgUCQAAAFDANBgkqhkiG9w0BAQIFADBf -MQswCQYDVQQGEwJVUzEgMB4GA1UEChMXUlNBIERhdGEgU2VjdXJpdHks -IEluYy4xLjAsBgNVBAsTJUxvdyBBc3N1cmFuY2UgQ2VydGlmaWNhdGlv -biBBdXRob3JpdHkwHhcNOTQwMTA3MDAwMDAwWhcNOTYwMTA3MjM1OTU5 -WjBNMQswCQYDVQQGEwJVUzEgMB4GA1UEChMXUlNBIERhdGEgU2VjdXJp -dHksIEluYy4xHDAaBgNVBAsTE1BlcnNvbmEgQ2VydGlmaWNhdGUwaTAN -BgkqhkiG9w0BAQEFAANYADBVAk4GqghQDa9Xi/2zAdYEqJVIcYhlLN1F -pI9tXQ1m6zZ39PYXK8Uhoj0Es7kWRv8hC04vqkOKwndWbzVtvoHQOmP8 -nOkkuBi+AQvgFoRcgOUCAwEAATANBgkqhkiG9w0BAQIFAANhAD/5Uo7x -Ddp49oZm9GoNcPhZcW1e+nojLvHXWAU/CBkwfcR+FSf4hQ5eFu1AjYv6 -Wqf430Xe9Et5+jgnMTiq4LnwgTdA8xQX4elJz9QzQobkE3XVOjVAtCFc -miin80RB8AAAMYAAAAAAAAAAAA== ------END xxx----- diff --git a/apps/stuff/pkcs7.ex2 b/apps/stuff/pkcs7.ex2 deleted file mode 100644 index 2b21a67..0000000 --- a/apps/stuff/pkcs7.ex2 +++ /dev/null @@ -1,11 +0,0 @@ ------BEGIN PRIVACY-ENHANCED MESSAGE----- -MIAGCSqGSIb3DQEHBqCAMIACAQAwgAYJKoZIhvcNAQcBMBEGBSsOAwIHBAifqtdy -x6uIMYCCARgvFzJtOZBn773DtmXlx037ck3giqnV0WC0QAx5f+fesAiGaxMqWcir -r9XvT0nT0LgSQ/8tiLCDBEKdyCNgdcJAduy3D0r2sb5sNTT0TyL9uydG3w55vTnW -aPbCPCWLudArI1UHDZbnoJICrVehxG/sYX069M8v6VO8PsJS7//hh1yM+0nekzQ5 -l1p0j7uWKu4W0csrlGqhLvEJanj6dQAGSTNCOoH3jzEXGQXntgesk8poFPfHdtj0 -5RH4MuJRajDmoEjlrNcnGl/BdHAd2JaCo6uZWGcnGAgVJ/TVfSVSwN5nlCK87tXl -nL7DJwaPRYwxb3mnPKNq7ATiJPf5u162MbwxrddmiE7e3sST7naSN+GS0ateY5X7 -AAAAAAAAAAA= ------END PRIVACY-ENHANCED MESSAGE----- - diff --git a/apps/stuff/pkcs7.ex3 b/apps/stuff/pkcs7.ex3 deleted file mode 100644 index b2eabef..0000000 --- a/apps/stuff/pkcs7.ex3 +++ /dev/null @@ -1,12 +0,0 @@ ------BEGIN PRIVACY-ENHANCED MESSAGE----- -MIAGCSqGSIb3DQEHA6CAMIACAQAxgDCBqQIBADBTME0xCzAJBgNVBAYTAlVTMSAw -HgYDVQQKExdSU0EgRGF0YSBTZWN1cml0eSwgSW5jLjEcMBoGA1UECxMTUGVyc29u -YSBDZXJ0aWZpY2F0ZQICALYwDQYJKoZIhvcNAQEBBQAEQCU/R+YCJSUsV6XLilHG -cNVzwqKcWzmT/rZ+duOv8Ggb7oO/d8H3xUVGQ2LsX4kYGq2szwj8Q6eWhsmhf4oz -lvMAADCABgkqhkiG9w0BBwEwEQYFKw4DAgcECFif7BadXlw3oIAEgZBNcMexKe16 -+mNxx8YQPukBCL0bWqS86lvws/AgRkKPELmysBi5lco8MBCsWK/fCyrnxIRHs1oK -BXBVlsAhKkkusk1kCf/GbXSAphdSgG+d6LxrNZwHbBFOX6A2hYS63Iczd5bOVDDW -Op2gcgUtMJq6k2LFrs4L7HHqRPPlqNJ6j5mFP4xkzOCNIQynpD1rV6EECMIk/T7k -1JLSAAAAAAAAAAAAAA== ------END PRIVACY-ENHANCED MESSAGE----- - diff --git a/apps/stuff/pkcs7.pem b/apps/stuff/pkcs7.pem deleted file mode 100644 index eef654c..0000000 --- a/apps/stuff/pkcs7.pem +++ /dev/null @@ -1,46 +0,0 @@ ------BEGIN PKCS7----- -MIIIEgYJKoZIhvcNAQcCMIIIAwIBATEAMAsGCSqGSIb3DQEHAaCCBDUwggIhMIIB -jgIFAnIAAGcwDQYJKoZIhvcNAQECBQAwXzELMAkGA1UEBhMCVVMxIDAeBgNVBAoT -F1JTQSBEYXRhIFNlY3VyaXR5LCBJbmMuMS4wLAYDVQQLEyVTZWN1cmUgU2VydmVy -IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk1MDUxNzAwMDAwMFoXDTk1MTEx -NjIzNTk1OVowdzELMAkGA1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5h -MRIwEAYDVQQHEwlDaGFybG90dGUxIzAhBgNVBAoTGlZuZXQgSW50ZXJuZXQgQWNj -ZXNzLCBJbmMuMRYwFAYDVQQDFA13d3cqLnZuZXQubmV0MHwwDQYJKoZIhvcNAQEB -BQADawAwaAJhAOngW+io4W1lAp1b2k4+KqICaLHatp6AWkPLpa3Li2mwmggSGeRD -AmTI4FQB0EFrDMfKLOteHgGoDJ0vifmV5cKvevRt5Gn+xPn54Halu7i145iUldyv -oViUNpWmLJhKTQIDAQABMA0GCSqGSIb3DQEBAgUAA34AQkyfJje6H8fxtN68TvXV -RibnPpQol2jMbh0VnK9cP9ePvsXy+7JoGuWxj6zlgjZGwia49xITggZ+0b+wP51l -5e8xEEc2K7eC5QVD0qh/NSqdPcVP+UG6UK/LT25w/yLuZgqJ3g87kGbOo9myLhkZ -3jr3kXnsriBmwmqcjgUwggIMMIIBlgIFAkAAAEUwDQYJKoZIhvcNAQECBQAwXzEL -MAkGA1UEBhMCVVMxIDAeBgNVBAoTF1JTQSBEYXRhIFNlY3VyaXR5LCBJbmMuMS4w -LAYDVQQLEyVMb3cgQXNzdXJhbmNlIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4X -DTk0MTEwOTIzMTk0NFoXDTk5MTIzMTIzMTk0NFowXzELMAkGA1UEBhMCVVMxIDAe -BgNVBAoTF1JTQSBEYXRhIFNlY3VyaXR5LCBJbmMuMS4wLAYDVQQLEyVTZWN1cmUg -U2VydmVyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGbMA0GCSqGSIb3DQEBAQUA -A4GJADCBhQJ+AJLOesGugz5aqomDV6wlAXYMra6OLDfO6zV4ZFQD5YRAUcm/jwji -ioII0haGN1XpsSECrXZogZoFokvJSyVmIlZsiAeP94FZbYQHZXATcXY+m3dM41CJ -VphIuR2nKRoTLkoRWZweFdVJVCxzOmmCsZc5nG1wZ0jl3S3WyB57AgMBAAEwDQYJ -KoZIhvcNAQECBQADYQAjOCnuhWTdRq+8PhUBSzKbOhmafQQPQ8Ltw+49U8N1zgq9 -1ROaW46znUQykAPUdaAIflEfV2e0ULuyOWCwDJ2ME7NUmWL86SLkk6QLC9iItjva -h+tdpLV/+TerjmrxCWChggOyMIICjTCCAfowDQYJKoZIhvcNAQECBQAwXzELMAkG -A1UEBhMCVVMxIDAeBgNVBAoTF1JTQSBEYXRhIFNlY3VyaXR5LCBJbmMuMS4wLAYD -VQQLEyVTZWN1cmUgU2VydmVyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5Fw05NTA1 -MDIwMjEyMjZaFw05NTA2MDEwMDAxNDlaMIIBaDAWAgUCQQAABBcNOTUwMjAxMTcy -NDI2WjAWAgUCQQAACRcNOTUwMjEwMDIxNjM5WjAWAgUCQQAADxcNOTUwMjI0MDAx -MjQ5WjAWAgUCQQAADBcNOTUwMjI1MDA0NjQ0WjAWAgUCQQAAGxcNOTUwMzEzMTg0 -MDQ5WjAWAgUCQQAAFhcNOTUwMzE1MTkxNjU0WjAWAgUCQQAAGhcNOTUwMzE1MTk0 -MDQxWjAWAgUCQQAAHxcNOTUwMzI0MTk0NDMzWjAWAgUCcgAABRcNOTUwMzI5MjAw -NzExWjAWAgUCcgAAERcNOTUwMzMwMDIzNDI2WjAWAgUCQQAAIBcNOTUwNDA3MDEx -MzIxWjAWAgUCcgAAHhcNOTUwNDA4MDAwMjU5WjAWAgUCcgAAQRcNOTUwNDI4MTcx -NzI0WjAWAgUCcgAAOBcNOTUwNDI4MTcyNzIxWjAWAgUCcgAATBcNOTUwNTAyMDIx -MjI2WjANBgkqhkiG9w0BAQIFAAN+AHqOEJXSDejYy0UwxxrH/9+N2z5xu/if0J6q -QmK92W0hW158wpJg+ovV3+wQwvIEPRL2rocL0tKfAsVq1IawSJzSNgxG0lrcla3M -rJBnZ4GaZDu4FutZh72MR3GtJaAL3iTJHJD55kK2D/VoyY1djlsPuNh6AEgdVwFA -yp0vMIIBHTCBqDANBgkqhkiG9w0BAQIFADBfMQswCQYDVQQGEwJVUzEgMB4GA1UE -ChMXUlNBIERhdGEgU2VjdXJpdHksIEluYy4xLjAsBgNVBAsTJUxvdyBBc3N1cmFu -Y2UgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkXDTk1MDUwMTE5MjcyOVoXDTk1MDYw -MTA4MDAwMFowGDAWAgUCQAAAXhcNOTUwMjA4MDE0NjIyWjANBgkqhkiG9w0BAQIF -AANhAF70VxEAKgGlS2otYkWSqYJ286MMDbdAIoEGCDTtVuLCOP3YKHOSTjFhbIhL -5mBd+Q/W+lKSqdoyYhdObaBk4I4Wk+/BE2QK1x4QhtYG144spESXIRIKAbhffg1g -rRe/ETEA ------END PKCS7----- diff --git a/apps/test.ssl b/apps/test.ssl deleted file mode 100644 index d0566e0..0000000 --- a/apps/test.ssl +++ /dev/null @@ -1,16 +0,0 @@ -www.microsoft.com:443 -sectest.microsoft.com:443 -https://sectest.microsoft.com/ClientAuth/test.asp -ssl3.netscape.com:443 -ssl3.netscape.com:444 -www.openmarket.com:443 - no session ID caching. - no swap - -Servers -bad www.openmarket.com Open-Market-Secure-WebServer/V2.1 -bad www.microsoft.com Server: Microsoft-IIS/3.0 -good transact.netscape.com Netscape-Enterprise/2.01 - -clients -good netscape -hmm MSIE - diff --git a/crypto/asn1/pk.c b/crypto/asn1/pk.c deleted file mode 100644 index b96f22d..0000000 --- a/crypto/asn1/pk.c +++ /dev/null @@ -1,117 +0,0 @@ -/* crypto/asn1/pk.c */ -/* 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.] - */ - -#include <stdio.h> -#include "../error/err.h" -#include "./asn1.h" -#include "rsa.h" -#include "x509.h" -#include "pkcs7.h" - -main() - { - PKCS7 *x; - FILE *in; - unsigned char buf[10240],buf2[10240],*p; - int num,i; - - PKCS7 *nx=NULL,*mx=NULL; - - in=fopen("pkcs7.der","r"); - if (in == NULL) - { - perror("pkcs7.der"); - exit(1); - } - num=fread(buf,1,10240,in); - fclose(in); - - - p=buf; - if (d2i_PKCS7(&nx,&p,num) == NULL) goto err; - printf("num=%d p-buf=%d\n",num,p-buf); - -exit(0); - p=buf2; - num=i2d_PKCS7(nx,&p); - printf("num=%d p-buf=%d\n",num,p-buf2); - - if (memcmp(buf,buf2,num) != 0) - { - fprintf(stderr,"data difference\n"); - for (i=0; i<num; i++) - fprintf(stderr,"%c%03d <%02X-%02X>\n", - (buf[i] == buf2[i])?' ':'*',i, - buf[i],buf2[i]); - fprintf(stderr,"\n"); - exit(1); - } - - p=buf2; - if (d2i_PKCS7(&mx,&p,num) == NULL) goto err; - printf("num=%d p-buf=%d\n",num,p-buf2); - -/* X509_print(stdout,mx);*/ - - exit(0); -err: - ERR_load_crypto_strings(); - ERR_print_errors(stderr); - exit(1); - } - diff --git a/crypto/asn1/test.c b/crypto/asn1/test.c deleted file mode 100644 index fe46cd0..0000000 --- a/crypto/asn1/test.c +++ /dev/null @@ -1,253 +0,0 @@ -/* crypto/asn1/test.c */ -/* 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.] - */ - -#include <stdio.h> -#include "../error/err.h" -#include "./asn1.h" -#include "rsa.h" -#include "../x509/x509.h" -#include "x509.h" - -main() - { - main1(); - main2(); - main3(); - main4(); - } - -main1() - { - FILE *in; - unsigned char buf[10240],buf2[10240],*p; - int num,i; - - X509 *nx=NULL,*mx=NULL; - - in=fopen("x.der","r"); - if (in == NULL) - { - perror("x.der"); - exit(1); - } - num=fread(buf,1,10240,in); - fclose(in); - - - p=buf; - if (d2i_X509(&nx,&p,num) == NULL) goto err; - printf("num=%d p-buf=%d\n",num,p-buf); - - p=buf2; - num=i2d_X509(nx,&p); - printf("num=%d p-buf=%d\n",num,p-buf2); - - if (memcmp(buf,buf2,num) != 0) - { - fprintf(stderr,"data difference\n"); - for (i=0; i<num; i++) - fprintf(stderr,"%c%03d <%02X-%02X>\n", - (buf[i] == buf2[i])?' ':'*',i, - buf[i],buf2[i]); - fprintf(stderr,"\n"); - exit(1); - } - - p=buf2; - if (d2i_X509(&mx,&p,num) == NULL) goto err; - printf("num=%d p-buf=%d\n",num,p-buf2); - - return(1); -err: - ERR_load_crypto_strings(); - ERR_print_errors(stderr); - return(0); - } - -main2() - { - FILE *in; - unsigned char buf[10240],buf2[10240],*p; - int num,i; - - X509_CRL *nx=NULL,*mx=NULL; - - in=fopen("crl.der","r"); - if (in == NULL) - { - perror("crl.der"); - exit(1); - } - num=fread(buf,1,10240,in); - fclose(in); - - - p=buf; - if (d2i_X509_CRL(&nx,&p,num) == NULL) goto err; - printf("num=%d p-buf=%d\n",num,p-buf); - - p=buf2; - num=i2d_X509_CRL(nx,&p); - printf("num=%d p-buf=%d\n",num,p-buf2); - - if (memcmp(buf,buf2,num) != 0) - { - fprintf(stderr,"data difference\n"); - for (i=0; i<num; i++) - fprintf(stderr,"%c%03d <%02X-%02X>\n", - (buf[i] == buf2[i])?' ':'*',i, - buf[i],buf2[i]); - fprintf(stderr,"\n"); - exit(1); - } - - return(1); -err: - ERR_load_crypto_strings(); - ERR_print_errors(stderr); - return(0); - } - -main3() - { - FILE *in; - unsigned char buf[10240],buf2[10240],*p; - int num,i; - - X509_REQ *nx=NULL,*mx=NULL; - - in=fopen("req.der","r"); - if (in == NULL) - { - perror("req.der"); - exit(1); - } - num=fread(buf,1,10240,in); - fclose(in); - - - p=buf; - if (d2i_X509_REQ(&nx,&p,num) == NULL) goto err; - printf("num=%d p-buf=%d\n",num,p-buf); - - p=buf2; - num=i2d_X509_REQ(nx,&p); - printf("num=%d p-buf=%d\n",num,p-buf2); - - if (memcmp(buf,buf2,num) != 0) - { - fprintf(stderr,"data difference\n"); - for (i=0; i<num; i++) - fprintf(stderr,"%c%03d <%02X-%02X>\n", - (buf[i] == buf2[i])?' ':'*',i, - buf[i],buf2[i]); - fprintf(stderr,"\n"); - exit(1); - } - - return(1); -err: - ERR_load_crypto_strings(); - ERR_print_errors(stderr); - return(0); - } - -main4() - { - FILE *in; - unsigned char buf[10240],buf2[10240],*p; - int num,i; - - RSA *nx=NULL,*mx=NULL; - - in=fopen("rsa.der","r"); - if (in == NULL) - { - perror("rsa.der"); - exit(1); - } - num=fread(buf,1,10240,in); - fclose(in); - - - p=buf; - if (d2i_RSAPrivateKey(&nx,&p,num) == NULL) goto err; - printf("num=%d p-buf=%d\n",num,p-buf); - - p=buf2; - num=i2d_RSAPrivateKey(nx,&p); - printf("num=%d p-buf=%d\n",num,p-buf2); - - if (memcmp(buf,buf2,num) != 0) - { - fprintf(stderr,"data difference\n"); - for (i=0; i<num; i++) - fprintf(stderr,"%c%03d <%02X-%02X>\n", - (buf[i] == buf2[i])?' ':'*',i, - buf[i],buf2[i]); - fprintf(stderr,"\n"); - exit(1); - } - - return(1); -err: - ERR_load_crypto_strings(); - ERR_print_errors(stderr); - return(0); - } - diff --git a/crypto/bf/asm/bf586.pl b/crypto/bf/asm/bf586.pl deleted file mode 100644 index bcb53cf..0000000 --- a/crypto/bf/asm/bf586.pl +++ /dev/null @@ -1,159 +0,0 @@ -#!/usr/local/bin/perl -#!/usr/local/bin/perl
-
-$prog="bf586.pl";
-
-# base code is in microsft
-# op dest, source
-# format.
-#
-
-if ( ($ARGV[0] eq "elf"))
- { require "x86unix.pl"; }
-elsif ( ($ARGV[0] eq "a.out"))
- { $aout=1; require "x86unix.pl"; }
-elsif ( ($ARGV[0] eq "sol"))
- { $sol=1; require "x86unix.pl"; }
-elsif ( ($ARGV[0] eq "cpp"))
- { $cpp=1; require "x86unix.pl"; }
-elsif ( ($ARGV[0] eq "win32"))
- { require "x86ms.pl"; }
-else
- {
- print STDERR <<"EOF";
-Pick one target type from
- elf - linux, FreeBSD etc
- a.out - old linux
- sol - x86 solaris
- cpp - format so x86unix.cpp can be used
- win32 - Windows 95/Windows NT
-EOF
- exit(1);
- }
-
-&comment("Don't even think of reading this code");
-&comment("It was automatically generated by $prog");
-&comment("Which is a perl program used to generate the x86 assember for");
-&comment("any of elf, a.out, Win32, or Solaris");
-&comment("It can be found in SSLeay 0.7.0+");
-&comment("eric <eay\@cryptsoft.com>");
-&comment("");
-
-&file("bfx86xxxx");
-
-$BF_ROUNDS=16;
-$BF_OFF=($BF_ROUNDS+2)*4;
-$L="ecx";
-$R="edx";
-$P="edi";
-$tot="esi";
-$tmp1="eax";
-$tmp2="ebx";
-$tmp3="ebp";
-
-&des_encrypt("BF_encrypt");
-
-&file_end();
-
-sub des_encrypt
- {
- local($name)=@_;
-
- &function_begin($name,3,"");
-
- &comment("");
- &comment("Load the 2 words");
- &mov("eax",&wparam(0));
- &mov($L,&DWP(0,"eax","",0));
- &mov($R,&DWP(4,"eax","",0));
-
- &comment("");
- &comment("P pointer, s and enc flag");
- &mov($P,&wparam(1));
-
- &xor( $tmp1, $tmp1);
- &xor( $tmp2, $tmp2);
-
- # encrypting part
-
- &mov("ebp",&wparam(2)); # get encrypt flag
- &cmp("ebp","0");
- &je(&label("start_decrypt"));
-
- &xor($L,&DWP(0,$P,"",0));
- for ($i=0; $i<$BF_ROUNDS; $i+=2)
- {
- &comment("");
- &comment("Round $i");
- &BF_ENCRYPT($i+1,$R,$L,$P,$tot,$tmp1,$tmp2,$tmp3);
-
- &comment("");
- &comment("Round ".sprintf("%d",$i+1));
- &BF_ENCRYPT($i+2,$L,$R,$P,$tot,$tmp1,$tmp2,$tmp3);
- }
- &xor($R,&DWP(($BF_ROUNDS+1)*4,$P,"",0));
-
- &mov("eax",&wparam(0));
- &mov(&DWP(0,"eax","",0),$R);
- &mov(&DWP(4,"eax","",0),$L);
- &function_end_A($name);
-
- &set_label("start_decrypt");
-
- &xor($L,&DWP(($BF_ROUNDS+1)*4,$P,"",0));
- for ($i=$BF_ROUNDS; $i>0; $i-=2)
- {
- &comment("");
- &comment("Round $i");
- &BF_ENCRYPT($i,$R,$L,$P,$tot,$tmp1,$tmp2,$tmp3);
- &comment("");
- &comment("Round ".sprintf("%d",$i-1));
- &BF_ENCRYPT($i-1,$L,$R,$P,$tot,$tmp1,$tmp2,$tmp3);
- }
- &xor($R,&DWP(0,$P,"",0));
-
- &mov("eax",&wparam(0));
- &mov(&DWP(0,"eax","",0),$R);
- &mov(&DWP(4,"eax","",0),$L);
- &function_end_A($name);
-
- &function_end_B($name);
- }
-
-sub BF_ENCRYPT
- {
- local($i,$L,$R,$P,$tot,$tmp1,$tmp2,$tmp3)=@_;
-
- &rotr( $R, 16);
- &mov( $tot, &DWP(&n2a($i*4),$P,"",0));
-
- &movb( &LB($tmp1), &HB($R));
- &movb( &LB($tmp2), &LB($R));
-
- &rotr( $R, 16);
- &xor( $L, $tot);
-
- &mov( $tot, &DWP(&n2a($BF_OFF+0x0000),$P,$tmp1,4));
- &mov( $tmp3, &DWP(&n2a($BF_OFF+0x0400),$P,$tmp2,4));
-
- &movb( &LB($tmp1), &HB($R));
- &movb( &LB($tmp2), &LB($R));
-
- &add( $tot, $tmp3);
- &mov( $tmp1, &DWP(&n2a($BF_OFF+0x0800),$P,$tmp1,4)); # delay
-
- &xor( $tot, $tmp1);
- &mov( $tmp3, &DWP(&n2a($BF_OFF+0x0C00),$P,$tmp2,4));
-
- &add( $tot, $tmp3);
- &xor( $tmp1, $tmp1);
-
- &xor( $L, $tot);
- # delay
- }
-
-sub n2a
- {
- sprintf("%d",$_[0]);
- }
-
diff --git a/crypto/bf/asm/bx86-cpp.s b/crypto/bf/asm/bx86-cpp.s deleted file mode 100644 index 0925137..0000000 --- a/crypto/bf/asm/bx86-cpp.s +++ /dev/null @@ -1,666 +0,0 @@ - /* Don't even think of reading this code */ - /* It was automatically generated by bf586.pl */ - /* Which is a perl program used to generate the x86 assember for */ - /* any of elf, a.out, Win32, or Solaris */ - /* It can be found in SSLeay 0.7.0+ */ - /* eric <eay@cryptsoft.com> */ - - .file "bfx86xxxx.s" - .version "01.01" -gcc2_compiled.: -.text - .align ALIGN -.globl BF_encrypt - TYPE(BF_encrypt,@function) -BF_encrypt: - pushl %ebp - pushl %ebx - pushl %esi - pushl %edi - - - /* Load the 2 words */ - movl 20(%esp), %eax - movl (%eax), %ecx - movl 4(%eax), %edx - - /* P pointer, s and enc flag */ - movl 24(%esp), %edi - xorl %eax, %eax - xorl %ebx, %ebx - movl 28(%esp), %ebp - cmpl $0, %ebp - je .L000start_decrypt - xorl (%edi), %ecx - - /* Round 0 */ - rorl $16, %ecx - movl 4(%edi), %esi - movb %ch, %al - movb %cl, %bl - rorl $16, %ecx - xorl %esi, %edx - movl 72(%edi,%eax,4),%esi - movl 1096(%edi,%ebx,4),%ebp - movb %ch, %al - movb %cl, %bl - addl %ebp, %esi - movl 2120(%edi,%eax,4),%eax - xorl %eax, %esi - movl 3144(%edi,%ebx,4),%ebp - addl %ebp, %esi - xorl %eax, %eax - xorl %esi, %edx - - /* Round 1 */ - rorl $16, %edx - movl 8(%edi), %esi - movb %dh, %al - movb %dl, %bl - rorl $16, %edx - xorl %esi, %ecx - movl 72(%edi,%eax,4),%esi - movl 1096(%edi,%ebx,4),%ebp - movb %dh, %al - movb %dl, %bl - addl %ebp, %esi - movl 2120(%edi,%eax,4),%eax - xorl %eax, %esi - movl 3144(%edi,%ebx,4),%ebp - addl %ebp, %esi - xorl %eax, %eax - xorl %esi, %ecx - - /* Round 2 */ - rorl $16, %ecx - movl 12(%edi), %esi - movb %ch, %al - movb %cl, %bl - rorl $16, %ecx - xorl %esi, %edx - movl 72(%edi,%eax,4),%esi - movl 1096(%edi,%ebx,4),%ebp - movb %ch, %al - movb %cl, %bl - addl %ebp, %esi - movl 2120(%edi,%eax,4),%eax - xorl %eax, %esi - movl 3144(%edi,%ebx,4),%ebp - addl %ebp, %esi - xorl %eax, %eax - xorl %esi, %edx - - /* Round 3 */ - rorl $16, %edx - movl 16(%edi), %esi - movb %dh, %al - movb %dl, %bl - rorl $16, %edx - xorl %esi, %ecx - movl 72(%edi,%eax,4),%esi - movl 1096(%edi,%ebx,4),%ebp - movb %dh, %al - movb %dl, %bl - addl %ebp, %esi - movl 2120(%edi,%eax,4),%eax - xorl %eax, %esi - movl 3144(%edi,%ebx,4),%ebp - addl %ebp, %esi - xorl %eax, %eax - xorl %esi, %ecx - - /* Round 4 */ - rorl $16, %ecx - movl 20(%edi), %esi - movb %ch, %al - movb %cl, %bl - rorl $16, %ecx - xorl %esi, %edx - movl 72(%edi,%eax,4),%esi - movl 1096(%edi,%ebx,4),%ebp - movb %ch, %al - movb %cl, %bl - addl %ebp, %esi - movl 2120(%edi,%eax,4),%eax - xorl %eax, %esi - movl 3144(%edi,%ebx,4),%ebp - addl %ebp, %esi - xorl %eax, %eax - xorl %esi, %edx - - /* Round 5 */ - rorl $16, %edx - movl 24(%edi), %esi - movb %dh, %al - movb %dl, %bl - rorl $16, %edx - xorl %esi, %ecx - movl 72(%edi,%eax,4),%esi - movl 1096(%edi,%ebx,4),%ebp - movb %dh, %al - movb %dl, %bl - addl %ebp, %esi - movl 2120(%edi,%eax,4),%eax - xorl %eax, %esi - movl 3144(%edi,%ebx,4),%ebp - addl %ebp, %esi - xorl %eax, %eax - xorl %esi, %ecx - - /* Round 6 */ - rorl $16, %ecx - movl 28(%edi), %esi - movb %ch, %al - movb %cl, %bl - rorl $16, %ecx - xorl %esi, %edx - movl 72(%edi,%eax,4),%esi - movl 1096(%edi,%ebx,4),%ebp - movb %ch, %al - movb %cl, %bl - addl %ebp, %esi - movl 2120(%edi,%eax,4),%eax - xorl %eax, %esi - movl 3144(%edi,%ebx,4),%ebp - addl %ebp, %esi - xorl %eax, %eax - xorl %esi, %edx - - /* Round 7 */ - rorl $16, %edx - movl 32(%edi), %esi - movb %dh, %al - movb %dl, %bl - rorl $16, %edx - xorl %esi, %ecx - movl 72(%edi,%eax,4),%esi - movl 1096(%edi,%ebx,4),%ebp - movb %dh, %al - movb %dl, %bl - addl %ebp, %esi - movl 2120(%edi,%eax,4),%eax - xorl %eax, %esi - movl 3144(%edi,%ebx,4),%ebp - addl %ebp, %esi - xorl %eax, %eax - xorl %esi, %ecx - - /* Round 8 */ - rorl $16, %ecx - movl 36(%edi), %esi - movb %ch, %al - movb %cl, %bl - rorl $16, %ecx - xorl %esi, %edx - movl 72(%edi,%eax,4),%esi - movl 1096(%edi,%ebx,4),%ebp - movb %ch, %al - movb %cl, %bl - addl %ebp, %esi - movl 2120(%edi,%eax,4),%eax - xorl %eax, %esi - movl 3144(%edi,%ebx,4),%ebp - addl %ebp, %esi - xorl %eax, %eax - xorl %esi, %edx - - /* Round 9 */ - rorl $16, %edx - movl 40(%edi), %esi - movb %dh, %al - movb %dl, %bl - rorl $16, %edx - xorl %esi, %ecx - movl 72(%edi,%eax,4),%esi - movl 1096(%edi,%ebx,4),%ebp - movb %dh, %al - movb %dl, %bl - addl %ebp, %esi - movl 2120(%edi,%eax,4),%eax - xorl %eax, %esi - movl 3144(%edi,%ebx,4),%ebp - addl %ebp, %esi - xorl %eax, %eax - xorl %esi, %ecx - - /* Round 10 */ - rorl $16, %ecx - movl 44(%edi), %esi - movb %ch, %al - movb %cl, %bl - rorl $16, %ecx - xorl %esi, %edx - movl 72(%edi,%eax,4),%esi - movl 1096(%edi,%ebx,4),%ebp - movb %ch, %al - movb %cl, %bl - addl %ebp, %esi - movl 2120(%edi,%eax,4),%eax - xorl %eax, %esi - movl 3144(%edi,%ebx,4),%ebp - addl %ebp, %esi - xorl %eax, %eax - xorl %esi, %edx - - /* Round 11 */ - rorl $16, %edx - movl 48(%edi), %esi - movb %dh, %al - movb %dl, %bl - rorl $16, %edx - xorl %esi, %ecx - movl 72(%edi,%eax,4),%esi - movl 1096(%edi,%ebx,4),%ebp - movb %dh, %al - movb %dl, %bl - addl %ebp, %esi - movl 2120(%edi,%eax,4),%eax - xorl %eax, %esi - movl 3144(%edi,%ebx,4),%ebp - addl %ebp, %esi - xorl %eax, %eax - xorl %esi, %ecx - - /* Round 12 */ - rorl $16, %ecx - movl 52(%edi), %esi - movb %ch, %al - movb %cl, %bl - rorl $16, %ecx - xorl %esi, %edx - movl 72(%edi,%eax,4),%esi - movl 1096(%edi,%ebx,4),%ebp - movb %ch, %al - movb %cl, %bl - addl %ebp, %esi - movl 2120(%edi,%eax,4),%eax - xorl %eax, %esi - movl 3144(%edi,%ebx,4),%ebp - addl %ebp, %esi - xorl %eax, %eax - xorl %esi, %edx - - /* Round 13 */ - rorl $16, %edx - movl 56(%edi), %esi - movb %dh, %al - movb %dl, %bl - rorl $16, %edx - xorl %esi, %ecx - movl 72(%edi,%eax,4),%esi - movl 1096(%edi,%ebx,4),%ebp - movb %dh, %al - movb %dl, %bl - addl %ebp, %esi - movl 2120(%edi,%eax,4),%eax - xorl %eax, %esi - movl 3144(%edi,%ebx,4),%ebp - addl %ebp, %esi - xorl %eax, %eax - xorl %esi, %ecx - - /* Round 14 */ - rorl $16, %ecx - movl 60(%edi), %esi - movb %ch, %al - movb %cl, %bl - rorl $16, %ecx - xorl %esi, %edx - movl 72(%edi,%eax,4),%esi - movl 1096(%edi,%ebx,4),%ebp - movb %ch, %al - movb %cl, %bl - addl %ebp, %esi - movl 2120(%edi,%eax,4),%eax - xorl %eax, %esi - movl 3144(%edi,%ebx,4),%ebp - addl %ebp, %esi - xorl %eax, %eax - xorl %esi, %edx - - /* Round 15 */ - rorl $16, %edx - movl 64(%edi), %esi - movb %dh, %al - movb %dl, %bl - rorl $16, %edx - xorl %esi, %ecx - movl 72(%edi,%eax,4),%esi - movl 1096(%edi,%ebx,4),%ebp - movb %dh, %al - movb %dl, %bl - addl %ebp, %esi - movl 2120(%edi,%eax,4),%eax - xorl %eax, %esi - movl 3144(%edi,%ebx,4),%ebp - addl %ebp, %esi - xorl %eax, %eax - xorl %esi, %ecx - xorl 68(%edi), %edx - movl 20(%esp), %eax - movl %edx, (%eax) - movl %ecx, 4(%eax) - popl %edi - popl %esi - popl %ebx - popl %ebp - ret -.align ALIGN -.L000start_decrypt: - xorl 68(%edi), %ecx - - /* Round 16 */ - rorl $16, %ecx - movl 64(%edi), %esi - movb %ch, %al - movb %cl, %bl - rorl $16, %ecx - xorl %esi, %edx - movl 72(%edi,%eax,4),%esi - movl 1096(%edi,%ebx,4),%ebp - movb %ch, %al - movb %cl, %bl - addl %ebp, %esi - movl 2120(%edi,%eax,4),%eax - xorl %eax, %esi - movl 3144(%edi,%ebx,4),%ebp - addl %ebp, %esi - xorl %eax, %eax - xorl %esi, %edx - - /* Round 15 */ - rorl $16, %edx - movl 60(%edi), %esi - movb %dh, %al - movb %dl, %bl - rorl $16, %edx - xorl %esi, %ecx - movl 72(%edi,%eax,4),%esi - movl 1096(%edi,%ebx,4),%ebp - movb %dh, %al - movb %dl, %bl - addl %ebp, %esi - movl 2120(%edi,%eax,4),%eax - xorl %eax, %esi - movl 3144(%edi,%ebx,4),%ebp - addl %ebp, %esi - xorl %eax, %eax - xorl %esi, %ecx - - /* Round 14 */ - rorl $16, %ecx - movl 56(%edi), %esi - movb %ch, %al - movb %cl, %bl - rorl $16, %ecx - xorl %esi, %edx - movl 72(%edi,%eax,4),%esi - movl 1096(%edi,%ebx,4),%ebp - movb %ch, %al - movb %cl, %bl - addl %ebp, %esi - movl 2120(%edi,%eax,4),%eax - xorl %eax, %esi - movl 3144(%edi,%ebx,4),%ebp - addl %ebp, %esi - xorl %eax, %eax - xorl %esi, %edx - - /* Round 13 */ - rorl $16, %edx - movl 52(%edi), %esi - movb %dh, %al - movb %dl, %bl - rorl $16, %edx - xorl %esi, %ecx - movl 72(%edi,%eax,4),%esi - movl 1096(%edi,%ebx,4),%ebp - movb %dh, %al - movb %dl, %bl - addl %ebp, %esi - movl 2120(%edi,%eax,4),%eax - xorl %eax, %esi - movl 3144(%edi,%ebx,4),%ebp - addl %ebp, %esi - xorl %eax, %eax - xorl %esi, %ecx - - /* Round 12 */ - rorl $16, %ecx - movl 48(%edi), %esi - movb %ch, %al - movb %cl, %bl - rorl $16, %ecx - xorl %esi, %edx - movl 72(%edi,%eax,4),%esi - movl 1096(%edi,%ebx,4),%ebp - movb %ch, %al - movb %cl, %bl - addl %ebp, %esi - movl 2120(%edi,%eax,4),%eax - xorl %eax, %esi - movl 3144(%edi,%ebx,4),%ebp - addl %ebp, %esi - xorl %eax, %eax - xorl %esi, %edx - - /* Round 11 */ - rorl $16, %edx - movl 44(%edi), %esi - movb %dh, %al - movb %dl, %bl - rorl $16, %edx - xorl %esi, %ecx - movl 72(%edi,%eax,4),%esi - movl 1096(%edi,%ebx,4),%ebp - movb %dh, %al - movb %dl, %bl - addl %ebp, %esi - movl 2120(%edi,%eax,4),%eax - xorl %eax, %esi - movl 3144(%edi,%ebx,4),%ebp - addl %ebp, %esi - xorl %eax, %eax - xorl %esi, %ecx - - /* Round 10 */ - rorl $16, %ecx - movl 40(%edi), %esi - movb %ch, %al - movb %cl, %bl - rorl $16, %ecx - xorl %esi, %edx - movl 72(%edi,%eax,4),%esi - movl 1096(%edi,%ebx,4),%ebp - movb %ch, %al - movb %cl, %bl - addl %ebp, %esi - movl 2120(%edi,%eax,4),%eax - xorl %eax, %esi - movl 3144(%edi,%ebx,4),%ebp - addl %ebp, %esi - xorl %eax, %eax - xorl %esi, %edx - - /* Round 9 */ - rorl $16, %edx - movl 36(%edi), %esi - movb %dh, %al - movb %dl, %bl - rorl $16, %edx - xorl %esi, %ecx - movl 72(%edi,%eax,4),%esi - movl 1096(%edi,%ebx,4),%ebp - movb %dh, %al - movb %dl, %bl - addl %ebp, %esi - movl 2120(%edi,%eax,4),%eax - xorl %eax, %esi - movl 3144(%edi,%ebx,4),%ebp - addl %ebp, %esi - xorl %eax, %eax - xorl %esi, %ecx - - /* Round 8 */ - rorl $16, %ecx - movl 32(%edi), %esi - movb %ch, %al - movb %cl, %bl - rorl $16, %ecx - xorl %esi, %edx - movl 72(%edi,%eax,4),%esi - movl 1096(%edi,%ebx,4),%ebp - movb %ch, %al - movb %cl, %bl - addl %ebp, %esi - movl 2120(%edi,%eax,4),%eax - xorl %eax, %esi - movl 3144(%edi,%ebx,4),%ebp - addl %ebp, %esi - xorl %eax, %eax - xorl %esi, %edx - - /* Round 7 */ - rorl $16, %edx - movl 28(%edi), %esi - movb %dh, %al - movb %dl, %bl - rorl $16, %edx - xorl %esi, %ecx - movl 72(%edi,%eax,4),%esi - movl 1096(%edi,%ebx,4),%ebp - movb %dh, %al - movb %dl, %bl - addl %ebp, %esi - movl 2120(%edi,%eax,4),%eax - xorl %eax, %esi - movl 3144(%edi,%ebx,4),%ebp - addl %ebp, %esi - xorl %eax, %eax - xorl %esi, %ecx - - /* Round 6 */ - rorl $16, %ecx - movl 24(%edi), %esi - movb %ch, %al - movb %cl, %bl - rorl $16, %ecx - xorl %esi, %edx - movl 72(%edi,%eax,4),%esi - movl 1096(%edi,%ebx,4),%ebp - movb %ch, %al - movb %cl, %bl - addl %ebp, %esi - movl 2120(%edi,%eax,4),%eax - xorl %eax, %esi - movl 3144(%edi,%ebx,4),%ebp - addl %ebp, %esi - xorl %eax, %eax - xorl %esi, %edx - - /* Round 5 */ - rorl $16, %edx - movl 20(%edi), %esi - movb %dh, %al - movb %dl, %bl - rorl $16, %edx - xorl %esi, %ecx - movl 72(%edi,%eax,4),%esi - movl 1096(%edi,%ebx,4),%ebp - movb %dh, %al - movb %dl, %bl - addl %ebp, %esi - movl 2120(%edi,%eax,4),%eax - xorl %eax, %esi - movl 3144(%edi,%ebx,4),%ebp - addl %ebp, %esi - xorl %eax, %eax - xorl %esi, %ecx - - /* Round 4 */ - rorl $16, %ecx - movl 16(%edi), %esi - movb %ch, %al - movb %cl, %bl - rorl $16, %ecx - xorl %esi, %edx - movl 72(%edi,%eax,4),%esi - movl 1096(%edi,%ebx,4),%ebp - movb %ch, %al - movb %cl, %bl - addl %ebp, %esi - movl 2120(%edi,%eax,4),%eax - xorl %eax, %esi - movl 3144(%edi,%ebx,4),%ebp - addl %ebp, %esi - xorl %eax, %eax - xorl %esi, %edx - - /* Round 3 */ - rorl $16, %edx - movl 12(%edi), %esi - movb %dh, %al - movb %dl, %bl - rorl $16, %edx - xorl %esi, %ecx - movl 72(%edi,%eax,4),%esi - movl 1096(%edi,%ebx,4),%ebp - movb %dh, %al - movb %dl, %bl - addl %ebp, %esi - movl 2120(%edi,%eax,4),%eax - xorl %eax, %esi - movl 3144(%edi,%ebx,4),%ebp - addl %ebp, %esi - xorl %eax, %eax - xorl %esi, %ecx - - /* Round 2 */ - rorl $16, %ecx - movl 8(%edi), %esi - movb %ch, %al - movb %cl, %bl - rorl $16, %ecx - xorl %esi, %edx - movl 72(%edi,%eax,4),%esi - movl 1096(%edi,%ebx,4),%ebp - movb %ch, %al - movb %cl, %bl - addl %ebp, %esi - movl 2120(%edi,%eax,4),%eax - xorl %eax, %esi - movl 3144(%edi,%ebx,4),%ebp - addl %ebp, %esi - xorl %eax, %eax - xorl %esi, %edx - - /* Round 1 */ - rorl $16, %edx - movl 4(%edi), %esi - movb %dh, %al - movb %dl, %bl - rorl $16, %edx - xorl %esi, %ecx - movl 72(%edi,%eax,4),%esi - movl 1096(%edi,%ebx,4),%ebp - movb %dh, %al - movb %dl, %bl - addl %ebp, %esi - movl 2120(%edi,%eax,4),%eax - xorl %eax, %esi - movl 3144(%edi,%ebx,4),%ebp - addl %ebp, %esi - xorl %eax, %eax - xorl %esi, %ecx - xorl (%edi), %edx - movl 20(%esp), %eax - movl %edx, (%eax) - movl %ecx, 4(%eax) - popl %edi - popl %esi - popl %ebx - popl %ebp - ret -.BF_encrypt_end: - SIZE(BF_encrypt,.BF_encrypt_end-BF_encrypt) -.ident "desasm.pl" diff --git a/crypto/bf/asm/win32.asm b/crypto/bf/asm/win32.asm deleted file mode 100644 index 6d2333f..0000000 --- a/crypto/bf/asm/win32.asm +++ /dev/null @@ -1,663 +0,0 @@ - ; Don't even think of reading this code - ; It was automatically generated by bf586.pl - ; Which is a perl program used to generate the x86 assember for - ; any of elf, a.out, Win32, or Solaris - ; It can be found in SSLeay 0.7.0+ - ; eric <eay@cryptsoft.com> - ; - TITLE bfx86xxxx.asm - .386 -.model FLAT -_TEXT SEGMENT -PUBLIC _BF_encrypt -EXTRN _des_SPtrans:DWORD -_BF_encrypt PROC NEAR - push ebp - push ebx - push esi - push edi - ; - ; Load the 2 words - mov eax, DWORD PTR 20[esp] - mov ecx, DWORD PTR [eax] - mov edx, DWORD PTR 4[eax] - ; - ; P pointer, s and enc flag - mov edi, DWORD PTR 24[esp] - xor eax, eax - xor ebx, ebx - mov ebp, DWORD PTR 28[esp] - cmp ebp, 0 - je $L000start_decrypt - xor ecx, DWORD PTR [edi] - ; - ; Round 0 - ror ecx, 16 - mov esi, DWORD PTR 4[edi] - mov al, ch - mov bl, cl - ror ecx, 16 - xor edx, esi - mov esi, DWORD PTR 72[eax*4+edi] - mov ebp, DWORD PTR 1096[ebx*4+edi] - mov al, ch - mov bl, cl - add esi, ebp - mov eax, DWORD PTR 2120[eax*4+edi] - xor esi, eax - mov ebp, DWORD PTR 3144[ebx*4+edi] - add esi, ebp - xor eax, eax - xor edx, esi - ; - ; Round 1 - ror edx, 16 - mov esi, DWORD PTR 8[edi] - mov al, dh - mov bl, dl - ror edx, 16 - xor ecx, esi - mov esi, DWORD PTR 72[eax*4+edi] - mov ebp, DWORD PTR 1096[ebx*4+edi] - mov al, dh - mov bl, dl - add esi, ebp - mov eax, DWORD PTR 2120[eax*4+edi] - xor esi, eax - mov ebp, DWORD PTR 3144[ebx*4+edi] - add esi, ebp - xor eax, eax - xor ecx, esi - ; - ; Round 2 - ror ecx, 16 - mov esi, DWORD PTR 12[edi] - mov al, ch - mov bl, cl - ror ecx, 16 - xor edx, esi - mov esi, DWORD PTR 72[eax*4+edi] - mov ebp, DWORD PTR 1096[ebx*4+edi] - mov al, ch - mov bl, cl - add esi, ebp - mov eax, DWORD PTR 2120[eax*4+edi] - xor esi, eax - mov ebp, DWORD PTR 3144[ebx*4+edi] - add esi, ebp - xor eax, eax - xor edx, esi - ; - ; Round 3 - ror edx, 16 - mov esi, DWORD PTR 16[edi] - mov al, dh - mov bl, dl - ror edx, 16 - xor ecx, esi - mov esi, DWORD PTR 72[eax*4+edi] - mov ebp, DWORD PTR 1096[ebx*4+edi] - mov al, dh - mov bl, dl - add esi, ebp - mov eax, DWORD PTR 2120[eax*4+edi] - xor esi, eax - mov ebp, DWORD PTR 3144[ebx*4+edi] - add esi, ebp - xor eax, eax - xor ecx, esi - ; - ; Round 4 - ror ecx, 16 - mov esi, DWORD PTR 20[edi] - mov al, ch - mov bl, cl - ror ecx, 16 - xor edx, esi - mov esi, DWORD PTR 72[eax*4+edi] - mov ebp, DWORD PTR 1096[ebx*4+edi] - mov al, ch - mov bl, cl - add esi, ebp - mov eax, DWORD PTR 2120[eax*4+edi] - xor esi, eax - mov ebp, DWORD PTR 3144[ebx*4+edi] - add esi, ebp - xor eax, eax - xor edx, esi - ; - ; Round 5 - ror edx, 16 - mov esi, DWORD PTR 24[edi] - mov al, dh - mov bl, dl - ror edx, 16 - xor ecx, esi - mov esi, DWORD PTR 72[eax*4+edi] - mov ebp, DWORD PTR 1096[ebx*4+edi] - mov al, dh - mov bl, dl - add esi, ebp - mov eax, DWORD PTR 2120[eax*4+edi] - xor esi, eax - mov ebp, DWORD PTR 3144[ebx*4+edi] - add esi, ebp - xor eax, eax - xor ecx, esi - ; - ; Round 6 - ror ecx, 16 - mov esi, DWORD PTR 28[edi] - mov al, ch - mov bl, cl - ror ecx, 16 - xor edx, esi - mov esi, DWORD PTR 72[eax*4+edi] - mov ebp, DWORD PTR 1096[ebx*4+edi] - mov al, ch - mov bl, cl - add esi, ebp - mov eax, DWORD PTR 2120[eax*4+edi] - xor esi, eax - mov ebp, DWORD PTR 3144[ebx*4+edi] - add esi, ebp - xor eax, eax - xor edx, esi - ; - ; Round 7 - ror edx, 16 - mov esi, DWORD PTR 32[edi] - mov al, dh - mov bl, dl - ror edx, 16 - xor ecx, esi - mov esi, DWORD PTR 72[eax*4+edi] - mov ebp, DWORD PTR 1096[ebx*4+edi] - mov al, dh - mov bl, dl - add esi, ebp - mov eax, DWORD PTR 2120[eax*4+edi] - xor esi, eax - mov ebp, DWORD PTR 3144[ebx*4+edi] - add esi, ebp - xor eax, eax - xor ecx, esi - ; - ; Round 8 - ror ecx, 16 - mov esi, DWORD PTR 36[edi] - mov al, ch - mov bl, cl - ror ecx, 16 - xor edx, esi - mov esi, DWORD PTR 72[eax*4+edi] - mov ebp, DWORD PTR 1096[ebx*4+edi] - mov al, ch - mov bl, cl - add esi, ebp - mov eax, DWORD PTR 2120[eax*4+edi] - xor esi, eax - mov ebp, DWORD PTR 3144[ebx*4+edi] - add esi, ebp - xor eax, eax - xor edx, esi - ; - ; Round 9 - ror edx, 16 - mov esi, DWORD PTR 40[edi] - mov al, dh - mov bl, dl - ror edx, 16 - xor ecx, esi - mov esi, DWORD PTR 72[eax*4+edi] - mov ebp, DWORD PTR 1096[ebx*4+edi] - mov al, dh - mov bl, dl - add esi, ebp - mov eax, DWORD PTR 2120[eax*4+edi] - xor esi, eax - mov ebp, DWORD PTR 3144[ebx*4+edi] - add esi, ebp - xor eax, eax - xor ecx, esi - ; - ; Round 10 - ror ecx, 16 - mov esi, DWORD PTR 44[edi] - mov al, ch - mov bl, cl - ror ecx, 16 - xor edx, esi - mov esi, DWORD PTR 72[eax*4+edi] - mov ebp, DWORD PTR 1096[ebx*4+edi] - mov al, ch - mov bl, cl - add esi, ebp - mov eax, DWORD PTR 2120[eax*4+edi] - xor esi, eax - mov ebp, DWORD PTR 3144[ebx*4+edi] - add esi, ebp - xor eax, eax - xor edx, esi - ; - ; Round 11 - ror edx, 16 - mov esi, DWORD PTR 48[edi] - mov al, dh - mov bl, dl - ror edx, 16 - xor ecx, esi - mov esi, DWORD PTR 72[eax*4+edi] - mov ebp, DWORD PTR 1096[ebx*4+edi] - mov al, dh - mov bl, dl - add esi, ebp - mov eax, DWORD PTR 2120[eax*4+edi] - xor esi, eax - mov ebp, DWORD PTR 3144[ebx*4+edi] - add esi, ebp - xor eax, eax - xor ecx, esi - ; - ; Round 12 - ror ecx, 16 - mov esi, DWORD PTR 52[edi] - mov al, ch - mov bl, cl - ror ecx, 16 - xor edx, esi - mov esi, DWORD PTR 72[eax*4+edi] - mov ebp, DWORD PTR 1096[ebx*4+edi] - mov al, ch - mov bl, cl - add esi, ebp - mov eax, DWORD PTR 2120[eax*4+edi] - xor esi, eax - mov ebp, DWORD PTR 3144[ebx*4+edi] - add esi, ebp - xor eax, eax - xor edx, esi - ; - ; Round 13 - ror edx, 16 - mov esi, DWORD PTR 56[edi] - mov al, dh - mov bl, dl - ror edx, 16 - xor ecx, esi - mov esi, DWORD PTR 72[eax*4+edi] - mov ebp, DWORD PTR 1096[ebx*4+edi] - mov al, dh - mov bl, dl - add esi, ebp - mov eax, DWORD PTR 2120[eax*4+edi] - xor esi, eax - mov ebp, DWORD PTR 3144[ebx*4+edi] - add esi, ebp - xor eax, eax - xor ecx, esi - ; - ; Round 14 - ror ecx, 16 - mov esi, DWORD PTR 60[edi] - mov al, ch - mov bl, cl - ror ecx, 16 - xor edx, esi - mov esi, DWORD PTR 72[eax*4+edi] - mov ebp, DWORD PTR 1096[ebx*4+edi] - mov al, ch - mov bl, cl - add esi, ebp - mov eax, DWORD PTR 2120[eax*4+edi] - xor esi, eax - mov ebp, DWORD PTR 3144[ebx*4+edi] - add esi, ebp - xor eax, eax - xor edx, esi - ; - ; Round 15 - ror edx, 16 - mov esi, DWORD PTR 64[edi] - mov al, dh - mov bl, dl - ror edx, 16 - xor ecx, esi - mov esi, DWORD PTR 72[eax*4+edi] - mov ebp, DWORD PTR 1096[ebx*4+edi] - mov al, dh - mov bl, dl - add esi, ebp - mov eax, DWORD PTR 2120[eax*4+edi] - xor esi, eax - mov ebp, DWORD PTR 3144[ebx*4+edi] - add esi, ebp - xor eax, eax - xor ecx, esi - xor edx, DWORD PTR 68[edi] - mov eax, DWORD PTR 20[esp] - mov DWORD PTR [eax],edx - mov DWORD PTR 4[eax],ecx - pop edi - pop esi - pop ebx - pop ebp - ret -$L000start_decrypt: - xor ecx, DWORD PTR 68[edi] - ; - ; Round 16 - ror ecx, 16 - mov esi, DWORD PTR 64[edi] - mov al, ch - mov bl, cl - ror ecx, 16 - xor edx, esi - mov esi, DWORD PTR 72[eax*4+edi] - mov ebp, DWORD PTR 1096[ebx*4+edi] - mov al, ch - mov bl, cl - add esi, ebp - mov eax, DWORD PTR 2120[eax*4+edi] - xor esi, eax - mov ebp, DWORD PTR 3144[ebx*4+edi] - add esi, ebp - xor eax, eax - xor edx, esi - ; - ; Round 15 - ror edx, 16 - mov esi, DWORD PTR 60[edi] - mov al, dh - mov bl, dl - ror edx, 16 - xor ecx, esi - mov esi, DWORD PTR 72[eax*4+edi] - mov ebp, DWORD PTR 1096[ebx*4+edi] - mov al, dh - mov bl, dl - add esi, ebp - mov eax, DWORD PTR 2120[eax*4+edi] - xor esi, eax - mov ebp, DWORD PTR 3144[ebx*4+edi] - add esi, ebp - xor eax, eax - xor ecx, esi - ; - ; Round 14 - ror ecx, 16 - mov esi, DWORD PTR 56[edi] - mov al, ch - mov bl, cl - ror ecx, 16 - xor edx, esi - mov esi, DWORD PTR 72[eax*4+edi] - mov ebp, DWORD PTR 1096[ebx*4+edi] - mov al, ch - mov bl, cl - add esi, ebp - mov eax, DWORD PTR 2120[eax*4+edi] - xor esi, eax - mov ebp, DWORD PTR 3144[ebx*4+edi] - add esi, ebp - xor eax, eax - xor edx, esi - ; - ; Round 13 - ror edx, 16 - mov esi, DWORD PTR 52[edi] - mov al, dh - mov bl, dl - ror edx, 16 - xor ecx, esi - mov esi, DWORD PTR 72[eax*4+edi] - mov ebp, DWORD PTR 1096[ebx*4+edi] - mov al, dh - mov bl, dl - add esi, ebp - mov eax, DWORD PTR 2120[eax*4+edi] - xor esi, eax - mov ebp, DWORD PTR 3144[ebx*4+edi] - add esi, ebp - xor eax, eax - xor ecx, esi - ; - ; Round 12 - ror ecx, 16 - mov esi, DWORD PTR 48[edi] - mov al, ch - mov bl, cl - ror ecx, 16 - xor edx, esi - mov esi, DWORD PTR 72[eax*4+edi] - mov ebp, DWORD PTR 1096[ebx*4+edi] - mov al, ch - mov bl, cl - add esi, ebp - mov eax, DWORD PTR 2120[eax*4+edi] - xor esi, eax - mov ebp, DWORD PTR 3144[ebx*4+edi] - add esi, ebp - xor eax, eax - xor edx, esi - ; - ; Round 11 - ror edx, 16 - mov esi, DWORD PTR 44[edi] - mov al, dh - mov bl, dl - ror edx, 16 - xor ecx, esi - mov esi, DWORD PTR 72[eax*4+edi] - mov ebp, DWORD PTR 1096[ebx*4+edi] - mov al, dh - mov bl, dl - add esi, ebp - mov eax, DWORD PTR 2120[eax*4+edi] - xor esi, eax - mov ebp, DWORD PTR 3144[ebx*4+edi] - add esi, ebp - xor eax, eax - xor ecx, esi - ; - ; Round 10 - ror ecx, 16 - mov esi, DWORD PTR 40[edi] - mov al, ch - mov bl, cl - ror ecx, 16 - xor edx, esi - mov esi, DWORD PTR 72[eax*4+edi] - mov ebp, DWORD PTR 1096[ebx*4+edi] - mov al, ch - mov bl, cl - add esi, ebp - mov eax, DWORD PTR 2120[eax*4+edi] - xor esi, eax - mov ebp, DWORD PTR 3144[ebx*4+edi] - add esi, ebp - xor eax, eax - xor edx, esi - ; - ; Round 9 - ror edx, 16 - mov esi, DWORD PTR 36[edi] - mov al, dh - mov bl, dl - ror edx, 16 - xor ecx, esi - mov esi, DWORD PTR 72[eax*4+edi] - mov ebp, DWORD PTR 1096[ebx*4+edi] - mov al, dh - mov bl, dl - add esi, ebp - mov eax, DWORD PTR 2120[eax*4+edi] - xor esi, eax - mov ebp, DWORD PTR 3144[ebx*4+edi] - add esi, ebp - xor eax, eax - xor ecx, esi - ; - ; Round 8 - ror ecx, 16 - mov esi, DWORD PTR 32[edi] - mov al, ch - mov bl, cl - ror ecx, 16 - xor edx, esi - mov esi, DWORD PTR 72[eax*4+edi] - mov ebp, DWORD PTR 1096[ebx*4+edi] - mov al, ch - mov bl, cl - add esi, ebp - mov eax, DWORD PTR 2120[eax*4+edi] - xor esi, eax - mov ebp, DWORD PTR 3144[ebx*4+edi] - add esi, ebp - xor eax, eax - xor edx, esi - ; - ; Round 7 - ror edx, 16 - mov esi, DWORD PTR 28[edi] - mov al, dh - mov bl, dl - ror edx, 16 - xor ecx, esi - mov esi, DWORD PTR 72[eax*4+edi] - mov ebp, DWORD PTR 1096[ebx*4+edi] - mov al, dh - mov bl, dl - add esi, ebp - mov eax, DWORD PTR 2120[eax*4+edi] - xor esi, eax - mov ebp, DWORD PTR 3144[ebx*4+edi] - add esi, ebp - xor eax, eax - xor ecx, esi - ; - ; Round 6 - ror ecx, 16 - mov esi, DWORD PTR 24[edi] - mov al, ch - mov bl, cl - ror ecx, 16 - xor edx, esi - mov esi, DWORD PTR 72[eax*4+edi] - mov ebp, DWORD PTR 1096[ebx*4+edi] - mov al, ch - mov bl, cl - add esi, ebp - mov eax, DWORD PTR 2120[eax*4+edi] - xor esi, eax - mov ebp, DWORD PTR 3144[ebx*4+edi] - add esi, ebp - xor eax, eax - xor edx, esi - ; - ; Round 5 - ror edx, 16 - mov esi, DWORD PTR 20[edi] - mov al, dh - mov bl, dl - ror edx, 16 - xor ecx, esi - mov esi, DWORD PTR 72[eax*4+edi] - mov ebp, DWORD PTR 1096[ebx*4+edi] - mov al, dh - mov bl, dl - add esi, ebp - mov eax, DWORD PTR 2120[eax*4+edi] - xor esi, eax - mov ebp, DWORD PTR 3144[ebx*4+edi] - add esi, ebp - xor eax, eax - xor ecx, esi - ; - ; Round 4 - ror ecx, 16 - mov esi, DWORD PTR 16[edi] - mov al, ch - mov bl, cl - ror ecx, 16 - xor edx, esi - mov esi, DWORD PTR 72[eax*4+edi] - mov ebp, DWORD PTR 1096[ebx*4+edi] - mov al, ch - mov bl, cl - add esi, ebp - mov eax, DWORD PTR 2120[eax*4+edi] - xor esi, eax - mov ebp, DWORD PTR 3144[ebx*4+edi] - add esi, ebp - xor eax, eax - xor edx, esi - ; - ; Round 3 - ror edx, 16 - mov esi, DWORD PTR 12[edi] - mov al, dh - mov bl, dl - ror edx, 16 - xor ecx, esi - mov esi, DWORD PTR 72[eax*4+edi] - mov ebp, DWORD PTR 1096[ebx*4+edi] - mov al, dh - mov bl, dl - add esi, ebp - mov eax, DWORD PTR 2120[eax*4+edi] - xor esi, eax - mov ebp, DWORD PTR 3144[ebx*4+edi] - add esi, ebp - xor eax, eax - xor ecx, esi - ; - ; Round 2 - ror ecx, 16 - mov esi, DWORD PTR 8[edi] - mov al, ch - mov bl, cl - ror ecx, 16 - xor edx, esi - mov esi, DWORD PTR 72[eax*4+edi] - mov ebp, DWORD PTR 1096[ebx*4+edi] - mov al, ch - mov bl, cl - add esi, ebp - mov eax, DWORD PTR 2120[eax*4+edi] - xor esi, eax - mov ebp, DWORD PTR 3144[ebx*4+edi] - add esi, ebp - xor eax, eax - xor edx, esi - ; - ; Round 1 - ror edx, 16 - mov esi, DWORD PTR 4[edi] - mov al, dh - mov bl, dl - ror edx, 16 - xor ecx, esi - mov esi, DWORD PTR 72[eax*4+edi] - mov ebp, DWORD PTR 1096[ebx*4+edi] - mov al, dh - mov bl, dl - add esi, ebp - mov eax, DWORD PTR 2120[eax*4+edi] - xor esi, eax - mov ebp, DWORD PTR 3144[ebx*4+edi] - add esi, ebp - xor eax, eax - xor ecx, esi - xor edx, DWORD PTR [edi] - mov eax, DWORD PTR 20[esp] - mov DWORD PTR [eax],edx - mov DWORD PTR 4[eax],ecx - pop edi - pop esi - pop ebx - pop ebp - ret -_BF_encrypt ENDP -_TEXT ENDS -END diff --git a/crypto/bf/bf_locl b/crypto/bf/bf_locl deleted file mode 100644 index abc23d7..0000000 --- a/crypto/bf/bf_locl +++ /dev/null @@ -1,243 +0,0 @@ -/* crypto/bf/bf_local.h */ -/* Copyright (C) 1995-1997 Eric Young (eay@mincom.oz.au) - * All rights reserved. - * - * This package is an SSL implementation written - * by Eric Young (eay@mincom.oz.au). - * 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@mincom.oz.au). - * - * 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@mincom.oz.au)" - * 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@mincom.oz.au)" - * - * 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.] - */ -/* WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING - * - * Always modify bf_locl.org since bf_locl.h is automatically generated from - * it during SSLeay configuration. - * - * WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING - */ - -/* Special defines which change the way the code is built depending on the - CPU and OS. For SGI machines you can use _MIPS_SZLONG (32 or 64) to find - even newer MIPS CPU's, but at the moment one size fits all for - optimization options. Older Sparc's work better with only UNROLL, but - there's no way to tell at compile time what it is you're running on */ - -#if defined( sun ) /* Newer Sparc's */ -# define BF_PTR -#elif defined( __ultrix ) /* Older MIPS */ -# define BF_PTR -#elif defined( __osf1__ ) /* Alpha */ - /* None */ -#elif defined ( _AIX ) /* RS6000 */ - /* Unknown */ -#elif defined( __hpux ) /* HP-PA */ - /* None */ -#elif defined( __aux ) /* 68K */ - /* Unknown */ -#elif defined( __dgux ) /* 88K (but P6 in latest boxes) */ - /* Unknown */ -#elif defined( __sgi ) /* Newer MIPS */ -# define BF_PTR -#elif defined( i386 ) /* x86 boxes, should be gcc */ -# define BF_PTR2 -#elif defined( _MSC_VER ) /* x86 boxes, Visual C */ -# define BF_PTR2 -#endif /* Systems-specific speed defines */ - -#undef c2l -#define c2l(c,l) (l =((unsigned long)(*((c)++))) , \ - l|=((unsigned long)(*((c)++)))<< 8L, \ - l|=((unsigned long)(*((c)++)))<<16L, \ - l|=((unsigned long)(*((c)++)))<<24L) - -/* NOTE - c is not incremented as per c2l */ -#undef c2ln -#define c2ln(c,l1,l2,n) { \ - c+=n; \ - l1=l2=0; \ - switch (n) { \ - case 8: l2 =((unsigned long)(*(--(c))))<<24L; \ - case 7: l2|=((unsigned long)(*(--(c))))<<16L; \ - case 6: l2|=((unsigned long)(*(--(c))))<< 8L; \ - case 5: l2|=((unsigned long)(*(--(c)))); \ - case 4: l1 =((unsigned long)(*(--(c))))<<24L; \ - case 3: l1|=((unsigned long)(*(--(c))))<<16L; \ - case 2: l1|=((unsigned long)(*(--(c))))<< 8L; \ - case 1: l1|=((unsigned long)(*(--(c)))); \ - } \ - } - -#undef l2c -#define l2c(l,c) (*((c)++)=(unsigned char)(((l) )&0xff), \ - *((c)++)=(unsigned char)(((l)>> 8L)&0xff), \ - *((c)++)=(unsigned char)(((l)>>16L)&0xff), \ - *((c)++)=(unsigned char)(((l)>>24L)&0xff)) - -/* NOTE - c is not incremented as per l2c */ -#undef l2cn -#define l2cn(l1,l2,c,n) { \ - c+=n; \ - switch (n) { \ - case 8: *(--(c))=(unsigned char)(((l2)>>24L)&0xff); \ - case 7: *(--(c))=(unsigned char)(((l2)>>16L)&0xff); \ - case 6: *(--(c))=(unsigned char)(((l2)>> 8L)&0xff); \ - case 5: *(--(c))=(unsigned char)(((l2) )&0xff); \ - case 4: *(--(c))=(unsigned char)(((l1)>>24L)&0xff); \ - case 3: *(--(c))=(unsigned char)(((l1)>>16L)&0xff); \ - case 2: *(--(c))=(unsigned char)(((l1)>> 8L)&0xff); \ - case 1: *(--(c))=(unsigned char)(((l1) )&0xff); \ - } \ - } - -/* NOTE - c is not incremented as per n2l */ -#define n2ln(c,l1,l2,n) { \ - c+=n; \ - l1=l2=0; \ - switch (n) { \ - case 8: l2 =((unsigned long)(*(--(c)))) ; \ - case 7: l2|=((unsigned long)(*(--(c))))<< 8; \ - case 6: l2|=((unsigned long)(*(--(c))))<<16; \ - case 5: l2|=((unsigned long)(*(--(c))))<<24; \ - case 4: l1 =((unsigned long)(*(--(c)))) ; \ - case 3: l1|=((unsigned long)(*(--(c))))<< 8; \ - case 2: l1|=((unsigned long)(*(--(c))))<<16; \ - case 1: l1|=((unsigned long)(*(--(c))))<<24; \ - } \ - } - -/* NOTE - c is not incremented as per l2n */ -#define l2nn(l1,l2,c,n) { \ - c+=n; \ - switch (n) { \ - case 8: *(--(c))=(unsigned char)(((l2) )&0xff); \ - case 7: *(--(c))=(unsigned char)(((l2)>> 8)&0xff); \ - case 6: *(--(c))=(unsigned char)(((l2)>>16)&0xff); \ - case 5: *(--(c))=(unsigned char)(((l2)>>24)&0xff); \ - case 4: *(--(c))=(unsigned char)(((l1) )&0xff); \ - case 3: *(--(c))=(unsigned char)(((l1)>> 8)&0xff); \ - case 2: *(--(c))=(unsigned char)(((l1)>>16)&0xff); \ - case 1: *(--(c))=(unsigned char)(((l1)>>24)&0xff); \ - } \ - } - -#undef n2l -#define n2l(c,l) (l =((unsigned long)(*((c)++)))<<24L, \ - l|=((unsigned long)(*((c)++)))<<16L, \ - l|=((unsigned long)(*((c)++)))<< 8L, \ - l|=((unsigned long)(*((c)++)))) - -#undef l2n -#define l2n(l,c) (*((c)++)=(unsigned char)(((l)>>24L)&0xff), \ - *((c)++)=(unsigned char)(((l)>>16L)&0xff), \ - *((c)++)=(unsigned char)(((l)>> 8L)&0xff), \ - *((c)++)=(unsigned char)(((l) )&0xff)) - -/* This is actually a big endian algorithm, the most significate byte - * is used to lookup array 0 */ - -/* use BF_PTR2 for intel boxes, - * BF_PTR for sparc and MIPS/SGI - * use nothing for Alpha and HP. - */ -#if !defined(BF_PTR) && !defined(BF_PTR2) -#undef BF_PTR -#endif - -#define BF_M 0x3fc -#define BF_0 22L -#define BF_1 14L -#define BF_2 6L -#define BF_3 2L /* left shift */ - -#if defined(BF_PTR2) - -/* This is basically a special pentium verson */ -#define BF_ENC(LL,R,S,P) \ - { \ - BF_LONG t,u,v; \ - u=R>>BF_0; \ - v=R>>BF_1; \ - u&=BF_M; \ - v&=BF_M; \ - t= *(BF_LONG *)((unsigned char *)&(S[ 0])+u); \ - u=R>>BF_2; \ - t+= *(BF_LONG *)((unsigned char *)&(S[256])+v); \ - v=R<<BF_3; \ - u&=BF_M; \ - v&=BF_M; \ - t^= *(BF_LONG *)((unsigned char *)&(S[512])+u); \ - LL^=P; \ - t+= *(BF_LONG *)((unsigned char *)&(S[768])+v); \ - LL^=t; \ - } - -#elif defined(BF_PTR) - -/* This is normally very good */ - -#define BF_ENC(LL,R,S,P) \ - LL^=P; \ - LL^= (((*(BF_LONG *)((unsigned char *)&(S[ 0])+((R>>BF_0)&BF_M))+ \ - *(BF_LONG *)((unsigned char *)&(S[256])+((R>>BF_1)&BF_M)))^ \ - *(BF_LONG *)((unsigned char *)&(S[512])+((R>>BF_2)&BF_M)))+ \ - *(BF_LONG *)((unsigned char *)&(S[768])+((R<<BF_3)&BF_M))); -#else - -/* This will always work, even on 64 bit machines and strangly enough, - * on the Alpha it is faster than the pointer versions (both 32 and 64 - * versions of BF_LONG) */ - -#define BF_ENC(LL,R,S,P) \ - LL^=P; \ - LL^=((( S[ (int)(R>>24L) ] + \ - S[0x0100+((int)(R>>16L)&0xff)])^ \ - S[0x0200+((int)(R>> 8L)&0xff)])+ \ - S[0x0300+((int)(R )&0xff)])&0xffffffffL; -#endif diff --git a/crypto/bn/asm/x86-bsdi.s b/crypto/bn/asm/x86-bsdi.s deleted file mode 100644 index ca66876..0000000 --- a/crypto/bn/asm/x86-bsdi.s +++ /dev/null @@ -1,272 +0,0 @@ - .file "bn_mulw.c" - .version "01.01" -gcc2_compiled.: -.text - .align 4 -.globl _bn_mul_add_word -_bn_mul_add_word: - pushl %ebp - pushl %edi - pushl %esi - pushl %ebx - - # ax L(t) - # dx H(t) - # bx a - # cx w - # di r - # si c - # bp num - xorl %esi,%esi # c=0 - movl 20(%esp),%edi # r => edi - movl 24(%esp),%ebx # a => exb - movl 32(%esp),%ecx # w => ecx - movl 28(%esp),%ebp # num => ebp - - shrl $2,%ebp # num/4 - je .L910 - -# .align 4 -.L110: - # Round 1 - movl %ecx,%eax # w => eax - mull (%ebx) # w * *a - addl (%edi),%eax # *r+=L(t) - adcl $0,%edx # H(t)+= carry - addl %esi,%eax # L(t)+=c - adcl $0,%edx # H(t)+=carry - movl %eax,(%edi) # *r+=L(t) - movl %edx,%esi # c=H(t) - - # Round 2 - movl %ecx,%eax # w => eax - mull 4(%ebx) # w * *a - addl 4(%edi),%eax # *r+=L(t) - adcl $0,%edx # H(t)+= carry - addl %esi,%eax # L(t)+=c - adcl $0,%edx # H(t)+=carry - movl %eax,4(%edi) # *r+=L(t) - movl %edx,%esi # c=H(t) - - # Round 3 - movl %ecx,%eax # w => eax - mull 8(%ebx) # w * *a - addl 8(%edi),%eax # *r+=L(t) - adcl $0,%edx # H(t)+=carry - addl %esi,%eax # L(t)+=c - adcl $0,%edx # H(t)+=carry - movl %eax,8(%edi) # *r+=L(t) - movl %edx,%esi # c=H(t) - - # Round 4 - movl %ecx,%eax # w => eax - mull 12(%ebx) # w * *a - addl 12(%edi),%eax # *r+=L(t) - adcl $0,%edx # H(t)+=carry - addl %esi,%eax # L(t)+=c - adcl $0,%edx # H(t)+=carry - movl %eax,12(%edi) # *r+=L(t) - movl %edx,%esi # c=H(t) - - addl $16,%ebx # a+=4 (4 words) - addl $16,%edi # r+=4 (4 words) - - decl %ebp # --num - je .L910 - jmp .L110 -# .align 4 -.L910: - movl 28(%esp),%ebp # num => ebp - andl $3,%ebp - je .L111 - - # Round 1 - movl %ecx,%eax # w => eax - mull (%ebx) # w * *a - addl (%edi),%eax # *r+=L(t) - adcl $0,%edx # H(t)+=carry - addl %esi,%eax # L(t)+=c - adcl $0,%edx # H(t)+=carry - movl %eax,(%edi) # *r+=L(t) - movl %edx,%esi # c=H(t) - decl %ebp # --num - je .L111 - - # Round 2 - movl %ecx,%eax # w => eax - mull 4(%ebx) # w * *a - addl 4(%edi),%eax # *r+=L(t) - adcl $0,%edx # H(t)+=carry - addl %esi,%eax # L(t)+=c - adcl $0,%edx # H(t)+=carry - movl %eax,4(%edi) # *r+=L(t) - movl %edx,%esi # c=H(t) - decl %ebp # --num - je .L111 - - # Round 3 - movl %ecx,%eax # w => eax - mull 8(%ebx) # w * *a - addl 8(%edi),%eax # *r+=L(t) - adcl $0,%edx # H(t)+=carry - addl %esi,%eax # L(t)+=c - adcl $0,%edx # H(t)+=carry - movl %eax,8(%edi) # *r+=L(t) - movl %edx,%esi # c=H(t) - -# .align 4 -.L111: - movl %esi,%eax # return(c) - popl %ebx - popl %esi - popl %edi - popl %ebp - ret -.Lfe1: - .align 4 -.globl _bn_mul_word -_bn_mul_word: - pushl %ebp - pushl %edi - pushl %esi - pushl %ebx - - # ax L(t) - # dx H(t) - # bx a - # cx w - # di r - # num bp - # si c - xorl %esi,%esi # c=0 - movl 20(%esp),%edi # r => edi - movl 24(%esp),%ebx # a => exb - movl 28(%esp),%ebp # num => bp - movl 32(%esp),%ecx # w => ecx - -# .align 4 -.L210: - movl %ecx,%eax # w => eax - mull (%ebx) # w * *a - addl %esi,%eax # L(t)+=c - adcl $0,%edx # H(t)+=carry - movl %eax,(%edi) # *r=L(t) - movl %edx,%esi # c=H(t) - decl %ebp # --num - je .L211 - - movl %ecx,%eax # w => eax - mull 4(%ebx) # w * *a - addl %esi,%eax # L(t)+=c - adcl $0,%edx # H(t)+=carry - movl %eax,4(%edi) # *r=L(t) - movl %edx,%esi # c=H(t) - decl %ebp # --num - je .L211 - - movl %ecx,%eax # w => eax - mull 8(%ebx) # w * *a - addl %esi,%eax # L(t)+=c - adcl $0,%edx # H(t)+=carry - movl %eax,8(%edi) # *r=L(t) - movl %edx,%esi # c=H(t) - decl %ebp # --num - je .L211 - - movl %ecx,%eax # w => eax - mull 12(%ebx) # w * *a - addl %esi,%eax # L(t)+=c - adcl $0,%edx # H(t)+=carry - movl %eax,12(%edi) # *r=L(t) - movl %edx,%esi # c=H(t) - decl %ebp # --num - je .L211 - - addl $16,%ebx # a+=4 (4 words) - addl $16,%edi # r+=4 (4 words) - - jmp .L210 -# .align 4 -.L211: - movl %esi,%eax # return(c) - popl %ebx - popl %esi - popl %edi - popl %ebp - ret -.Lfe2: - .align 4 -.globl _bn_sqr_words -_bn_sqr_words: - pushl %edi - pushl %esi - pushl %ebx - movl 16(%esp),%esi # r - movl 20(%esp),%edi # a - movl 24(%esp),%ebx # n -# .align 4 - shrl $2,%ebx - jz .L99 -.L28: - movl (%edi),%eax # get a - mull %eax # a*a - movl %eax,(%esi) # put low into return addr - movl %edx,4(%esi) # put high into return addr - - movl 4(%edi),%eax # get a - mull %eax # a*a - movl %eax,8(%esi) # put low into return addr - movl %edx,12(%esi) # put high into return addr - - movl 8(%edi),%eax # get a - mull %eax # a*a - movl %eax,16(%esi) # put low into return addr - movl %edx,20(%esi) # put high into return addr - - movl 12(%edi),%eax # get a - mull %eax # a*a - movl %eax,24(%esi) # put low into return addr - movl %edx,28(%esi) # put high into return addr - - addl $16,%edi - addl $32,%esi - decl %ebx # n-=4; - jz .L99 - jmp .L28 -# .align 4 -.L99: - movl 24(%esp),%ebx # n - andl $3,%ebx - jz .L29 - movl (%edi),%eax # get a - mull %eax # a*a - movl %eax,(%esi) # put low into return addr - movl %edx,4(%esi) # put high into return addr - decl %ebx # n--; - jz .L29 - movl 4(%edi),%eax # get a - mull %eax # a*a - movl %eax,8(%esi) # put low into return addr - movl %edx,12(%esi) # put high into return addr - decl %ebx # n--; - jz .L29 - movl 8(%edi),%eax # get a - mull %eax # a*a - movl %eax,16(%esi) # put low into return addr - movl %edx,20(%esi) # put high into return addr - -.L29: - popl %ebx - popl %esi - popl %edi - ret -.Lfe3: - .align 4 -.globl _bn_div64 -_bn_div64: - movl 4(%esp),%edx # a - movl 8(%esp),%eax # b - divl 12(%esp) # ab/c - ret -.Lfe4: - .ident "GCC: (GNU) 2.6.3" diff --git a/crypto/bn/asm/x86-lnx.s b/crypto/bn/asm/x86-lnx.s deleted file mode 100644 index 5123867..0000000 --- a/crypto/bn/asm/x86-lnx.s +++ /dev/null @@ -1,282 +0,0 @@ - .file "bn_mulw.c" - .version "01.01" -gcc2_compiled.: -.text - .align 16 -.globl bn_mul_add_word - .type bn_mul_add_word,@function -bn_mul_add_word: - pushl %ebp - pushl %edi - pushl %esi - pushl %ebx - - # ax L(t) - # dx H(t) - # bx a - # cx w - # di r - # si c - # bp num - xorl %esi,%esi # c=0 - movl 20(%esp),%edi # r => edi - movl 24(%esp),%ebx # a => exb - movl 32(%esp),%ecx # w => ecx - movl 28(%esp),%ebp # num => ebp - - shrl $2,%ebp # num/4 - je .L910 - - .align 4 -.L110: - # Round 1 - movl %ecx,%eax # w => eax - mull (%ebx) # w * *a - addl (%edi),%eax # *r+=L(t) - adcl $0,%edx # H(t)+= carry - addl %esi,%eax # L(t)+=c - adcl $0,%edx # H(t)+=carry - movl %eax,(%edi) # *r+=L(t) - movl %edx,%esi # c=H(t) - - # Round 2 - movl %ecx,%eax # w => eax - mull 4(%ebx) # w * *a - addl 4(%edi),%eax # *r+=L(t) - adcl $0,%edx # H(t)+= carry - addl %esi,%eax # L(t)+=c - adcl $0,%edx # H(t)+=carry - movl %eax,4(%edi) # *r+=L(t) - movl %edx,%esi # c=H(t) - - # Round 3 - movl %ecx,%eax # w => eax - mull 8(%ebx) # w * *a - addl 8(%edi),%eax # *r+=L(t) - adcl $0,%edx # H(t)+=carry - addl %esi,%eax # L(t)+=c - adcl $0,%edx # H(t)+=carry - movl %eax,8(%edi) # *r+=L(t) - movl %edx,%esi # c=H(t) - - # Round 4 - movl %ecx,%eax # w => eax - mull 12(%ebx) # w * *a - addl 12(%edi),%eax # *r+=L(t) - adcl $0,%edx # H(t)+=carry - addl %esi,%eax # L(t)+=c - adcl $0,%edx # H(t)+=carry - movl %eax,12(%edi) # *r+=L(t) - movl %edx,%esi # c=H(t) - - addl $16,%ebx # a+=4 (4 words) - addl $16,%edi # r+=4 (4 words) - - decl %ebp # --num - je .L910 - jmp .L110 - .align 4 -.L910: - movl 28(%esp),%ebp # num => ebp - andl $3,%ebp - je .L111 - - # Round 1 - movl %ecx,%eax # w => eax - mull (%ebx) # w * *a - addl (%edi),%eax # *r+=L(t) - adcl $0,%edx # H(t)+=carry - addl %esi,%eax # L(t)+=c - adcl $0,%edx # H(t)+=carry - movl %eax,(%edi) # *r+=L(t) - movl %edx,%esi # c=H(t) - decl %ebp # --num - je .L111 - - # Round 2 - movl %ecx,%eax # w => eax - mull 4(%ebx) # w * *a - addl 4(%edi),%eax # *r+=L(t) - adcl $0,%edx # H(t)+=carry - addl %esi,%eax # L(t)+=c - adcl $0,%edx # H(t)+=carry - movl %eax,4(%edi) # *r+=L(t) - movl %edx,%esi # c=H(t) - decl %ebp # --num - je .L111 - - # Round 3 - movl %ecx,%eax # w => eax - mull 8(%ebx) # w * *a - addl 8(%edi),%eax # *r+=L(t) - adcl $0,%edx # H(t)+=carry - addl %esi,%eax # L(t)+=c - adcl $0,%edx # H(t)+=carry - movl %eax,8(%edi) # *r+=L(t) - movl %edx,%esi # c=H(t) - - .align 4 -.L111: - movl %esi,%eax # return(c) - popl %ebx - popl %esi - popl %edi - popl %ebp - ret -.Lfe1: - .size bn_mul_add_word,.Lfe1-bn_mul_add_word - .align 16 -.globl bn_mul_word - .type bn_mul_word,@function -bn_mul_word: - pushl %ebp - pushl %edi - pushl %esi - pushl %ebx - - # ax L(t) - # dx H(t) - # bx a - # cx w - # di r - # num bp - # si c - xorl %esi,%esi # c=0 - movl 20(%esp),%edi # r => edi - movl 24(%esp),%ebx # a => exb - movl 28(%esp),%ebp # num => bp - movl 32(%esp),%ecx # w => ecx - - .align 4 -.L210: - movl %ecx,%eax # w => eax - mull (%ebx) # w * *a - addl %esi,%eax # L(t)+=c - adcl $0,%edx # H(t)+=carry - movl %eax,(%edi) # *r=L(t) - movl %edx,%esi # c=H(t) - decl %ebp # --num - je .L211 - - movl %ecx,%eax # w => eax - mull 4(%ebx) # w * *a - addl %esi,%eax # L(t)+=c - adcl $0,%edx # H(t)+=carry - movl %eax,4(%edi) # *r=L(t) - movl %edx,%esi # c=H(t) - decl %ebp # --num - je .L211 - - movl %ecx,%eax # w => eax - mull 8(%ebx) # w * *a - addl %esi,%eax # L(t)+=c - adcl $0,%edx # H(t)+=carry - movl %eax,8(%edi) # *r=L(t) - movl %edx,%esi # c=H(t) - decl %ebp # --num - je .L211 - - movl %ecx,%eax # w => eax - mull 12(%ebx) # w * *a - addl %esi,%eax # L(t)+=c - adcl $0,%edx # H(t)+=carry - movl %eax,12(%edi) # *r=L(t) - movl %edx,%esi # c=H(t) - decl %ebp # --num - je .L211 - - addl $16,%ebx # a+=4 (4 words) - addl $16,%edi # r+=4 (4 words) - - jmp .L210 - .align 16 -.L211: - movl %esi,%eax # return(c) - popl %ebx - popl %esi - popl %edi - popl %ebp - ret -.Lfe2: - .size bn_mul_word,.Lfe2-bn_mul_word - - .align 16 -.globl bn_sqr_words - .type bn_sqr_words,@function -bn_sqr_words: - pushl %edi - pushl %esi - pushl %ebx - movl 16(%esp),%esi # r - movl 20(%esp),%edi # a - movl 24(%esp),%ebx # n - .align 4 - shrl $2,%ebx - jz .L99 -.L28: - movl (%edi),%eax # get a - mull %eax # a*a - movl %eax,(%esi) # put low into return addr - movl %edx,4(%esi) # put high into return addr - - movl 4(%edi),%eax # get a - mull %eax # a*a - movl %eax,8(%esi) # put low into return addr - movl %edx,12(%esi) # put high into return addr - - movl 8(%edi),%eax # get a - mull %eax # a*a - movl %eax,16(%esi) # put low into return addr - movl %edx,20(%esi) # put high into return addr - - movl 12(%edi),%eax # get a - mull %eax # a*a - movl %eax,24(%esi) # put low into return addr - movl %edx,28(%esi) # put high into return addr - - addl $16,%edi - addl $32,%esi - decl %ebx # n-=4; - jz .L99 - jmp .L28 - .align 16 -.L99: - movl 24(%esp),%ebx # n - andl $3,%ebx - jz .L29 - movl (%edi),%eax # get a - mull %eax # a*a - movl %eax,(%esi) # put low into return addr - movl %edx,4(%esi) # put high into return addr - decl %ebx # n--; - jz .L29 - movl 4(%edi),%eax # get a - mull %eax # a*a - movl %eax,8(%esi) # put low into return addr - movl %edx,12(%esi) # put high into return addr - decl %ebx # n--; - jz .L29 - movl 8(%edi),%eax # get a - mull %eax # a*a - movl %eax,16(%esi) # put low into return addr - movl %edx,20(%esi) # put high into return addr - -.L29: - popl %ebx - popl %esi - popl %edi - ret -.Lfe3: - .size bn_sqr_words,.Lfe3-bn_sqr_words - - .align 16 -.globl bn_div64 - .type bn_div64,@function -bn_div64: - movl 4(%esp),%edx # a - movl 8(%esp),%eax # b - divl 12(%esp) # ab/c - ret -.Lfe4: - .size bn_div64,.Lfe4-bn_div64 - .ident "GCC: (GNU) 2.6.3" diff --git a/crypto/bn/asm/x86-lnxa.s b/crypto/bn/asm/x86-lnxa.s deleted file mode 100644 index 74855dc..0000000 --- a/crypto/bn/asm/x86-lnxa.s +++ /dev/null @@ -1,282 +0,0 @@ - .file "bn_mulw.c" - .version "01.01" -gcc2_compiled.: -.text - .align 4 -.globl _bn_mul_add_word - .type _bn_mul_add_word,@function -_bn_mul_add_word: - pushl %ebp - pushl %edi - pushl %esi - pushl %ebx - - # ax L(t) - # dx H(t) - # bx a - # cx w - # di r - # si c - # bp num - xorl %esi,%esi # c=0 - movl 20(%esp),%edi # r => edi - movl 24(%esp),%ebx # a => exb - movl 32(%esp),%ecx # w => ecx - movl 28(%esp),%ebp # num => ebp - - shrl $2,%ebp # num/4 - je .L910 - -# .align 4 -.L110: - # Round 1 - movl %ecx,%eax # w => eax - mull (%ebx) # w * *a - addl (%edi),%eax # *r+=L(t) - adcl $0,%edx # H(t)+= carry - addl %esi,%eax # L(t)+=c - adcl $0,%edx # H(t)+=carry - movl %eax,(%edi) # *r+=L(t) - movl %edx,%esi # c=H(t) - - # Round 2 - movl %ecx,%eax # w => eax - mull 4(%ebx) # w * *a - addl 4(%edi),%eax # *r+=L(t) - adcl $0,%edx # H(t)+= carry - addl %esi,%eax # L(t)+=c - adcl $0,%edx # H(t)+=carry - movl %eax,4(%edi) # *r+=L(t) - movl %edx,%esi # c=H(t) - - # Round 3 - movl %ecx,%eax # w => eax - mull 8(%ebx) # w * *a - addl 8(%edi),%eax # *r+=L(t) - adcl $0,%edx # H(t)+=carry - addl %esi,%eax # L(t)+=c - adcl $0,%edx # H(t)+=carry - movl %eax,8(%edi) # *r+=L(t) - movl %edx,%esi # c=H(t) - - # Round 4 - movl %ecx,%eax # w => eax - mull 12(%ebx) # w * *a - addl 12(%edi),%eax # *r+=L(t) - adcl $0,%edx # H(t)+=carry - addl %esi,%eax # L(t)+=c - adcl $0,%edx # H(t)+=carry - movl %eax,12(%edi) # *r+=L(t) - movl %edx,%esi # c=H(t) - - addl $16,%ebx # a+=4 (4 words) - addl $16,%edi # r+=4 (4 words) - - decl %ebp # --num - je .L910 - jmp .L110 -# .align 4 -.L910: - movl 28(%esp),%ebp # num => ebp - andl $3,%ebp - je .L111 - - # Round 1 - movl %ecx,%eax # w => eax - mull (%ebx) # w * *a - addl (%edi),%eax # *r+=L(t) - adcl $0,%edx # H(t)+=carry - addl %esi,%eax # L(t)+=c - adcl $0,%edx # H(t)+=carry - movl %eax,(%edi) # *r+=L(t) - movl %edx,%esi # c=H(t) - decl %ebp # --num - je .L111 - - # Round 2 - movl %ecx,%eax # w => eax - mull 4(%ebx) # w * *a - addl 4(%edi),%eax # *r+=L(t) - adcl $0,%edx # H(t)+=carry - addl %esi,%eax # L(t)+=c - adcl $0,%edx # H(t)+=carry - movl %eax,4(%edi) # *r+=L(t) - movl %edx,%esi # c=H(t) - decl %ebp # --num - je .L111 - - # Round 3 - movl %ecx,%eax # w => eax - mull 8(%ebx) # w * *a - addl 8(%edi),%eax # *r+=L(t) - adcl $0,%edx # H(t)+=carry - addl %esi,%eax # L(t)+=c - adcl $0,%edx # H(t)+=carry - movl %eax,8(%edi) # *r+=L(t) - movl %edx,%esi # c=H(t) - -# .align 4 -.L111: - movl %esi,%eax # return(c) - popl %ebx - popl %esi - popl %edi - popl %ebp - ret -.Lfe1: - .size _bn_mul_add_word,.Lfe1-_bn_mul_add_word - .align 4 -.globl _bn_mul_word - .type _bn_mul_word,@function -_bn_mul_word: - pushl %ebp - pushl %edi - pushl %esi - pushl %ebx - - # ax L(t) - # dx H(t) - # bx a - # cx w - # di r - # num bp - # si c - xorl %esi,%esi # c=0 - movl 20(%esp),%edi # r => edi - movl 24(%esp),%ebx # a => exb - movl 28(%esp),%ebp # num => bp - movl 32(%esp),%ecx # w => ecx - -# .align 4 -.L210: - movl %ecx,%eax # w => eax - mull (%ebx) # w * *a - addl %esi,%eax # L(t)+=c - adcl $0,%edx # H(t)+=carry - movl %eax,(%edi) # *r=L(t) - movl %edx,%esi # c=H(t) - decl %ebp # --num - je .L211 - - movl %ecx,%eax # w => eax - mull 4(%ebx) # w * *a - addl %esi,%eax # L(t)+=c - adcl $0,%edx # H(t)+=carry - movl %eax,4(%edi) # *r=L(t) - movl %edx,%esi # c=H(t) - decl %ebp # --num - je .L211 - - movl %ecx,%eax # w => eax - mull 8(%ebx) # w * *a - addl %esi,%eax # L(t)+=c - adcl $0,%edx # H(t)+=carry - movl %eax,8(%edi) # *r=L(t) - movl %edx,%esi # c=H(t) - decl %ebp # --num - je .L211 - - movl %ecx,%eax # w => eax - mull 12(%ebx) # w * *a - addl %esi,%eax # L(t)+=c - adcl $0,%edx # H(t)+=carry - movl %eax,12(%edi) # *r=L(t) - movl %edx,%esi # c=H(t) - decl %ebp # --num - je .L211 - - addl $16,%ebx # a+=4 (4 words) - addl $16,%edi # r+=4 (4 words) - - jmp .L210 -# .align 4 -.L211: - movl %esi,%eax # return(c) - popl %ebx - popl %esi - popl %edi - popl %ebp - ret -.Lfe2: - .size _bn_mul_word,.Lfe2-_bn_mul_word - - .align 4 -.globl _bn_sqr_words - .type _bn_sqr_words,@function -_bn_sqr_words: - pushl %edi - pushl %esi - pushl %ebx - movl 16(%esp),%esi # r - movl 20(%esp),%edi # a - movl 24(%esp),%ebx # n -# .align 4 - shrl $2,%ebx - jz .L99 -.L28: - movl (%edi),%eax # get a - mull %eax # a*a - movl %eax,(%esi) # put low into return addr - movl %edx,4(%esi) # put high into return addr - - movl 4(%edi),%eax # get a - mull %eax # a*a - movl %eax,8(%esi) # put low into return addr - movl %edx,12(%esi) # put high into return addr - - movl 8(%edi),%eax # get a - mull %eax # a*a - movl %eax,16(%esi) # put low into return addr - movl %edx,20(%esi) # put high into return addr - - movl 12(%edi),%eax # get a - mull %eax # a*a - movl %eax,24(%esi) # put low into return addr - movl %edx,28(%esi) # put high into return addr - - addl $16,%edi - addl $32,%esi - decl %ebx # n-=4; - jz .L99 - jmp .L28 -# .align 4 -.L99: - movl 24(%esp),%ebx # n - andl $3,%ebx - jz .L29 - movl (%edi),%eax # get a - mull %eax # a*a - movl %eax,(%esi) # put low into return addr - movl %edx,4(%esi) # put high into return addr - decl %ebx # n--; - jz .L29 - movl 4(%edi),%eax # get a - mull %eax # a*a - movl %eax,8(%esi) # put low into return addr - movl %edx,12(%esi) # put high into return addr - decl %ebx # n--; - jz .L29 - movl 8(%edi),%eax # get a - mull %eax # a*a - movl %eax,16(%esi) # put low into return addr - movl %edx,20(%esi) # put high into return addr - -.L29: - popl %ebx - popl %esi - popl %edi - ret -.Lfe3: - .size _bn_sqr_words,.Lfe3-_bn_sqr_words - - .align 4 -.globl _bn_div64 - .type _bn_div64,@function -_bn_div64: - movl 4(%esp),%edx # a - movl 8(%esp),%eax # b - divl 12(%esp) # ab/c - ret -.Lfe4: - .size _bn_div64,.Lfe4-_bn_div64 - .ident "GCC: (GNU) 2.6.3" diff --git a/crypto/bn/asm/x86-sol.s b/crypto/bn/asm/x86-sol.s deleted file mode 100644 index c961e64..0000000 --- a/crypto/bn/asm/x86-sol.s +++ /dev/null @@ -1,224 +0,0 @@ - .file "bn_mulw.c" - .version "01.01" -gcc2_compiled.: -.text - .align 16 -.globl bn_mul_add_word - .type bn_mul_add_word,@function -bn_mul_add_word: - pushl %ebp - pushl %edi - pushl %esi - pushl %ebx - - / ax L(t) - / dx H(t) - / bx a - / cx w - / di r - / si c - / bp num - xorl %esi,%esi / c=0 - movl 20(%esp),%edi / r => edi - movl 24(%esp),%ebx / a => exb - movl 28(%esp),%ebp / num => ebp - movl 32(%esp),%ecx / w => ecx - - .align 4 -.L110: - movl %ecx,%eax / w => eax - mull (%ebx) / w * *a - addl (%edi),%eax / L(t)+= *r - adcl $0,%edx / H(t)+= carry - addl %esi,%eax / L(t)+=c - adcl $0,%edx / H(t)+=carry - movl %eax,(%edi) / *r=L(t) - movl %edx,%esi / c=H(t) - decl %ebp / --num - je .L111 - - movl %ecx,%eax / w => eax - mull 4(%ebx) / w * *a - addl 4(%edi),%eax / L(t)+= *r - adcl $0,%edx / H(t)+= carry - addl %esi,%eax / L(t)+=c - adcl $0,%edx / H(t)+=carry - movl %eax,4(%edi) / *r=L(t) - movl %edx,%esi / c=H(t) - decl %ebp / --num - je .L111 - - movl %ecx,%eax / w => eax - mull 8(%ebx) / w * *a - addl 8(%edi),%eax / L(t)+= *r - adcl $0,%edx / H(t)+= carry - addl %esi,%eax / L(t)+=c - adcl $0,%edx / H(t)+=carry - movl %eax,8(%edi) / *r=L(t) - movl %edx,%esi / c=H(t) - decl %ebp / --num - je .L111 - - movl %ecx,%eax / w => eax - mull 12(%ebx) / w * *a - addl 12(%edi),%eax / L(t)+= *r - adcl $0,%edx / H(t)+= carry - addl %esi,%eax / L(t)+=c - adcl $0,%edx / H(t)+=carry - movl %eax,12(%edi) / *r=L(t) - movl %edx,%esi / c=H(t) - decl %ebp / --num - je .L111 - - addl $16,%ebx / a+=4 (4 words) - addl $16,%edi / r+=4 (4 words) - - jmp .L110 - .align 16 -.L111: - movl %esi,%eax / return(c) - popl %ebx - popl %esi - popl %edi - popl %ebp - ret -.Lfe1: - .size bn_mul_add_word,.Lfe1-bn_mul_add_word - .align 16 -.globl bn_mul_word - .type bn_mul_word,@function -bn_mul_word: - pushl %ebp - pushl %edi - pushl %esi - pushl %ebx - - / ax L(t) - / dx H(t) - / bx a - / cx w - / di r - / num bp - / si c - xorl %esi,%esi / c=0 - movl 20(%esp),%edi / r => edi - movl 24(%esp),%ebx / a => exb - movl 28(%esp),%ebp / num => ebp - movl 32(%esp),%ecx / w => ecx - - .align 4 -.L210: - movl %ecx,%eax / w => eax - mull (%ebx) / w * *a - addl %esi,%eax / L(t)+=c - adcl $0,%edx / H(t)+=carry - movl %eax,(%edi) / *r=L(t) - movl %edx,%esi / c=H(t) - decl %ebp / --num - je .L211 - - movl %ecx,%eax / w => eax - mull 4(%ebx) / w * *a - addl %esi,%eax / L(t)+=c - adcl $0,%edx / H(t)+=carry - movl %eax,4(%edi) / *r=L(t) - movl %edx,%esi / c=H(t) - decl %ebp / --num - je .L211 - - movl %ecx,%eax / w => eax - mull 8(%ebx) / w * *a - addl %esi,%eax / L(t)+=c - adcl $0,%edx / H(t)+=carry - movl %eax,8(%edi) / *r=L(t) - movl %edx,%esi / c=H(t) - decl %ebp / --num - je .L211 - - movl %ecx,%eax / w => eax - mull 12(%ebx) / w * *a - addl %esi,%eax / L(t)+=c - adcl $0,%edx / H(t)+=carry - movl %eax,12(%edi) / *r=L(t) - movl %edx,%esi / c=H(t) - decl %ebp / --num - je .L211 - - addl $16,%ebx / a+=4 (4 words) - addl $16,%edi / r+=4 (4 words) - - jmp .L210 - .align 16 -.L211: - movl %esi,%eax / return(c) - popl %ebx - popl %esi - popl %edi - popl %ebp - ret -.Lfe2: - .size bn_mul_word,.Lfe2-bn_mul_word - - .align 16 -.globl bn_sqr_words - .type bn_sqr_words,@function -bn_sqr_words: - pushl %edi - pushl %esi - pushl %ebx - movl 16(%esp),%esi / r - movl 20(%esp),%edi / a - movl 24(%esp),%ebx / n - .align 4 -.L28: - movl (%edi),%eax / get a - mull %eax / a*a - movl %eax,(%esi) / put low into return addr - movl %edx,4(%esi) / put high into return addr - decl %ebx / n--; - je .L29 - - movl 4(%edi),%eax / get a - mull %eax / a*a - movl %eax,8(%esi) / put low into return addr - movl %edx,12(%esi) / put high into return addr - decl %ebx / n--; - je .L29 - - movl 8(%edi),%eax / get a - mull %eax / a*a - movl %eax,16(%esi) / put low into return addr - movl %edx,20(%esi) / put high into return addr - decl %ebx / n--; - je .L29 - - movl 12(%edi),%eax / get a - mull %eax / a*a - movl %eax,24(%esi) / put low into return addr - movl %edx,28(%esi) / put high into return addr - decl %ebx / n--; - je .L29 - - addl $16,%edi - addl $32,%esi - jmp .L28 - .align 16 -.L29: - popl %ebx - popl %esi - popl %edi - ret -.Lfe3: - .size bn_sqr_words,.Lfe3-bn_sqr_words - - .align 16 -.globl bn_div64 - .type bn_div64,@function -bn_div64: - movl 4(%esp),%edx / a - movl 8(%esp),%eax / b - divl 12(%esp) / ab/c - ret -.Lfe4: - .size bn_div64,.Lfe4-bn_div64 - .ident "GCC: (GNU) 2.6.3" diff --git a/crypto/bn/asm/x86nt32.asm b/crypto/bn/asm/x86nt32.asm deleted file mode 100644 index 0198c2c..0000000 --- a/crypto/bn/asm/x86nt32.asm +++ /dev/null @@ -1,288 +0,0 @@ - TITLE bn_mulw.c - .386P -.model FLAT -PUBLIC _bn_mul_add_word -_TEXT SEGMENT -; File bn_mulw.c -_bn_mul_add_word PROC NEAR - push ebp - push ebx - push esi - push edi - mov edi,DWORD PTR 20[esp] ; r - mov ebx,DWORD PTR 24[esp] ; a - mov ecx,DWORD PTR 32[esp] ; w - xor esi,esi ; c=0 - - mov ebp,DWORD PTR 28[esp] ; num - shr ebp,2 ; num/4 - jz $L666 - -$L546: - ; Round one - mov eax,DWORD PTR [ebx] ; edx:eax = *a * w - mul ecx - add eax,DWORD PTR [edi] ; *r+=ax - adc edx,0 - add eax,esi ; edx:eax += c - adc edx,0 - mov DWORD PTR [edi],eax ; *r+=ax - mov esi,edx ; c = overflow - - ; Round two - mov eax,DWORD PTR 4[ebx] ; edx:eax = *a * w - mul ecx - add eax,DWORD PTR 4[edi] ; *r+=ax - adc edx,0 - add eax,esi ; edx:eax += c - adc edx,0 - mov DWORD PTR 4[edi],eax ; *r+=ax - mov esi,edx ; c = overflow - - ; Round three - mov eax,DWORD PTR 8[ebx] ; edx:eax = *a * w - mul ecx - add eax,DWORD PTR 8[edi] ; *r+=ax - adc edx,0 - add eax,esi ; edx:eax += c - adc edx,0 - mov DWORD PTR 8[edi],eax ; *r+=ax - mov esi,edx ; c = overflow - - ; Round four - mov eax,DWORD PTR 12[ebx] ; edx:eax = *a * w - mul ecx - add eax,DWORD PTR 12[edi] ; *r+=ax - adc edx,0 - add eax,esi ; edx:eax += c - adc edx,0 - mov DWORD PTR 12[edi],eax ; *r+=ax - mov esi,edx ; c = overflow - - add ebx,16 - add edi,16 - - dec ebp - jz $L666 - jmp $L546 -$L666: - mov ebp,DWORD PTR 28[esp] ; num - and ebp,3 ; num%4 - jz $L547 - - ; Round one - mov eax,DWORD PTR [ebx] ; edx:eax = *a * w - mul ecx - add eax,DWORD PTR [edi] ; *r+=ax - adc edx,0 - add eax,esi ; edx:eax += c - adc edx,0 - mov DWORD PTR [edi],eax ; *r+=ax - mov esi,edx ; c = overflow - dec ebp - jz $L547 - ; Round two - mov eax,DWORD PTR 4[ebx] ; edx:eax = *a * w - mul ecx - add eax,DWORD PTR 4[edi] ; *r+=ax - adc edx,0 - add eax,esi ; edx:eax += c - adc edx,0 - mov DWORD PTR 4[edi],eax ; *r+=ax - mov esi,edx ; c = overflow - dec ebp - jz $L547 - ; Round three - mov eax,DWORD PTR 8[ebx] ; edx:eax = *a * w - mul ecx - add eax,DWORD PTR 8[edi] ; *r+=ax - adc edx,0 - add eax,esi ; edx:eax += c - adc edx,0 - mov DWORD PTR 8[edi],eax ; *r+=ax - mov esi,edx ; c = overflow - -$L547: - mov eax,esi - pop edi - pop esi - pop ebx - pop ebp - ret -_bn_mul_add_word ENDP -_TEXT ENDS -PUBLIC _bn_mul_word -_TEXT SEGMENT -_bn_mul_word PROC NEAR - push ebp - push ebx - push esi - push edi - - mov edi,DWORD PTR 20[esp] ; r - mov ebx,DWORD PTR 24[esp] ; a - mov ebp,DWORD PTR 28[esp] ; num - mov ecx,DWORD PTR 32[esp] ; w - xor esi,esi ; c=0 - - shr ebp,2 ; num/4 - jz $L266 - -$L593: - ; Round one - mov eax,DWORD PTR [ebx] ; edx:eax= w * *a - mul ecx - add eax,esi ; edx:eax+=c - adc edx,0 - mov DWORD PTR [edi],eax ; *r=eax - mov esi,edx ; c=edx - ; Round two - mov eax,DWORD PTR 4[ebx] ; edx:eax= w * *a - mul ecx - add eax,esi ; edx:eax+=c - adc edx,0 - mov DWORD PTR 4[edi],eax ; *r=eax - mov esi,edx ; c=edx - ; Round three - mov eax,DWORD PTR 8[ebx] ; edx:eax= w * *a - mul ecx - add eax,esi ; edx:eax+=c - adc edx,0 - mov DWORD PTR 8[edi],eax ; *r=eax - mov esi,edx ; c=edx - ; Round four - mov eax,DWORD PTR 12[ebx] ; edx:eax= w * *a - mul ecx - add eax,esi ; edx:eax+=c - adc edx,0 - mov DWORD PTR 12[edi],eax ; *r=eax - mov esi,edx ; c=edx - - add ebx,16 - add edi,16 - - dec ebp - jz $L266 - jmp $L593 -$L266: - mov ebp,DWORD PTR 28[esp] ; num - and ebp,3 - jz $L601 - - ; Round one - mov eax,DWORD PTR [ebx] ; edx:eax= w * *a - mul ecx - add eax,esi ; edx:eax+=c - adc edx,0 - mov DWORD PTR [edi],eax ; *r=eax - mov esi,edx ; c=edx - dec ebp - jz $L601 - ; Round two - mov eax,DWORD PTR 4[ebx] ; edx:eax= w * *a - mul ecx - add eax,esi ; edx:eax+=c - adc edx,0 - mov DWORD PTR 4[edi],eax ; *r=eax - mov esi,edx ; c=edx - dec ebp - jz $L601 - ; Round three - mov eax,DWORD PTR 8[ebx] ; edx:eax= w * *a - mul ecx - add eax,esi ; edx:eax+=c - adc edx,0 - mov DWORD PTR 8[edi],eax ; *r=eax - mov esi,edx ; c=edx - -$L601: - mov eax,esi - pop edi - pop esi - pop ebx - pop ebp - ret -_bn_mul_word ENDP -_TEXT ENDS -PUBLIC _bn_sqr_words -_TEXT SEGMENT -_bn_sqr_words PROC NEAR - push ebx - push esi - push edi - mov esi,DWORD PTR 16[esp] ; r - mov edi,DWORD PTR 20[esp] ; a - mov ebx,DWORD PTR 24[esp] ; num - - shr ebx,2 ; num/4 - jz $L111 -$L640: - ; Round 1 - mov eax, DWORD PTR [edi] - mul eax ; *a * *a - mov DWORD PTR [esi],eax - mov DWORD PTR 4[esi],edx - ; Round 2 - mov eax, DWORD PTR 4[edi] - mul eax ; *a * *a - mov DWORD PTR 8[esi],eax - mov DWORD PTR 12[esi],edx - ; Round 3 - mov eax, DWORD PTR 8[edi] - mul eax ; *a * *a - mov DWORD PTR 16[esi],eax - mov DWORD PTR 20[esi],edx - ; Round 4 - mov eax, DWORD PTR 12[edi] - mul eax ; *a * *a - mov DWORD PTR 24[esi],eax - mov DWORD PTR 28[esi],edx - - add edi,16 - add esi,32 - - dec ebx - jz $L111 - jmp $L640 -$L111: - mov ebx,DWORD PTR 24[esp] ; num - and ebx,3 ; num%3 - jz $L645 - - ; Round 1 - mov eax, DWORD PTR [edi] - mul eax ; *a * *a - mov DWORD PTR [esi],eax - mov DWORD PTR 4[esi],edx - dec ebx - jz $L645 - ; Round 2 - mov eax, DWORD PTR 4[edi] - mul eax ; *a * *a - mov DWORD PTR 8[esi],eax - mov DWORD PTR 12[esi],edx - dec ebx - jz $L645 - ; Round 3 - mov eax, DWORD PTR 8[edi] - mul eax ; *a * *a - mov DWORD PTR 16[esi],eax - mov DWORD PTR 20[esi],edx - -$L645: - pop edi - pop esi - pop ebx - ret -_bn_sqr_words ENDP -_TEXT ENDS -PUBLIC _bn_div64 -_TEXT SEGMENT -_bn_div64 PROC NEAR - mov edx, DWORD PTR 4[esp] - mov eax, DWORD PTR 8[esp] - div DWORD PTR 12[esp] - ret -_bn_div64 ENDP -_TEXT ENDS -END diff --git a/crypto/bn/asm/x86nt32.uu b/crypto/bn/asm/x86nt32.uu deleted file mode 100644 index 9920798..0000000 --- a/crypto/bn/asm/x86nt32.uu +++ /dev/null @@ -1,22 +0,0 @@ -begin 640 x86nt32.obj -M3`$"`/H&DC-6`@``"P`````````N=&5X=```````````````\@$``&0````` -M```````````````@`#!@+F1A=&$```#R`0````````````!6`@`````````` -M````````0``PP%535E>+?"04BUPD&(M,)"`S]HML)!S![0)T7(L#]^$#!X/2 -M``/&@](`B0>+\HM#!/?A`T<$@](``\:#T@")1P2+\HM#"/?A`T<(@](``\:# -MT@")1PB+\HM##/?A`T<,@](``\:#T@")1PR+\H/#$(/'$$UT`NNDBVPD'(/E -M`W1"BP/WX0,'@](``\:#T@")!XOR370MBT,$]^$#1P2#T@`#QH/2`(E'!(OR -M3705BT,(]^$#1PB#T@`#QH/2`(E'"(ORB\9?7EM=PU535E>+?"04BUPD&(ML -M)!R+3"0@,_;![0)T18L#]^$#QH/2`(D'B_*+0P3WX0/&@](`B4<$B_*+0PCW -MX0/&@](`B4<(B_*+0PSWX0/&@](`B4<,B_*#PQ"#QQ!-=`+KNXML)!R#Y0-T -M,8L#]^$#QH/2`(D'B_)-="&+0P3WX0/&@](`B4<$B_)-=`^+0PCWX0/&@](` -MB4<(B_*+QE]>6UW#4U97BW0D$(M\)!2+7"08P>L"=#6+!_?@B0:)5@2+1P3W -MX(E&"(E6#(M'"/?@B480B584BT<,]^")1AB)5AR#QQ"#QB!+=`+KRXM<)!B# -MXP-T)8L']^")!HE6!$MT&8M'!/?@B48(B58,2W0+BT<(]^")1A")5A1?7EO# -MBU0D!(M$)`CW="0,PRYF:6QE`````````/[_``!G`BY<8W)Y<'1O7&)N7&%S -M;5QX.#9N=#,R+F%S;0```````````"YT97AT``````````$````#`?(!```` -M`````````````````"YD871A``````````(````#`0`````````````````` -M```````````$``````````$`(``"```````5````R0````$`(``"```````B -M````:@$```$`(``"```````P````Y0$```$`(``"`#H```!?8FY?;75L7V%D -L9%]W;W)D`%]B;E]M=6Q?=V]R9`!?8FY?<W%R7W=O<F1S`%]B;E]D:78V-``` -` -end diff --git a/crypto/bn/asm/x86w16.uu b/crypto/bn/asm/x86w16.uu deleted file mode 100644 index 89c5e14..0000000 --- a/crypto/bn/asm/x86w16.uu +++ /dev/null @@ -1,20 +0,0 @@ -begin 640 x86w16.obj -M@!P`&BY<8W)Y<'1O7&)N7&%S;5QX.#9W,38N87-MQY8U```$7T)34P5?1$%4 -M009$1U)/55`&1E]415A4!4-/3E-4`T)34P5#3TY35`1$051!!$-/1$5EF`<` -M2/`!!0H!&)@'`$@```,)`0R8!P!(```&"`$*F`<`2````@<!#YH(``3_`O\# -M_P14D$4```$-7V)N7W-Q<E]W;W)D<U4!``E?8FY?9&EV-C3B`0`07V)N7VUU -M;%]A9&1?=V]R9`````Q?8FY?;75L7W=O<F3<``#`B`0``*(!T:#T`0$``%53 -M5E<>!HOL,_:+?A".7A*+7A2.1A:+3AJ+;AC1[='M=&"+P2;W)P,%@](`$\:# -MT@")!8ORB\$F]V<"`T4"@](`$\:#T@")10*+\HO!)O=G!`-%!(/2`!/&@](` -MB44$B_*+P2;W9P8#10:#T@`3QH/2`(E%!HOR@\,(@\<(370"ZZ"+[(MN&(/E -M`TUX18O!)O<G`P6#T@`3QH/2`(D%B_)->"^+P2;W9P(#10*#T@`3QH/2`(E% -M`HOR37@6B\$F]V<$`T4$@](`$\:#T@")102+\HO&!Q]?7EM=RY!54U97'@8S -M]HOLBWX0CEX2BUX4CD86BTX:BVX8B\$F]R<#QH/2`(D%B_)-=$*+P2;W9P(# -MQH/2`(E%`HOR370OB\$F]V<$`\:#T@")102+\DUT'(O!)O=G!@/&@](`B44& -MB_)-=`F#PPB#QPCKKI"+Q@<?7UY;7<N055-65QX&B^R+=A".7A*+?A2.1A:+ -M7AB+Z]'KT>MT.2:+!??@B02)5`(FBT4"]^")1`2)5`8FBT4$]^")1`B)5`HF -MBT4&]^")1`R)5`Z#QPB#QA!+=`+KQX/E`TUX*":+!??@B02)5`)->!LFBT4" -M]^")1`2)5`9->`PFBT4$]^")1`B)5`H''U]>6UW+58OLBU8&BT8(]W8*7<NZ -%B@(``'0` -` -end diff --git a/crypto/bn/asm/x86w32.uu b/crypto/bn/asm/x86w32.uu deleted file mode 100644 index edcd84e..0000000 --- a/crypto/bn/asm/x86w32.uu +++ /dev/null @@ -1,23 +0,0 @@ -begin 640 x86w32.obj -M@!P`&BY<8W)Y<'1O7&)N7&%S;5QX.#9W,S(N87-MR98U```$7T)34P5?1$%4 -M009$1U)/55`&1E]415A4!4-/3E-4`T)34P5#3TY35`1$051!!$-/1$5EF`<` -M2(`"!0H!AY@'`$@```,)`0R8!P!(```&"`$*F`<`2````@<!#YH(``3_`O\# -M_P14D$4```$-7V)N7W-Q<E]W;W)D<[\!``E?8FY?9&EV-C1H`@`07V)N7VUU -M;%]A9&1?=V]R9`````Q?8FY?;75L7W=O<F0B`0"(B`0``*(!T:"$`@$``%53 -M9E97'@:+[&8S]HM^$HY>%(M>%HY&&&:+3AR+;AK1[='M#X2``&:+P68F]R=F -M`P5F@](`9A/&9H/2`&:)!6:+\F:+P68F]V<$9@-%!&:#T@!F$\9F@](`9HE% -M!&:+\F:+P68F]V<(9@-%"&:#T@!F$\9F@](`9HE%"&:+\F:+P68F]V<,9@-% -M#&:#T@!F$\9F@](`9HE%#&:+\H/#$(/'$$UT`NN`B^R+;AJ#Y0-->%UFB\%F -M)O<G9@,%9H/2`&83QF:#T@!FB05FB_)->#]FB\%F)O=G!&8#101F@](`9A/& -M9H/2`&:)101FB_)->!YFB\%F)O=G"&8#10AF@](`9A/&9H/2`&:)10AFB_)F -MB\9FB]9FP>H0!Q]?9EY;7<N055-F5E<>!F8S]HOLBWX2CEX4BUX6CD889HM. -M'(MN&F:+P68F]R=F`\9F@](`9HD%9HOR37149HO!9B;W9P1F`\9F@](`9HE% -M!&:+\DUT.V:+P68F]V<(9@/&9H/2`&:)10AFB_)-=")FB\%F)O=G#&8#QF:# -MT@!FB44,9HOR370)@\,0@\<0ZY:09HO&9HO69L'J$`<?7V9>6UW+D%535E<> -M!HOLBW80CEX2BWX4CD86BUX8B^O1Z]'K=$EF)HL%9O?@9HD$9HE4!&8FBT4$ -M9O?@9HE$"&:)5`QF)HM%"&;WX&:)1!!FB5049B:+10QF]^!FB4089HE4'(/' -M$(/&($MT`NNW@^4#37@T9B:+!6;WX&:)!&:)5`1->"-F)HM%!&;WX&:)1`AF -MB50,37@09B:+10AF]^!FB4009HE4%`<?7UY;7<M5B^QFBU8&9HM&"F;W=@YF -.B]!FP>H07<O`B@(``'0` -` -end diff --git a/crypto/bn/bn_bld.c b/crypto/bn/bn_bld.c deleted file mode 100644 index 966db43..0000000 --- a/crypto/bn/bn_bld.c +++ /dev/null @@ -1,144 +0,0 @@ -/* crypto/bn/bn_bld.c */ -/* 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.] - */ - -#include <stdio.h> -#include "cryptlib.h" -#include "bn_lcl.h" - -BN_BL_CTX *BN_BL_CTX_new() - { - BN_BL_CTX *ret; - - if ((ret=(BN_BL_CTX *)Malloc(sizeof(BN_BL_CTX))) == NULL) - { - BNerr(BN_F_BN_BL_CTX_NEW,ERR_R_MALLOC_FAILURE); - return(NULL); - } - if ((ret->num=BN_new()) == NULL) goto err; - if ((ret->mod=BN_new()) == NULL) goto err; - ret->inum=NULL; - ret->count=16; - ret->count=1; - return(ret); - } - -int BN_BL_CTX_Init(a,mod) -BN_BL_CTX *a; -BIGNUM *mod; - { - int i; - BN_CTX *ctx; - - if ((ctx=BN_CTX_new()) == NULL) goto m_err; - - if (BN_copy(a->mod,mod) == NULL) goto err; - i=BN_num_bits(mod); - if (!BN_rand(a->num,i,1,0)) goto err; - - if (a->inum != NULL) BN_clear_free(a->inum); - a->inum=BN_mod_inverse(a->num,a->mod,ctx) - ret->count=16; - return(1); -m_err: - BNerr(BN_F_BN_BL_CTX_INIT,ERR_R_MALLOC_FAILURE); -err: - return(0); - } - -BN_BL_CTX *BN_BL_CTX_Update(a) -BN_BL_CTX *a; - { - BN_CTX *ctx; - BN_BL_CTX *new; - - if (--a->count > 0) - return(1); - - new=BN_BL_CTX_new(); - /* set/get lock */ - if ((ctx=BN_CTX_new()) == NULL) - return(NULL); - new->inum=BN_new(); - - BN_mod_mul(new->num,a->num,a->num,a->mod,ctx); - BN_mod_mul(new->inum,a->inum,a->inum,a->mod,ctx); - BN_copy(new->mod,a->mod); - BN_BL_CTX_free(a); - return(new); - } - -void BN_BL_CTX_free(a) -BN_BL_CTX *a; - { - int i; - - if (a == NULL) return; - - i=CRYPTO_add(&a->references,-1,CRYPTO_LOCK_RSA); - if (i > 0) return; -#ifdef REF_CHECK - if (i < 0) - { - fprintf(stderr,"BN_BL_CTX_free, bad reference count\n"); - abort(); - } -#endif - if (a->num == NULL) BN_clear_free(a->num); - if (a->inum == NULL) BN_clear_free(a->inum); - if (a->mod == NULL) BN_clear_free(a->mod); - } diff --git a/crypto/bn/stuff/bn_knuth.c b/crypto/bn/stuff/bn_knuth.c deleted file mode 100644 index 9a3f413..0000000 --- a/crypto/bn/stuff/bn_knuth.c +++ /dev/null @@ -1,378 +0,0 @@ -/* crypto/bn/bn_knuth.c */ - -#include <stdio.h> -#include "cryptlib.h" -#include "bn.h" - -/* This is just a test implementation, it has not been modified for - * speed and it still has memory leaks. */ - -int BN_mask_bits(BIGNUM *a,int n); - -#undef DEBUG -#define MAIN - -/* r must be different to a and b - * Toom-Cook multiplication algorithm, taken from - * The Art Of Computer Programming, Volume 2, Donald Knuth - */ - -#define CODE1 ((BIGNUM *)0x01) -#define CODE2 ((BIGNUM *)0x02) -#define CODE3 ((BIGNUM *)0x03) -#define MAXK (30+1) - -#define C3 3 -#define C4 4 -#define C5 5 -#define C6 6 -#define C7 7 -#define C8 8 -#define C9 9 -#define C10 10 -#define DONE 11 - -int new_total=0; -int Free_total=0; -int max=0,max_total=0; - -BIGNUM *LBN_new(void ); -BIGNUM *LBN_dup(BIGNUM *a); -void LBN_free(BIGNUM *a); - -int BN_mul_knuth(w, a, b) -BIGNUM *w; -BIGNUM *a; -BIGNUM *b; - { - int ret=1; - int i,j,n,an,bn,y,z; - BIGNUM *U[MAXK],*V[MAXK],*T[MAXK]; - BIGNUM *C[(MAXK*2*3)]; - BIGNUM *W[(MAXK*2)],*t1,*t2,*t3,*t4; - int Utos,Vtos,Ctos,Wtos,Ttos; - unsigned int k,Q,R; - unsigned int q[MAXK]; - unsigned int r[MAXK]; - int state; - - /* C1 */ - Utos=Vtos=Ctos=Wtos=Ttos=0; - k=1; - q[0]=q[1]=64; - r[0]=r[1]=4; - Q=6; - R=2; - - if (!bn_expand(w,BN_BITS2*2)) goto err; - an=BN_num_bits(a); - bn=BN_num_bits(b); - n=(an > bn)?an:bn; - while ((q[k-1]+q[k]) < n) - { - k++; - Q+=R; - i=R+1; - if ((i*i) <= Q) R=i; - q[k]=(1<<Q); - r[k]=(1<<R); - } -#ifdef DEBUG - printf("k ="); - for (i=0; i<=k; i++) printf("%7d",i); - printf("\nq[k]="); - for (i=0; i<=k; i++) printf("%7d",q[i]); - printf("\nr[k]="); - for (i=0; i<=k; i++) printf("%7d",r[i]); - printf("\n"); -#endif - - /* C2 */ - C[Ctos++]=CODE1; - if ((t1=LBN_dup(a)) == NULL) goto err; - C[Ctos++]=t1; - if ((t1=LBN_dup(b)) == NULL) goto err; - C[Ctos++]=t1; - - state=C3; - for (;;) - { -#ifdef DEBUG - printf("state=C%d, Ctos=%d Wtos=%d\n",state,Ctos,Wtos); -#endif - switch (state) - { - int lr,lq,lp; - case C3: - k--; - if (k == 0) - { - t1=C[--Ctos]; - t2=C[--Ctos]; -#ifdef DEBUG - printf("Ctos=%d poped %d\n",Ctos,2); -#endif - if ((t2->top == 0) || (t1->top == 0)) - w->top=0; - else - BN_mul(w,t1,t2); - - LBN_free(t1); /* FREE */ - LBN_free(t2); /* FREE */ - state=C10; - } - else - { - lr=r[k]; - lq=q[k]; - lp=q[k-1]+q[k]; - state=C4; - } - break; - case C4: - for (z=0; z<2; z++) /* do for u and v */ - { - /* break the item at C[Ctos-1] - * into lr+1 parts of lq bits each - * for j=0; j<=2r; j++ - */ - t1=C[--Ctos]; /* pop off u */ -#ifdef DEBUG - printf("Ctos=%d poped %d\n",Ctos,1); -#endif - if ((t2=LBN_dup(t1)) == NULL) goto err; - BN_mask_bits(t2,lq); - T[Ttos++]=t2; -#ifdef DEBUG - printf("C4 r=0 bits=%d\n",BN_num_bits(t2)); -#endif - for (i=1; i<=lr; i++) - { - if (!BN_rshift(t1,t1,lq)) goto err; - if ((t2=LBN_dup(t1)) == NULL) goto err; - BN_mask_bits(t2,lq); - T[Ttos++]=t2; -#ifdef DEBUG - printf("C4 r=%d bits=%d\n",i, - BN_num_bits(t2)); -#endif - } - LBN_free(t1); - - if ((t2=LBN_new()) == NULL) goto err; - if ((t3=LBN_new()) == NULL) goto err; - for (j=0; j<=2*lr; j++) - { - if ((t1=LBN_new()) == NULL) goto err; - - if (!BN_set_word(t3,j)) goto err; - for (i=lr; i>=0; i--) - { - if (!BN_mul(t2,t1,t3)) goto err; - if (!BN_add(t1,t2,T[i])) goto err; - } - /* t1 is U(j) */ - if (z == 0) - U[Utos++]=t1; - else - V[Vtos++]=t1; - } - LBN_free(t2); - LBN_free(t3); - while (Ttos) LBN_free(T[--Ttos]); - } -#ifdef DEBUG - for (i=0; i<Utos; i++) - printf("U[%2d]=%4d bits\n",i,BN_num_bits(U[i])); - for (i=0; i<Vtos; i++) - printf("V[%2d]=%4d bits\n",i,BN_num_bits(V[i])); -#endif - /* C5 */ -#ifdef DEBUG - printf("PUSH CODE2 and %d CODE3 onto stack\n",2*lr); -#endif - C[Ctos++]=CODE2; - for (i=2*lr; i>0; i--) - { - C[Ctos++]=V[i]; - C[Ctos++]=U[i]; - C[Ctos++]=CODE3; - } - C[Ctos++]=V[0]; - C[Ctos++]=U[0]; -#ifdef DEBUG - printf("Ctos=%d pushed %d\n",Ctos,2*lr*3+3); -#endif - Vtos=Utos=0; - state=C3; - break; - case C6: - if ((t1=LBN_dup(w)) == NULL) goto err; - W[Wtos++]=t1; -#ifdef DEBUG - printf("put %d bit number onto w\n",BN_num_bits(t1)); -#endif - state=C3; - break; - case C7: - lr=r[k]; - lq=q[k]; - lp=q[k]+q[k-1]; - z=Wtos-2*lr-1; - for (j=1; j<=2*lr; j++) - { - for (i=2*lr; i>=j; i--) - { - if (!BN_sub(W[z+i],W[z+i],W[z+i-1])) goto err; - BN_div_word(W[z+i],j); - } - } - state=C8; - break; - case C8: - y=2*lr-1; - if ((t1=LBN_new()) == NULL) goto err; - if ((t3=LBN_new()) == NULL) goto err; - - for (j=y; j>0; j--) - { - if (!BN_set_word(t3,j)) goto err; - for (i=j; i<=y; i++) - { - if (!BN_mul(t1,W[z+i+1],t3)) goto err; - if (!BN_sub(W[z+i],W[z+i],t1)) goto err; - } - } - LBN_free(t1); - LBN_free(t3); - state=C9; - break; - case C9: - BN_zero(w); -#ifdef DEBUG - printf("lq=%d\n",lq); -#endif - for (i=lr*2; i>=0; i--) - { - BN_lshift(w,w,lq); - BN_add(w,w,W[z+i]); - } - for (i=0; i<=lr*2; i++) - LBN_free(W[--Wtos]); - state=C10; - break; - case C10: - k++; - t1=C[--Ctos]; -#ifdef DEBUG - printf("Ctos=%d poped %d\n",Ctos,1); - printf("code= CODE%d\n",t1); -#endif - if (t1 == CODE3) - state=C6; - else if (t1 == CODE2) - { - if ((t2=LBN_dup(w)) == NULL) goto err; - W[Wtos++]=t2; - state=C7; - } - else if (t1 == CODE1) - { - state=DONE; - } - else - { - printf("BAD ERROR\n"); - goto err; - } - break; - default: - printf("bad state\n"); - goto err; - break; - } - if (state == DONE) break; - } - ret=1; -err: - if (ret == 0) printf("ERROR\n"); - return(ret); - } - -#ifdef MAIN -main() - { - BIGNUM *a,*b,*r; - int i; - - if ((a=LBN_new()) == NULL) goto err; - if ((b=LBN_new()) == NULL) goto err; - if ((r=LBN_new()) == NULL) goto err; - - if (!BN_rand(a,1024*2,0,0)) goto err; - if (!BN_rand(b,1024*2,0,0)) goto err; - - for (i=0; i<10; i++) - { - if (!BN_mul_knuth(r,a,b)) goto err; /**/ - /*if (!BN_mul(r,a,b)) goto err; /**/ - } -BN_print(stdout,a); printf(" * "); -BN_print(stdout,b); printf(" =\n"); -BN_print(stdout,r); printf("\n"); - -printf("BN_new() =%d\nBN_free()=%d max=%d\n",new_total,Free_total,max); - - - exit(0); -err: - ERR_load_crypto_strings(); - ERR_print_errors(stderr); - exit(1); - } -#endif - -int BN_mask_bits(a,n) -BIGNUM *a; -int n; - { - int b,w; - - w=n/BN_BITS2; - b=n%BN_BITS2; - if (w >= a->top) return(0); - if (b == 0) - a->top=w; - else - { - a->top=w+1; - a->d[w]&= ~(BN_MASK2<<b); - } - return(1); - } - -BIGNUM *LBN_dup(a) -BIGNUM *a; - { - new_total++; - max_total++; - if (max_total > max) max=max_total; - return(BN_dup(a)); - } - -BIGNUM *LBN_new() - { - new_total++; - max_total++; - if (max_total > max) max=max_total; - return(BN_new()); - } - -void LBN_free(a) -BIGNUM *a; - { - max_total--; - if (max_total > max) max=max_total; - Free_total++; - BN_free(a); - } diff --git a/crypto/bn/stuff/div.c b/crypto/bn/stuff/div.c deleted file mode 100644 index 3d6e086..0000000 --- a/crypto/bn/stuff/div.c +++ /dev/null @@ -1,340 +0,0 @@ -/* crypto/bn/div.c */ - -#include <stdio.h> -#include "cryptlib.h" -#include "bn.h" - -BN_ULONG bn_div_2word(); - -int BN_div2(dv, rm, num, div,ctx) -BIGNUM *dv; -BIGNUM *rm; -BIGNUM *num; -BIGNUM *div; -BN_CTX *ctx; - { - int norm_shift,i,j,nm,nd,loop; - BIGNUM *tmp,wnum,*snum,*sdiv,*res; - BN_ULONG *resp,*wnump; - BN_ULONG d0,d1; - int num_n,div_n; - -#ifdef DEBUG -BN_print(stdout,num); printf(" number\n"); -BN_print(stdout,div); printf(" divisor\n"); -#endif - if (BN_is_zero(num)) - { - BNerr(BN_F_BN_DIV,BN_R_DIV_BY_ZERO); - return(0); - } - - if (BN_cmp(num,div) < 0) - { - if (rm != NULL) - { if (BN_copy(rm,num) == NULL) return(0); } - if (dv != NULL) BN_zero(dv); - return(1); - } - - tmp=ctx->bn[ctx->tos]; - snum=ctx->bn[ctx->tos+1]; - sdiv=ctx->bn[ctx->tos+2]; - if (dv == NULL) - res=ctx->bn[ctx->tos+3]; - else res=dv; - - /* First we normalise the numbers */ - norm_shift=BN_BITS2-((BN_num_bits(div))%BN_BITS2); - BN_lshift(sdiv,div,norm_shift); - norm_shift+=BN_BITS2; - BN_lshift(snum,num,norm_shift); - div_n=sdiv->top; - num_n=snum->top; - loop=num_n-div_n; -#ifdef DEBUG -BN_print(stdout,snum); printf(" shifted num, forget last word\n"); -BN_print(stdout,sdiv); printf(" shifted div\n"); -#endif - - /* Lets setup a 'win'dow into snum - * This is the part that corresponds to the current - * 'area' being divided */ - wnum.d= &(snum->d[loop]); - wnum.top= div_n; - wnum.max= snum->max; /* a bit of a lie */ - wnum.neg= 0; - - /* Get the top 2 words of sdiv */ - i=sdiv->top; - d0=sdiv->d[div_n-1]; - d1=sdiv->d[div_n-2]; - - /* pointer to the 'top' of snum */ - wnump= &(snum->d[num_n-1]); - - /* Setup to 'res' */ - res->neg=0; - res->top=loop; - resp= &(res->d[loop-1]); - bn_expand(res,(loop+1)*BN_BITS2); - - /* space for temp */ - bn_expand(tmp,(div_n+1)*BN_BITS2); - -#ifdef DEBUG -printf("wnum="); BN_print(stdout,&wnum); printf(" initial sub check\n"); -printf("div ="); BN_print(stdout,sdiv); printf(" loop=%d\n",loop); -#endif - if (BN_cmp(&wnum,sdiv) >= 0) - { - BN_sub(&wnum,&wnum,sdiv); - *resp=1; - res->d[res->top-1]=1; - } - else - res->top--; - resp--; -#ifdef DEBUG -BN_print(stdout,res); printf(" initial result\n"); -BN_print(stdout,&wnum); printf(" wnum\n"); -#endif - - for (i=0; i<loop-1; i++) - { - BN_ULONG q,n0; - BN_ULLONG t1,t2,t3; - BN_ULONG l0; - - wnum.d--; - wnum.top++; - -#ifdef DEBUG -BN_print(stderr,&wnum); printf(" to divide\n"); -#endif - - q=0; - n0=wnump[0]; - t1=((BN_ULLONG)n0<<BN_BITS2)|wnump[-1]; - if (n0 == d0) - q=BN_MASK2; - else - { - t2=(t1/d0); - q=(t2&BN_MASK2); -#ifdef DEBUG -printf("t1=%08X / d0=%08X = %X (%X)\n",t1,d0,q,t2); -#endif - } - for (;;) - { - t2=(BN_ULLONG)d1*q; - t3=t1-(BN_ULLONG)q*d0; -#ifdef DEBUG -printf("d1*q= %X n01-q*d0 = %X\n",t2,t3); -#endif - if ((t3>>BN_BITS2) || - (t2 <= ((t3<<BN_BITS2)+wnump[-2]))) - break; -#ifdef DEBUG -printf("reduce q\n"); -#endif - q--; - } - l0=bn_mul_word(tmp->d,sdiv->d,div_n,q); - if (l0) - tmp->d[div_n]=l0; - else - tmp->d[div_n]=0; - for (j=div_n+1; j>0; j--) - if (tmp->d[j-1]) break; - tmp->top=j; - -#ifdef DEBUG -printf("q=%08X\n",q); -BN_print(stdout,&wnum); printf(" number\n"); -BN_print(stdout,tmp); printf(" subtract\n"); - -BN_print(stdout,snum); printf(" shifted number before\n"); -BN_print(stdout,&wnum); printf(" wnum before\n"); -#endif - j=wnum.top; - BN_sub(&wnum,&wnum,tmp); - snum->top=snum->top+wnum.top-j; - -#ifdef DEBUG -BN_print(stdout,&wnum); printf(" wnum after\n"); -BN_print(stdout,snum); printf(" shifted number after\n"); -#endif - - if (wnum.neg) - { - q--; - j=wnum.top; - BN_add(&wnum,&wnum,sdiv); - snum->top+=wnum.top-j; - fprintf(stderr,"addback\n"); -#ifdef DEBUG -BN_print(stdout,snum); printf("after addback************************:\n"); -#endif - } - *(resp--)=q; -#ifdef DEBUG -BN_print(stdout,res); printf(" result\n"); -#endif - wnump--; - } - if (rm != NULL) - BN_rshift(rm,snum,norm_shift); - return(1); - } - -main() - { - BIGNUM *a,*b,*c,*d; - BIGNUM *cc,*dd; - BN_CTX *ctx; - int i,x; - - a=BN_new(); - b=BN_new(); - c=BN_new(); - d=BN_new(); - cc=BN_new(); - dd=BN_new(); - ctx=BN_CTX_new(); - -for (i=0; i<10240; i++) - { - BN_rand(a,80,0,0); - BN_rand(b,60,0,0); - - BN_div2(d,c,a,b,ctx); - BN_div(dd,cc,a,b,ctx); - if ((BN_cmp(d,dd) != 0) || (BN_cmp(c,cc) != 0)) - { - BN_print(stderr,a); fprintf(stderr," / "); - BN_print(stderr,b); fprintf(stderr," d="); - BN_print(stderr,d); fprintf(stderr," r= "); - BN_print(stderr,c); fprintf(stderr,"\nd="); - BN_print(stderr,dd); fprintf(stderr," r= "); - BN_print(stderr,cc); fprintf(stderr,"\n"); - } - - } - -#ifdef undef -/* - BN_rand(a,600,0,0); - BN_rand(b,400,0,0); - for (i=0; i<2000000; i++) - { - BN_div2(d,c,a,b,ctx); - } -*/ -/* for (i=0;;) */ -/* for (i=0; i<0xffffffff; i++) - { - BN_ULONG rr,r,a,b,c; - BN_ULLONG l; - - a=rand()&BN_MASK2; - b=rand()&BN_MASK2; - for (;;) - { - c=rand()&BN_MASK2; - if (c) break; - } -/* for (x=1; x<256*256; x++) */ - { - c=x; - a=i>>8; - b=i&0xff; - a&= ~(0xFFFFFF<<(BN_num_bits_word(c))); - - r=bn_div_2word(a,b,c); - - rr=(BN_ULONG)((((BN_ULLONG)a<<BN_BITS2)|b)/c); - - if ((i & 0xfffff) == 0) fprintf(stderr,"%d\n",i,r,rr); -/*if (x == 255) - fprintf(stderr,"%6d/%3d = %4d %4d\n",(a<<8)|b,c,r,rr); */ - if (rr != r) - { - fprintf(stderr,"%8d %02X%02X / %02X = %02X %02X\n", - i,a,b,c,rr,r); - abort(); - } - } - } -#endif - } - -/* Divide h-l by d and return the result. */ -BN_ULONG bn_div_2word(l,h,d) -BN_ULONG l,h,d; - { - BN_ULONG dh,dl,q,ret=0,th,tl,t,top; - int i,count=2; - - if (d == 0) return(-1); - - i=BN_num_bits_word(d); - if ((i != BN_BITS2) && (h > 1<<i)) - { - fprintf(stderr,"Division would overflow\n"); - abort(); - } - i=BN_BITS2-i; - if (h >= d) h-=d; - - if (i) - { - d<<=i; - h=(h<<i)|(l>>(BN_BITS2-i)); - l<<=i; - } - dh=(d&BN_MASK2h)>>BN_BITS4; - dl=(d&BN_MASK2l); - for (;;) - { - if ((h>>BN_BITS4) == dh) - q=BN_MASK2l; - else - q=h/dh; - - for (;;) - { - t=(h-q*dh); - if ((t&BN_MASK2h) || - ((dl*q) <= ( - (t<<BN_BITS4)+ - ((l&BN_MASK2h)>>BN_BITS4)))) - break; - q--; - } - th=q*dh; - tl=q*dl; - t=(tl>>BN_BITS4); - tl=(tl<<BN_BITS4)&BN_MASK2h; - th+=t; - - if (l < tl) th++; - l-=tl; - if (h < th) - { - fprintf(stderr,"add back\n"); - h+=d; - q--; - } - h-=th; - - if (--count == 0) break; - - ret=q<<BN_BITS4; - h=((h<<BN_BITS4)|(l>>BN_BITS4))&BN_MASK2; - l=(l&BN_MASK2l)<<BN_BITS4; - } - ret|=q; - return(ret); - } diff --git a/crypto/bn/stuff/mont.doc b/crypto/bn/stuff/mont.doc deleted file mode 100644 index 55d1d79..0000000 --- a/crypto/bn/stuff/mont.doc +++ /dev/null @@ -1,17 +0,0 @@ -All numbers (a) are stored aR mod N (except abRR) - -RR = REDC(R*R) /* RR mod N */ - - -convert a -> aR -convert b -> bR - - { - abRR = aR * bR - abR = REDC(abRR); /* mod N */ - } - -ab = REDC(abR); /* mod N */ - - -REDC strips off a multiplicaion by R mod N diff --git a/crypto/bn/stuff/wei_mulw.c b/crypto/bn/stuff/wei_mulw.c deleted file mode 100644 index 7f8a1e5..0000000 --- a/crypto/bn/stuff/wei_mulw.c +++ /dev/null @@ -1,410 +0,0 @@ -/* crypto/bn/wei_mulw.c */ - -#include <stdio.h> -#include "cryptlib.h" -#include "bn.h" -#include "bn_lcl.h" - -BN_ULONG bn_add_word(BN_ULONG *a,BN_ULONG c,int num); -BN_ULONG bn_add_words(BN_ULONG *ret,BN_ULONG *a,BN_ULONG *b,int num); -BN_ULONG bn_sub_words(BN_ULONG *ret,BN_ULONG *a,BN_ULONG *b,int num); - -void BN_mul_4words(BN_ULONG *ret,BN_ULONG a0,BN_ULONG a1, - BN_ULONG b0,BN_ULONG b1); - -void pr(a,n,s) -BN_ULONG *a; -int n; - { - while (n--) - fprintf(stdout,"%02X",a[n]); - fprintf(stdout,"%s",s); - } - - -BN_ULONG bn_add_word(a,w,num) -BN_ULONG *a; -BN_ULONG w; -int num; - { - BN_ULONG t; - -#ifdef DEBUG -{ BN_ULONG *aa=a; int i; for (i=num; i>0; i--) fprintf(stdout,"%02X",aa[i-1]); -fprintf(stdout," + %X - ",w); i=num; -#endif - -loop: - t= *a; - t=(t+w)&BN_MASK2; - *(a++)=t; - w=(t < w); - if (w && --num) goto loop; - -#ifdef DEBUG -for (; i>0; i--) fprintf(stdout,"%02X",aa[i-1]); -fprintf(stdout,"\n"); -} -#endif - - return(w); - } - -BN_ULONG bn_add_words(r,a,b,num) -BN_ULONG *r; -BN_ULONG *a; -BN_ULONG *b; -int num; - { -#if defined(BN_LLONG) - BN_ULLONG t; - BN_ULONG c=0; - int i; - - if (num&1) abort(); - - for (i=0; i<num; i+=2) - { - t=(BN_ULLONG)a[i]+b[i]+c; - r[i+0]=L(t); - t=(BN_ULLONG) H(t)+a[i+1]+b[i+1]; - r[i+1]=L(t); - c=H(t); - } - return(c); -#else - BN_ULONG c=0,t1,t2; - - for ( ; num; num--) - { - t1= *(a++); - t2= *(b++); - - if (c) - { - c=(t2 >= ((~t1)&BN_MASK2)); - (*r++)=(t1+t2+1)&BN_MASK2; - } - else - { - t2=(t1+t2)&BN_MASK2; - c=(t2 < t1); - (*r++)=t2; - } - } - return(c); -#endif - } - -BN_ULONG bn_sub_words(r,a,b,num) -BN_ULONG *r; -BN_ULONG *a; -BN_ULONG *b; -int num; - { -#if defined(BN_LLONG) - BN_ULLONG t; - BN_ULONG c=0; - int i; - - if (num&1) abort(); - - for (i=0; i<num; i+=2) - { - t=(BN_ULLONG)a[i]-b[i]-c; - r[i+0]=L(t); - t=(BN_ULLONG)a[i+1]-b[i+1]-(0-H(t))&BN_MASK2; - r[i+1]=L(t); - c=H(t); - } - return(c); -#else - BN_ULONG c=0,t1,t2; - - for ( ; num; num--) - { - t1= *(a++); - t2= *(b++); - - if (c) - { - c=(t1 <= t2); - t1=(t1-t2-1); - } - else - { - c=(t1 < t2); - t1=(t1-t2); - } - (*r++)=t1&BN_MASK2; - } - return(c); -#endif - } - - -/* ret[3,2,1,0] = a1,a0 * b1,b0 */ -void BN_mul_4words(ret,a0,a1,b0,b1) -BN_ULONG *ret; -BN_ULONG a0,a1,b0,b1; - { - BN_ULONG s,u; - BN_ULLONG fix,a0b0,a1b1,tmp; - - if (a1 >= a0) - { - s=(a1-a0); - u=(b0-b1); - fix=(BN_ULLONG)s*u; - if (b0 >= b1) s=0; - } - else - { - BN_ULONG u; - - if (b0 > b1) - { - s=(b0-b1); - u=(a1-a0); - fix=(BN_ULLONG)s*u; - } - else - { - u=(a0-a1); - s=(b1-b0); - fix=(BN_ULLONG)s*u; - s=0; - } - } - - a0b0=(BN_ULLONG)a0*b0; - ret[0]=L(a0b0); - - a1b1=(BN_ULLONG)a1*b1; - tmp=(BN_ULLONG) H(a0b0) + L(a0b0) + L(fix) + L(a1b1); - ret[1]=L(tmp); - - tmp=(BN_ULLONG) a1b1 + H(tmp) + H(a0b0) + H(fix) + H(a1b1) - s; - ret[2]=L(tmp); - ret[3]=H(tmp); - } - -/* ret[3,2,1,0] += a1,a0 * b1,b0 */ -BN_ULONG BN_mul_add_4words(ret,a0,a1,b0,b1) -BN_ULONG *ret; -BN_ULONG a0,a1,b0,b1; - { - BN_ULONG s,u; - BN_ULLONG fix,a0b0,a1b1,tmp; - -#ifdef DEBUG -fprintf(stdout,"%02X%02X%02X%02X",ret[3],ret[2],ret[1],ret[0]); -fprintf(stdout," + ( %02X%02X * %02X%02X ) - ",a1,a0,b1,b0); -#endif - if (a1 >= a0) - { - s=(a1-a0); - u=(b0-b1); - fix=(BN_ULLONG)s*u; - if (b0 >= b1) s=0; - } - else - { - if (b0 > b1) - { - s=(b0-b1); - u=(a1-a0); - fix=(BN_ULLONG)s*u; - } - else - { - u=(a0-a1); - s=(b1-b0); - fix=(BN_ULLONG)s*u; - s=0; - } - } - - a0b0=(BN_ULLONG)a0*b0; - tmp=a0b0+ret[0]; - ret[0]=L(tmp); - - a1b1=(BN_ULLONG)a1*b1; - tmp=(BN_ULLONG) H(tmp) + L(a0b0) + L(fix) + L(a1b1) + ret[1]; - ret[1]=L(tmp); - - tmp=(BN_ULLONG) H(tmp) + L(a1b1) + H(a0b0) + - H(fix) + H(a1b1) -s + ret[2]; - ret[2]=L(tmp); - - tmp=(BN_ULLONG) H(tmp) + H(a1b1) + ret[3]; - ret[3]=L(tmp); -#ifdef DEBUG -fprintf(stdout,"%02X%02X%02X%02X%02X\n",H(tmp),ret[3],ret[2],ret[1],ret[0]); -#endif - return(H(tmp)); - } - -/* ret[3,2,1,0] += a1,a0 * a1,a0 */ -void BN_sqr_4words(ret,a0,a1) -BN_ULONG *ret; -BN_ULONG a0,a1; - { - BN_ULONG s,u; - BN_ULLONG tmp,tmp2; - - tmp=(BN_ULLONG)a0*a0; - ret[0]=L(tmp); - - tmp2=(BN_ULLONG)a0*a1; - tmp=(BN_ULLONG)H(tmp)+L(tmp2)*2; - ret[1]=L(tmp); - - tmp=(BN_ULLONG)a1*a1+H(tmp)+H(tmp2)*2; - ret[2]=L(tmp); - ret[3]=L(tmp); - } - -#define N0 (0) -#define N1 (half) -#define N2 (num) -#define N3 (num+half) - -#define word_cmp(r,a,b,num) \ - { \ - int n=num; \ -\ - (r)=0; \ - while (n--) \ - { \ - if ((a)[(n)] > (b)[(n)]) \ - { (r)=1; break; } \ - else if ((a)[(n)] < (b)[(n)]) \ - { (r)= -1; break; } \ - } \ - } - - -/* (a->top == b->top) && (a->top >= 2) && !(a->top & 1) */ -void bn_recursize_mul(r,t,a,b,num) -BN_ULONG *r,*t,*a,*b; -int num; - { - if ((num < 2) || (num&1)) - abort(); - -/* fprintf(stderr,"num=%d half=%d\n",num,num/2);*/ - if (num == 2) - BN_mul_4words(r,a[0],a[1],b[0],b[1]); - else if (num == 4) - { - BN_ULONG c,tmp; - - BN_mul_4words(&(r[0]),a[0],a[1],b[0],b[1]); - BN_mul_4words(&(r[4]),a[2],a[3],b[2],b[3]); - - c =BN_mul_add_4words(&(r[2]),a[0],a[1],b[2],b[3]); - c+=BN_mul_add_4words(&(r[2]),a[2],a[3],b[0],b[1]); - - bn_add_word(&(r[6]),c,2); - } - else - { - int half=num/2; - int carry,cmp_a,cmp_b; - - word_cmp(cmp_a,&(a[0]),&(a[half]),half); - word_cmp(cmp_b,&(b[0]),&(b[half]),half); - - switch (cmp_a*2+cmp_a+cmp_b) - { - case -4: - bn_sub_words(&(t[N0]),&(a[N1]),&(a[N0]),half); - bn_sub_words(&(t[N1]),&(b[N0]),&(b[N1]),half); - bn_recursize_mul(&(r[N1]),&(t[N2]), - &(t[N0]),&(t[N1]),half); - bn_sub_words(&(r[N2]),&(r[N2]),&(t[N0]),half); - carry= -1; - break; - case -2: - bn_sub_words(&(t[N0]),&(a[N1]),&(a[N0]),half); - bn_sub_words(&(t[N1]),&(b[N0]),&(b[N1]),half); - bn_recursize_mul(&(r[N1]),&(t[N2]), - &(t[N0]),&(t[N1]),half); - carry=0; - break; - case 2: - bn_sub_words(&(t[N0]),&(a[N0]),&(a[N1]),half); - bn_sub_words(&(t[N1]),&(b[N1]),&(b[N0]),half); - bn_recursize_mul(&(r[N1]),&(t[N2]), - &(t[N0]),&(t[N1]),half); - carry=0; - break; - case 4: - bn_sub_words(&(t[N0]),&(a[N1]),&(a[N0]),half); - bn_sub_words(&(t[N1]),&(b[N0]),&(b[N1]),half); - bn_recursize_mul(&(r[N1]),&(t[N2]), - &(t[N0]),&(t[N1]),half); - bn_sub_words(&(r[N2]),&(r[N2]),&(t[N1]),half); - carry= -1; - break; - default: - memset(&(r[N1]),0,sizeof(BN_ULONG)*num); - break; - } - - bn_recursize_mul(&(t[N0]),&(t[N2]),&(a[N0]),&(b[N0]),half); -#ifdef DEBUG - pr(a,half," * "); - pr(b,half," - "); - pr(t,num," - 0\n"); -#endif - memcpy(&(r[N0]),&(t[N0]),half*sizeof(BN_ULONG)); - if (bn_add_words(&(r[N1]),&(r[N1]),&(t[N1]),half)) - { bn_add_word(&(t[N1]),1,half); } - - carry+=bn_add_words(&(r[N1]),&(r[N1]),&(t[N0]),num); - - bn_recursize_mul(&(t[N0]),&(t[N2]),&(a[N1]),&(b[N1]),half); - - carry+=bn_add_words(&(r[N1]),&(r[N1]),&(t[N0]),num); - carry+=bn_add_words(&(r[N2]),&(r[N2]),&(t[N0]),half); - memcpy(&(r[N3]),&(t[N1]),half*sizeof(BN_ULONG)); - - bn_add_word(&(r[N3]),carry,half); - } - } - -main() - { - BIGNUM *a,*b,*r,*t; - int i,j; - - a=BN_new(); - b=BN_new(); - r=BN_new(); - t=BN_new(); - -#define BITS 1024 - bn_expand(r,BITS*2); - bn_expand(t,BITS*2); - fprintf(stdout,"obase=16\n"); - fprintf(stdout,"ibase=16\n"); - for (i=0; i<10; i++) - { - BN_rand(a,BITS,0,0); - BN_rand(b,BITS,0,0); - r->top=(BITS*2)/BN_BITS2; - memset(r->d,0,sizeof(r->top)*sizeof(BN_ULONG)); - memset(t->d,0,sizeof(r->top)*sizeof(BN_ULONG)); - for (j=0; j<1000; j++) - { - -/* BN_mul(r,a,b); /**/ - bn_recursize_mul(r->d,t->d,a->d,b->d,a->top); /**/ - } - BN_print(stdout,a); fprintf(stdout," * "); - BN_print(stdout,b); fprintf(stdout," - "); - BN_print(stdout,r); fprintf(stdout,"\n"); - } - } diff --git a/crypto/des/asm/c-win32.asm b/crypto/des/asm/c-win32.asm deleted file mode 100644 index b7460b8..0000000 --- a/crypto/des/asm/c-win32.asm +++ /dev/null @@ -1,929 +0,0 @@ - ; Don't even think of reading this code - ; It was automatically generated by crypt.pl - ; Which is a perl program used to generate the x86 assember for - ; any of elf, a.out, Win32, or Solaris - ; It can be found in SSLeay 0.6.5+ or in libdes 3.26+ - ; eric <eay@cryptsoft.com> - ; The inner loop instruction sequence and the IP/FP modifications - ; are from Svend Olaf Mikkelsen <svolaf@inet.uni-c.dk> - ; - TITLE dx86xxxx.asm - .386 -.model FLAT -_TEXT SEGMENT -PUBLIC _fcrypt_body -EXTRN _des_SPtrans:DWORD -_fcrypt_body PROC NEAR - push ebp - push ebx - push esi - push edi - ; - ; Load the 2 words - xor edi, edi - xor esi, esi - mov ebp, DWORD PTR 24[esp] - mov DWORD PTR 36[esp],25 -L000start: - ; - ; Round 0 - mov eax, DWORD PTR 28[esp] - mov edx, esi - shr edx, 16 - mov ecx, DWORD PTR 32[esp] - xor edx, esi - and eax, edx - and edx, ecx - mov ebx, eax - shl ebx, 16 - mov ecx, edx - shl ecx, 16 - xor eax, ebx - xor edx, ecx - mov ebx, DWORD PTR [ebp] - xor eax, ebx - mov ecx, DWORD PTR 4[ebp] - xor eax, esi - xor edx, esi - xor edx, ecx - and eax, 0fcfcfcfch - xor ebx, ebx - and edx, 0cfcfcfcfh - xor ecx, ecx - mov bl, al - mov cl, ah - ror edx, 4 - mov ebp, DWORD PTR _des_SPtrans[ebx] - mov bl, dl - xor edi, ebp - mov ebp, DWORD PTR _des_SPtrans[0200h+ecx] - xor edi, ebp - mov cl, dh - shr eax, 16 - mov ebp, DWORD PTR _des_SPtrans[0100h+ebx] - xor edi, ebp - mov bl, ah - shr edx, 16 - mov ebp, DWORD PTR _des_SPtrans[0300h+ecx] - xor edi, ebp - mov ebp, DWORD PTR 24[esp] - mov cl, dh - and eax, 0ffh - and edx, 0ffh - mov ebx, DWORD PTR _des_SPtrans[0600h+ebx] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0700h+ecx] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0400h+eax] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0500h+edx] - xor edi, ebx - ; - ; Round 1 - mov eax, DWORD PTR 28[esp] - mov edx, edi - shr edx, 16 - mov ecx, DWORD PTR 32[esp] - xor edx, edi - and eax, edx - and edx, ecx - mov ebx, eax - shl ebx, 16 - mov ecx, edx - shl ecx, 16 - xor eax, ebx - xor edx, ecx - mov ebx, DWORD PTR 8[ebp] - xor eax, ebx - mov ecx, DWORD PTR 12[ebp] - xor eax, edi - xor edx, edi - xor edx, ecx - and eax, 0fcfcfcfch - xor ebx, ebx - and edx, 0cfcfcfcfh - xor ecx, ecx - mov bl, al - mov cl, ah - ror edx, 4 - mov ebp, DWORD PTR _des_SPtrans[ebx] - mov bl, dl - xor esi, ebp - mov ebp, DWORD PTR _des_SPtrans[0200h+ecx] - xor esi, ebp - mov cl, dh - shr eax, 16 - mov ebp, DWORD PTR _des_SPtrans[0100h+ebx] - xor esi, ebp - mov bl, ah - shr edx, 16 - mov ebp, DWORD PTR _des_SPtrans[0300h+ecx] - xor esi, ebp - mov ebp, DWORD PTR 24[esp] - mov cl, dh - and eax, 0ffh - and edx, 0ffh - mov ebx, DWORD PTR _des_SPtrans[0600h+ebx] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0700h+ecx] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0400h+eax] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0500h+edx] - xor esi, ebx - ; - ; Round 2 - mov eax, DWORD PTR 28[esp] - mov edx, esi - shr edx, 16 - mov ecx, DWORD PTR 32[esp] - xor edx, esi - and eax, edx - and edx, ecx - mov ebx, eax - shl ebx, 16 - mov ecx, edx - shl ecx, 16 - xor eax, ebx - xor edx, ecx - mov ebx, DWORD PTR 16[ebp] - xor eax, ebx - mov ecx, DWORD PTR 20[ebp] - xor eax, esi - xor edx, esi - xor edx, ecx - and eax, 0fcfcfcfch - xor ebx, ebx - and edx, 0cfcfcfcfh - xor ecx, ecx - mov bl, al - mov cl, ah - ror edx, 4 - mov ebp, DWORD PTR _des_SPtrans[ebx] - mov bl, dl - xor edi, ebp - mov ebp, DWORD PTR _des_SPtrans[0200h+ecx] - xor edi, ebp - mov cl, dh - shr eax, 16 - mov ebp, DWORD PTR _des_SPtrans[0100h+ebx] - xor edi, ebp - mov bl, ah - shr edx, 16 - mov ebp, DWORD PTR _des_SPtrans[0300h+ecx] - xor edi, ebp - mov ebp, DWORD PTR 24[esp] - mov cl, dh - and eax, 0ffh - and edx, 0ffh - mov ebx, DWORD PTR _des_SPtrans[0600h+ebx] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0700h+ecx] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0400h+eax] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0500h+edx] - xor edi, ebx - ; - ; Round 3 - mov eax, DWORD PTR 28[esp] - mov edx, edi - shr edx, 16 - mov ecx, DWORD PTR 32[esp] - xor edx, edi - and eax, edx - and edx, ecx - mov ebx, eax - shl ebx, 16 - mov ecx, edx - shl ecx, 16 - xor eax, ebx - xor edx, ecx - mov ebx, DWORD PTR 24[ebp] - xor eax, ebx - mov ecx, DWORD PTR 28[ebp] - xor eax, edi - xor edx, edi - xor edx, ecx - and eax, 0fcfcfcfch - xor ebx, ebx - and edx, 0cfcfcfcfh - xor ecx, ecx - mov bl, al - mov cl, ah - ror edx, 4 - mov ebp, DWORD PTR _des_SPtrans[ebx] - mov bl, dl - xor esi, ebp - mov ebp, DWORD PTR _des_SPtrans[0200h+ecx] - xor esi, ebp - mov cl, dh - shr eax, 16 - mov ebp, DWORD PTR _des_SPtrans[0100h+ebx] - xor esi, ebp - mov bl, ah - shr edx, 16 - mov ebp, DWORD PTR _des_SPtrans[0300h+ecx] - xor esi, ebp - mov ebp, DWORD PTR 24[esp] - mov cl, dh - and eax, 0ffh - and edx, 0ffh - mov ebx, DWORD PTR _des_SPtrans[0600h+ebx] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0700h+ecx] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0400h+eax] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0500h+edx] - xor esi, ebx - ; - ; Round 4 - mov eax, DWORD PTR 28[esp] - mov edx, esi - shr edx, 16 - mov ecx, DWORD PTR 32[esp] - xor edx, esi - and eax, edx - and edx, ecx - mov ebx, eax - shl ebx, 16 - mov ecx, edx - shl ecx, 16 - xor eax, ebx - xor edx, ecx - mov ebx, DWORD PTR 32[ebp] - xor eax, ebx - mov ecx, DWORD PTR 36[ebp] - xor eax, esi - xor edx, esi - xor edx, ecx - and eax, 0fcfcfcfch - xor ebx, ebx - and edx, 0cfcfcfcfh - xor ecx, ecx - mov bl, al - mov cl, ah - ror edx, 4 - mov ebp, DWORD PTR _des_SPtrans[ebx] - mov bl, dl - xor edi, ebp - mov ebp, DWORD PTR _des_SPtrans[0200h+ecx] - xor edi, ebp - mov cl, dh - shr eax, 16 - mov ebp, DWORD PTR _des_SPtrans[0100h+ebx] - xor edi, ebp - mov bl, ah - shr edx, 16 - mov ebp, DWORD PTR _des_SPtrans[0300h+ecx] - xor edi, ebp - mov ebp, DWORD PTR 24[esp] - mov cl, dh - and eax, 0ffh - and edx, 0ffh - mov ebx, DWORD PTR _des_SPtrans[0600h+ebx] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0700h+ecx] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0400h+eax] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0500h+edx] - xor edi, ebx - ; - ; Round 5 - mov eax, DWORD PTR 28[esp] - mov edx, edi - shr edx, 16 - mov ecx, DWORD PTR 32[esp] - xor edx, edi - and eax, edx - and edx, ecx - mov ebx, eax - shl ebx, 16 - mov ecx, edx - shl ecx, 16 - xor eax, ebx - xor edx, ecx - mov ebx, DWORD PTR 40[ebp] - xor eax, ebx - mov ecx, DWORD PTR 44[ebp] - xor eax, edi - xor edx, edi - xor edx, ecx - and eax, 0fcfcfcfch - xor ebx, ebx - and edx, 0cfcfcfcfh - xor ecx, ecx - mov bl, al - mov cl, ah - ror edx, 4 - mov ebp, DWORD PTR _des_SPtrans[ebx] - mov bl, dl - xor esi, ebp - mov ebp, DWORD PTR _des_SPtrans[0200h+ecx] - xor esi, ebp - mov cl, dh - shr eax, 16 - mov ebp, DWORD PTR _des_SPtrans[0100h+ebx] - xor esi, ebp - mov bl, ah - shr edx, 16 - mov ebp, DWORD PTR _des_SPtrans[0300h+ecx] - xor esi, ebp - mov ebp, DWORD PTR 24[esp] - mov cl, dh - and eax, 0ffh - and edx, 0ffh - mov ebx, DWORD PTR _des_SPtrans[0600h+ebx] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0700h+ecx] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0400h+eax] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0500h+edx] - xor esi, ebx - ; - ; Round 6 - mov eax, DWORD PTR 28[esp] - mov edx, esi - shr edx, 16 - mov ecx, DWORD PTR 32[esp] - xor edx, esi - and eax, edx - and edx, ecx - mov ebx, eax - shl ebx, 16 - mov ecx, edx - shl ecx, 16 - xor eax, ebx - xor edx, ecx - mov ebx, DWORD PTR 48[ebp] - xor eax, ebx - mov ecx, DWORD PTR 52[ebp] - xor eax, esi - xor edx, esi - xor edx, ecx - and eax, 0fcfcfcfch - xor ebx, ebx - and edx, 0cfcfcfcfh - xor ecx, ecx - mov bl, al - mov cl, ah - ror edx, 4 - mov ebp, DWORD PTR _des_SPtrans[ebx] - mov bl, dl - xor edi, ebp - mov ebp, DWORD PTR _des_SPtrans[0200h+ecx] - xor edi, ebp - mov cl, dh - shr eax, 16 - mov ebp, DWORD PTR _des_SPtrans[0100h+ebx] - xor edi, ebp - mov bl, ah - shr edx, 16 - mov ebp, DWORD PTR _des_SPtrans[0300h+ecx] - xor edi, ebp - mov ebp, DWORD PTR 24[esp] - mov cl, dh - and eax, 0ffh - and edx, 0ffh - mov ebx, DWORD PTR _des_SPtrans[0600h+ebx] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0700h+ecx] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0400h+eax] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0500h+edx] - xor edi, ebx - ; - ; Round 7 - mov eax, DWORD PTR 28[esp] - mov edx, edi - shr edx, 16 - mov ecx, DWORD PTR 32[esp] - xor edx, edi - and eax, edx - and edx, ecx - mov ebx, eax - shl ebx, 16 - mov ecx, edx - shl ecx, 16 - xor eax, ebx - xor edx, ecx - mov ebx, DWORD PTR 56[ebp] - xor eax, ebx - mov ecx, DWORD PTR 60[ebp] - xor eax, edi - xor edx, edi - xor edx, ecx - and eax, 0fcfcfcfch - xor ebx, ebx - and edx, 0cfcfcfcfh - xor ecx, ecx - mov bl, al - mov cl, ah - ror edx, 4 - mov ebp, DWORD PTR _des_SPtrans[ebx] - mov bl, dl - xor esi, ebp - mov ebp, DWORD PTR _des_SPtrans[0200h+ecx] - xor esi, ebp - mov cl, dh - shr eax, 16 - mov ebp, DWORD PTR _des_SPtrans[0100h+ebx] - xor esi, ebp - mov bl, ah - shr edx, 16 - mov ebp, DWORD PTR _des_SPtrans[0300h+ecx] - xor esi, ebp - mov ebp, DWORD PTR 24[esp] - mov cl, dh - and eax, 0ffh - and edx, 0ffh - mov ebx, DWORD PTR _des_SPtrans[0600h+ebx] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0700h+ecx] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0400h+eax] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0500h+edx] - xor esi, ebx - ; - ; Round 8 - mov eax, DWORD PTR 28[esp] - mov edx, esi - shr edx, 16 - mov ecx, DWORD PTR 32[esp] - xor edx, esi - and eax, edx - and edx, ecx - mov ebx, eax - shl ebx, 16 - mov ecx, edx - shl ecx, 16 - xor eax, ebx - xor edx, ecx - mov ebx, DWORD PTR 64[ebp] - xor eax, ebx - mov ecx, DWORD PTR 68[ebp] - xor eax, esi - xor edx, esi - xor edx, ecx - and eax, 0fcfcfcfch - xor ebx, ebx - and edx, 0cfcfcfcfh - xor ecx, ecx - mov bl, al - mov cl, ah - ror edx, 4 - mov ebp, DWORD PTR _des_SPtrans[ebx] - mov bl, dl - xor edi, ebp - mov ebp, DWORD PTR _des_SPtrans[0200h+ecx] - xor edi, ebp - mov cl, dh - shr eax, 16 - mov ebp, DWORD PTR _des_SPtrans[0100h+ebx] - xor edi, ebp - mov bl, ah - shr edx, 16 - mov ebp, DWORD PTR _des_SPtrans[0300h+ecx] - xor edi, ebp - mov ebp, DWORD PTR 24[esp] - mov cl, dh - and eax, 0ffh - and edx, 0ffh - mov ebx, DWORD PTR _des_SPtrans[0600h+ebx] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0700h+ecx] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0400h+eax] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0500h+edx] - xor edi, ebx - ; - ; Round 9 - mov eax, DWORD PTR 28[esp] - mov edx, edi - shr edx, 16 - mov ecx, DWORD PTR 32[esp] - xor edx, edi - and eax, edx - and edx, ecx - mov ebx, eax - shl ebx, 16 - mov ecx, edx - shl ecx, 16 - xor eax, ebx - xor edx, ecx - mov ebx, DWORD PTR 72[ebp] - xor eax, ebx - mov ecx, DWORD PTR 76[ebp] - xor eax, edi - xor edx, edi - xor edx, ecx - and eax, 0fcfcfcfch - xor ebx, ebx - and edx, 0cfcfcfcfh - xor ecx, ecx - mov bl, al - mov cl, ah - ror edx, 4 - mov ebp, DWORD PTR _des_SPtrans[ebx] - mov bl, dl - xor esi, ebp - mov ebp, DWORD PTR _des_SPtrans[0200h+ecx] - xor esi, ebp - mov cl, dh - shr eax, 16 - mov ebp, DWORD PTR _des_SPtrans[0100h+ebx] - xor esi, ebp - mov bl, ah - shr edx, 16 - mov ebp, DWORD PTR _des_SPtrans[0300h+ecx] - xor esi, ebp - mov ebp, DWORD PTR 24[esp] - mov cl, dh - and eax, 0ffh - and edx, 0ffh - mov ebx, DWORD PTR _des_SPtrans[0600h+ebx] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0700h+ecx] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0400h+eax] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0500h+edx] - xor esi, ebx - ; - ; Round 10 - mov eax, DWORD PTR 28[esp] - mov edx, esi - shr edx, 16 - mov ecx, DWORD PTR 32[esp] - xor edx, esi - and eax, edx - and edx, ecx - mov ebx, eax - shl ebx, 16 - mov ecx, edx - shl ecx, 16 - xor eax, ebx - xor edx, ecx - mov ebx, DWORD PTR 80[ebp] - xor eax, ebx - mov ecx, DWORD PTR 84[ebp] - xor eax, esi - xor edx, esi - xor edx, ecx - and eax, 0fcfcfcfch - xor ebx, ebx - and edx, 0cfcfcfcfh - xor ecx, ecx - mov bl, al - mov cl, ah - ror edx, 4 - mov ebp, DWORD PTR _des_SPtrans[ebx] - mov bl, dl - xor edi, ebp - mov ebp, DWORD PTR _des_SPtrans[0200h+ecx] - xor edi, ebp - mov cl, dh - shr eax, 16 - mov ebp, DWORD PTR _des_SPtrans[0100h+ebx] - xor edi, ebp - mov bl, ah - shr edx, 16 - mov ebp, DWORD PTR _des_SPtrans[0300h+ecx] - xor edi, ebp - mov ebp, DWORD PTR 24[esp] - mov cl, dh - and eax, 0ffh - and edx, 0ffh - mov ebx, DWORD PTR _des_SPtrans[0600h+ebx] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0700h+ecx] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0400h+eax] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0500h+edx] - xor edi, ebx - ; - ; Round 11 - mov eax, DWORD PTR 28[esp] - mov edx, edi - shr edx, 16 - mov ecx, DWORD PTR 32[esp] - xor edx, edi - and eax, edx - and edx, ecx - mov ebx, eax - shl ebx, 16 - mov ecx, edx - shl ecx, 16 - xor eax, ebx - xor edx, ecx - mov ebx, DWORD PTR 88[ebp] - xor eax, ebx - mov ecx, DWORD PTR 92[ebp] - xor eax, edi - xor edx, edi - xor edx, ecx - and eax, 0fcfcfcfch - xor ebx, ebx - and edx, 0cfcfcfcfh - xor ecx, ecx - mov bl, al - mov cl, ah - ror edx, 4 - mov ebp, DWORD PTR _des_SPtrans[ebx] - mov bl, dl - xor esi, ebp - mov ebp, DWORD PTR _des_SPtrans[0200h+ecx] - xor esi, ebp - mov cl, dh - shr eax, 16 - mov ebp, DWORD PTR _des_SPtrans[0100h+ebx] - xor esi, ebp - mov bl, ah - shr edx, 16 - mov ebp, DWORD PTR _des_SPtrans[0300h+ecx] - xor esi, ebp - mov ebp, DWORD PTR 24[esp] - mov cl, dh - and eax, 0ffh - and edx, 0ffh - mov ebx, DWORD PTR _des_SPtrans[0600h+ebx] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0700h+ecx] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0400h+eax] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0500h+edx] - xor esi, ebx - ; - ; Round 12 - mov eax, DWORD PTR 28[esp] - mov edx, esi - shr edx, 16 - mov ecx, DWORD PTR 32[esp] - xor edx, esi - and eax, edx - and edx, ecx - mov ebx, eax - shl ebx, 16 - mov ecx, edx - shl ecx, 16 - xor eax, ebx - xor edx, ecx - mov ebx, DWORD PTR 96[ebp] - xor eax, ebx - mov ecx, DWORD PTR 100[ebp] - xor eax, esi - xor edx, esi - xor edx, ecx - and eax, 0fcfcfcfch - xor ebx, ebx - and edx, 0cfcfcfcfh - xor ecx, ecx - mov bl, al - mov cl, ah - ror edx, 4 - mov ebp, DWORD PTR _des_SPtrans[ebx] - mov bl, dl - xor edi, ebp - mov ebp, DWORD PTR _des_SPtrans[0200h+ecx] - xor edi, ebp - mov cl, dh - shr eax, 16 - mov ebp, DWORD PTR _des_SPtrans[0100h+ebx] - xor edi, ebp - mov bl, ah - shr edx, 16 - mov ebp, DWORD PTR _des_SPtrans[0300h+ecx] - xor edi, ebp - mov ebp, DWORD PTR 24[esp] - mov cl, dh - and eax, 0ffh - and edx, 0ffh - mov ebx, DWORD PTR _des_SPtrans[0600h+ebx] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0700h+ecx] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0400h+eax] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0500h+edx] - xor edi, ebx - ; - ; Round 13 - mov eax, DWORD PTR 28[esp] - mov edx, edi - shr edx, 16 - mov ecx, DWORD PTR 32[esp] - xor edx, edi - and eax, edx - and edx, ecx - mov ebx, eax - shl ebx, 16 - mov ecx, edx - shl ecx, 16 - xor eax, ebx - xor edx, ecx - mov ebx, DWORD PTR 104[ebp] - xor eax, ebx - mov ecx, DWORD PTR 108[ebp] - xor eax, edi - xor edx, edi - xor edx, ecx - and eax, 0fcfcfcfch - xor ebx, ebx - and edx, 0cfcfcfcfh - xor ecx, ecx - mov bl, al - mov cl, ah - ror edx, 4 - mov ebp, DWORD PTR _des_SPtrans[ebx] - mov bl, dl - xor esi, ebp - mov ebp, DWORD PTR _des_SPtrans[0200h+ecx] - xor esi, ebp - mov cl, dh - shr eax, 16 - mov ebp, DWORD PTR _des_SPtrans[0100h+ebx] - xor esi, ebp - mov bl, ah - shr edx, 16 - mov ebp, DWORD PTR _des_SPtrans[0300h+ecx] - xor esi, ebp - mov ebp, DWORD PTR 24[esp] - mov cl, dh - and eax, 0ffh - and edx, 0ffh - mov ebx, DWORD PTR _des_SPtrans[0600h+ebx] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0700h+ecx] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0400h+eax] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0500h+edx] - xor esi, ebx - ; - ; Round 14 - mov eax, DWORD PTR 28[esp] - mov edx, esi - shr edx, 16 - mov ecx, DWORD PTR 32[esp] - xor edx, esi - and eax, edx - and edx, ecx - mov ebx, eax - shl ebx, 16 - mov ecx, edx - shl ecx, 16 - xor eax, ebx - xor edx, ecx - mov ebx, DWORD PTR 112[ebp] - xor eax, ebx - mov ecx, DWORD PTR 116[ebp] - xor eax, esi - xor edx, esi - xor edx, ecx - and eax, 0fcfcfcfch - xor ebx, ebx - and edx, 0cfcfcfcfh - xor ecx, ecx - mov bl, al - mov cl, ah - ror edx, 4 - mov ebp, DWORD PTR _des_SPtrans[ebx] - mov bl, dl - xor edi, ebp - mov ebp, DWORD PTR _des_SPtrans[0200h+ecx] - xor edi, ebp - mov cl, dh - shr eax, 16 - mov ebp, DWORD PTR _des_SPtrans[0100h+ebx] - xor edi, ebp - mov bl, ah - shr edx, 16 - mov ebp, DWORD PTR _des_SPtrans[0300h+ecx] - xor edi, ebp - mov ebp, DWORD PTR 24[esp] - mov cl, dh - and eax, 0ffh - and edx, 0ffh - mov ebx, DWORD PTR _des_SPtrans[0600h+ebx] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0700h+ecx] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0400h+eax] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0500h+edx] - xor edi, ebx - ; - ; Round 15 - mov eax, DWORD PTR 28[esp] - mov edx, edi - shr edx, 16 - mov ecx, DWORD PTR 32[esp] - xor edx, edi - and eax, edx - and edx, ecx - mov ebx, eax - shl ebx, 16 - mov ecx, edx - shl ecx, 16 - xor eax, ebx - xor edx, ecx - mov ebx, DWORD PTR 120[ebp] - xor eax, ebx - mov ecx, DWORD PTR 124[ebp] - xor eax, edi - xor edx, edi - xor edx, ecx - and eax, 0fcfcfcfch - xor ebx, ebx - and edx, 0cfcfcfcfh - xor ecx, ecx - mov bl, al - mov cl, ah - ror edx, 4 - mov ebp, DWORD PTR _des_SPtrans[ebx] - mov bl, dl - xor esi, ebp - mov ebp, DWORD PTR _des_SPtrans[0200h+ecx] - xor esi, ebp - mov cl, dh - shr eax, 16 - mov ebp, DWORD PTR _des_SPtrans[0100h+ebx] - xor esi, ebp - mov bl, ah - shr edx, 16 - mov ebp, DWORD PTR _des_SPtrans[0300h+ecx] - xor esi, ebp - mov ebp, DWORD PTR 24[esp] - mov cl, dh - and eax, 0ffh - and edx, 0ffh - mov ebx, DWORD PTR _des_SPtrans[0600h+ebx] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0700h+ecx] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0400h+eax] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0500h+edx] - xor esi, ebx - mov eax, edi - dec DWORD PTR 36[esp] - mov edi, esi - mov esi, eax - jnz L000start - ; - ; FP - mov edx, DWORD PTR 20[esp] - ror edi, 1 - mov eax, esi - xor esi, edi - and esi, 0aaaaaaaah - xor eax, esi - xor edi, esi - ; - rol eax, 23 - mov esi, eax - xor eax, edi - and eax, 003fc03fch - xor esi, eax - xor edi, eax - ; - rol esi, 10 - mov eax, esi - xor esi, edi - and esi, 033333333h - xor eax, esi - xor edi, esi - ; - rol edi, 18 - mov esi, edi - xor edi, eax - and edi, 0fff0000fh - xor esi, edi - xor eax, edi - ; - rol esi, 12 - mov edi, esi - xor esi, eax - and esi, 0f0f0f0f0h - xor edi, esi - xor eax, esi - ; - ror eax, 4 - mov DWORD PTR [edx],eax - mov DWORD PTR 4[edx],edi - pop edi - pop esi - pop ebx - pop ebp - ret -_fcrypt_body ENDP -_TEXT ENDS -END diff --git a/crypto/des/asm/c-win32.uu b/crypto/des/asm/c-win32.uu deleted file mode 100644 index 09d5d7d..0000000 --- a/crypto/des/asm/c-win32.uu +++ /dev/null @@ -1,99 +0,0 @@ -begin 640 c-win32.obj -M3`$"`/4&DC,,$```"0`````````N=&5X=```````````````J`H``&0````, -M"P```````(`````@`#!@+F1A=&$```"H"@`````````````,$``````````` -M````````0``PP%535E<S_S/VBVPD&,=$)"09````BT0D'(O6P>H0BTPD(#/6 -M(\(CT8O8P>,0B\K!X1`SPS/1BUT`,\.+300SQC/6,]$E_/S\_#/;@>+/S\_/ -M,\F*V(K,P<H$BZL`````BMHS_8NI``(``#/]BL[!Z!"+JP`!```S_8K<P>H0 -MBZD``P``,_V+;"08BLXE_P```('B_P```(N;``8``#/[BYD`!P``,_N+F``$ -M```S^XN:``4``#/[BT0D'(O7P>H0BTPD(#/7(\(CT8O8P>,0B\K!X1`SPS/1 -MBUT(,\.+30PSQS/7,]$E_/S\_#/;@>+/S\_/,\F*V(K,P<H$BZL`````BMHS -M]8NI``(``#/UBL[!Z!"+JP`!```S]8K<P>H0BZD``P``,_6+;"08BLXE_P`` -M`('B_P```(N;``8``#/SBYD`!P``,_.+F``$```S\XN:``4``#/SBT0D'(O6 -MP>H0BTPD(#/6(\(CT8O8P>,0B\K!X1`SPS/1BUT0,\.+310SQC/6,]$E_/S\ -M_#/;@>+/S\_/,\F*V(K,P<H$BZL`````BMHS_8NI``(``#/]BL[!Z!"+JP`! -M```S_8K<P>H0BZD``P``,_V+;"08BLXE_P```('B_P```(N;``8``#/[BYD` -M!P``,_N+F``$```S^XN:``4``#/[BT0D'(O7P>H0BTPD(#/7(\(CT8O8P>,0 -MB\K!X1`SPS/1BUT8,\.+31PSQS/7,]$E_/S\_#/;@>+/S\_/,\F*V(K,P<H$ -MBZL`````BMHS]8NI``(``#/UBL[!Z!"+JP`!```S]8K<P>H0BZD``P``,_6+ -M;"08BLXE_P```('B_P```(N;``8``#/SBYD`!P``,_.+F``$```S\XN:``4` -M`#/SBT0D'(O6P>H0BTPD(#/6(\(CT8O8P>,0B\K!X1`SPS/1BUT@,\.+320S -MQC/6,]$E_/S\_#/;@>+/S\_/,\F*V(K,P<H$BZL`````BMHS_8NI``(``#/] -MBL[!Z!"+JP`!```S_8K<P>H0BZD``P``,_V+;"08BLXE_P```('B_P```(N; -M``8``#/[BYD`!P``,_N+F``$```S^XN:``4``#/[BT0D'(O7P>H0BTPD(#/7 -M(\(CT8O8P>,0B\K!X1`SPS/1BUTH,\.+32PSQS/7,]$E_/S\_#/;@>+/S\_/ -M,\F*V(K,P<H$BZL`````BMHS]8NI``(``#/UBL[!Z!"+JP`!```S]8K<P>H0 -MBZD``P``,_6+;"08BLXE_P```('B_P```(N;``8``#/SBYD`!P``,_.+F``$ -M```S\XN:``4``#/SBT0D'(O6P>H0BTPD(#/6(\(CT8O8P>,0B\K!X1`SPS/1 -MBUTP,\.+330SQC/6,]$E_/S\_#/;@>+/S\_/,\F*V(K,P<H$BZL`````BMHS -M_8NI``(``#/]BL[!Z!"+JP`!```S_8K<P>H0BZD``P``,_V+;"08BLXE_P`` -M`('B_P```(N;``8``#/[BYD`!P``,_N+F``$```S^XN:``4``#/[BT0D'(O7 -MP>H0BTPD(#/7(\(CT8O8P>,0B\K!X1`SPS/1BUTX,\.+33PSQS/7,]$E_/S\ -M_#/;@>+/S\_/,\F*V(K,P<H$BZL`````BMHS]8NI``(``#/UBL[!Z!"+JP`! -M```S]8K<P>H0BZD``P``,_6+;"08BLXE_P```('B_P```(N;``8``#/SBYD` -M!P``,_.+F``$```S\XN:``4``#/SBT0D'(O6P>H0BTPD(#/6(\(CT8O8P>,0 -MB\K!X1`SPS/1BUU`,\.+340SQC/6,]$E_/S\_#/;@>+/S\_/,\F*V(K,P<H$ -MBZL`````BMHS_8NI``(``#/]BL[!Z!"+JP`!```S_8K<P>H0BZD``P``,_V+ -M;"08BLXE_P```('B_P```(N;``8``#/[BYD`!P``,_N+F``$```S^XN:``4` -M`#/[BT0D'(O7P>H0BTPD(#/7(\(CT8O8P>,0B\K!X1`SPS/1BUU(,\.+34PS -MQS/7,]$E_/S\_#/;@>+/S\_/,\F*V(K,P<H$BZL`````BMHS]8NI``(``#/U -MBL[!Z!"+JP`!```S]8K<P>H0BZD``P``,_6+;"08BLXE_P```('B_P```(N; -M``8``#/SBYD`!P``,_.+F``$```S\XN:``4``#/SBT0D'(O6P>H0BTPD(#/6 -M(\(CT8O8P>,0B\K!X1`SPS/1BUU0,\.+350SQC/6,]$E_/S\_#/;@>+/S\_/ -M,\F*V(K,P<H$BZL`````BMHS_8NI``(``#/]BL[!Z!"+JP`!```S_8K<P>H0 -MBZD``P``,_V+;"08BLXE_P```('B_P```(N;``8``#/[BYD`!P``,_N+F``$ -M```S^XN:``4``#/[BT0D'(O7P>H0BTPD(#/7(\(CT8O8P>,0B\K!X1`SPS/1 -MBUU8,\.+35PSQS/7,]$E_/S\_#/;@>+/S\_/,\F*V(K,P<H$BZL`````BMHS -M]8NI``(``#/UBL[!Z!"+JP`!```S]8K<P>H0BZD``P``,_6+;"08BLXE_P`` -M`('B_P```(N;``8``#/SBYD`!P``,_.+F``$```S\XN:``4``#/SBT0D'(O6 -MP>H0BTPD(#/6(\(CT8O8P>,0B\K!X1`SPS/1BUU@,\.+360SQC/6,]$E_/S\ -M_#/;@>+/S\_/,\F*V(K,P<H$BZL`````BMHS_8NI``(``#/]BL[!Z!"+JP`! -M```S_8K<P>H0BZD``P``,_V+;"08BLXE_P```('B_P```(N;``8``#/[BYD` -M!P``,_N+F``$```S^XN:``4``#/[BT0D'(O7P>H0BTPD(#/7(\(CT8O8P>,0 -MB\K!X1`SPS/1BUUH,\.+36PSQS/7,]$E_/S\_#/;@>+/S\_/,\F*V(K,P<H$ -MBZL`````BMHS]8NI``(``#/UBL[!Z!"+JP`!```S]8K<P>H0BZD``P``,_6+ -M;"08BLXE_P```('B_P```(N;``8``#/SBYD`!P``,_.+F``$```S\XN:``4` -M`#/SBT0D'(O6P>H0BTPD(#/6(\(CT8O8P>,0B\K!X1`SPS/1BUUP,\.+370S -MQC/6,]$E_/S\_#/;@>+/S\_/,\F*V(K,P<H$BZL`````BMHS_8NI``(``#/] -MBL[!Z!"+JP`!```S_8K<P>H0BZD``P``,_V+;"08BLXE_P```('B_P```(N; -M``8``#/[BYD`!P``,_N+F``$```S^XN:``4``#/[BT0D'(O7P>H0BTPD(#/7 -M(\(CT8O8P>,0B\K!X1`SPS/1BUUX,\.+37PSQS/7,]$E_/S\_#/;@>+/S\_/ -M,\F*V(K,P<H$BZL`````BMHS]8NI``(``#/UBL[!Z!"+JP`!```S]8K<P>H0 -MBZD``P``,_6+;"08BLXE_P```('B_P```(N;``8``#/SBYD`!P``,_.+F``$ -M```S\XN:``4``#/SB\?_3"0DB_Z+\`^%T/7__XM4)!31SXO&,_>!YJJJJJHS -MQC/^P<`7B_`SQR7\`_P#,_`S^,'&"HO&,_>!YC,S,S,SQC/^P<<2B_<S^('G -M#P#P_S/W,\?!Q@R+_C/P@>;P\/#P,_XSQL'(!(D"B7H$7UY;7<-;````!P`` -M``8`90````<````&`'(````'````!@!_````!P````8`F`````<````&`*`` -M```'````!@"H````!P````8`L`````<````&`/T````'````!@`'`0``!P`` -M``8`%`$```<````&`"$!```'````!@`Z`0``!P````8`0@$```<````&`$H! -M```'````!@!2`0``!P````8`GP$```<````&`*D!```'````!@"V`0``!P`` -M``8`PP$```<````&`-P!```'````!@#D`0``!P````8`[`$```<````&`/0! -M```'````!@!!`@``!P````8`2P(```<````&`%@"```'````!@!E`@``!P`` -M``8`?@(```<````&`(8"```'````!@".`@``!P````8`E@(```<````&`.," -M```'````!@#M`@``!P````8`^@(```<````&``<#```'````!@`@`P``!P`` -M``8`*`,```<````&`#`#```'````!@`X`P``!P````8`A0,```<````&`(\# -M```'````!@"<`P``!P````8`J0,```<````&`,(#```'````!@#*`P``!P`` -M``8`T@,```<````&`-H#```'````!@`G!```!P````8`,00```<````&`#X$ -M```'````!@!+!```!P````8`9`0```<````&`&P$```'````!@!T!```!P`` -M``8`?`0```<````&`,D$```'````!@#3!```!P````8`X`0```<````&`.T$ -M```'````!@`&!0``!P````8`#@4```<````&`!8%```'````!@`>!0``!P`` -M``8`:P4```<````&`'4%```'````!@""!0``!P````8`CP4```<````&`*@% -M```'````!@"P!0``!P````8`N`4```<````&`,`%```'````!@`-!@``!P`` -M``8`%P8```<````&`"0&```'````!@`Q!@``!P````8`2@8```<````&`%(& -M```'````!@!:!@``!P````8`8@8```<````&`*\&```'````!@"Y!@``!P`` -M``8`Q@8```<````&`-,&```'````!@#L!@``!P````8`]`8```<````&`/P& -M```'````!@`$!P``!P````8`40<```<````&`%L'```'````!@!H!P``!P`` -M``8`=0<```<````&`(X'```'````!@"6!P``!P````8`G@<```<````&`*8' -M```'````!@#S!P``!P````8`_0<```<````&``H(```'````!@`7"```!P`` -M``8`,`@```<````&`#@(```'````!@!`"```!P````8`2`@```<````&`)4( -M```'````!@"?"```!P````8`K`@```<````&`+D(```'````!@#2"```!P`` -M``8`V@@```<````&`.((```'````!@#J"```!P````8`-PD```<````&`$$) -M```'````!@!."0``!P````8`6PD```<````&`'0)```'````!@!\"0``!P`` -M``8`A`D```<````&`(P)```'````!@#9"0``!P````8`XPD```<````&`/`) -M```'````!@#]"0``!P````8`%@H```<````&`!X*```'````!@`F"@``!P`` -M``8`+@H```<````&`"YF:6QE`````````/[_``!G`BY<8W)Y<'1O7&1E<UQA -M<VU<8RUW:6XS,BYA<VT``````````"YT97AT``````````$````#`:@*``"` -M`````````````````"YD871A``````````(````#`0`````````````````` -M```````````$```````````````"```````1``````````$`(``"`!X```!? -99&5S7U-0=')A;G,`7V9C<GEP=%]B;V1Y```` -` -end diff --git a/crypto/des/asm/crypt.pl b/crypto/des/asm/crypt.pl deleted file mode 100644 index 0a7dce0..0000000 --- a/crypto/des/asm/crypt.pl +++ /dev/null @@ -1,240 +0,0 @@ -#!/usr/local/bin/perl -#
-# The inner loop instruction sequence and the IP/FP modifications are from
-# Svend Olaf Mikkelsen <svolaf@inet.uni-c.dk>
-# I've added the stuff needed for crypt() but I've not worried about making
-# things perfect.
-#
-
-$prog="crypt.pl";
-
-# base code is in microsft
-# op dest, source
-# format.
-#
-
-require "desboth.pl";
-
-if ( ($ARGV[0] eq "elf"))
- { require "x86unix.pl"; }
-elsif ( ($ARGV[0] eq "a.out"))
- { $aout=1; require "x86unix.pl"; }
-elsif ( ($ARGV[0] eq "sol"))
- { $sol=1; require "x86unix.pl"; }
-elsif ( ($ARGV[0] eq "cpp"))
- { $cpp=1; require "x86unix.pl"; }
-elsif ( ($ARGV[0] eq "win32"))
- { require "x86ms.pl"; }
-else
- {
- print STDERR <<"EOF";
-Pick one target type from
- elf - linux, FreeBSD etc
- a.out - old linux
- sol - x86 solaris
- cpp - format so x86unix.cpp can be used
- win32 - Windows 95/Windows NT
-EOF
- exit(1);
- }
-
-&comment("Don't even think of reading this code");
-&comment("It was automatically generated by $prog");
-&comment("Which is a perl program used to generate the x86 assember for");
-&comment("any of elf, a.out, Win32, or Solaris");
-&comment("It can be found in SSLeay 0.6.5+ or in libdes 3.26+");
-&comment("eric <eay\@cryptsoft.com>");
-&comment("The inner loop instruction sequence and the IP/FP modifications");
-&comment("are from Svend Olaf Mikkelsen <svolaf\@inet.uni-c.dk>");
-
-&comment("");
-
-&file("dx86xxxx");
-
-$L="edi";
-$R="esi";
-
-&fcrypt_body("fcrypt_body");
-
-&file_end();
-
-sub fcrypt_body
- {
- local($name,$do_ip)=@_;
-
- &function_begin($name,3,"EXTRN _des_SPtrans:DWORD");
-
- &comment("");
- &comment("Load the 2 words");
- $ks="ebp";
-
- &xor( $L, $L);
- &xor( $R, $R);
- &mov($ks,&wparam(1));
-
- &mov(&wtmp(1), 25);
-
- &set_label("start");
- for ($i=0; $i<16; $i+=2)
- {
- &comment("");
- &comment("Round $i");
- &D_ENCRYPT($i,$L,$R,$i*2,$ks,"des_SPtrans","eax","ebx","ecx","edx");
-
- &comment("");
- &comment("Round ".sprintf("%d",$i+1));
- &D_ENCRYPT($i+1,$R,$L,($i+1)*2,$ks,"des_SPtrans","eax","ebx","ecx","edx");
- }
- &mov("eax", $L);
- &dec(&wtmp(1));
- &mov($L, $R);
- &mov($R, "eax");
- &jnz(&label("start"));
-
- &comment("");
- &comment("FP");
- &mov("edx",&wparam(0));
-
- &FP_new($R,$L,"eax",3);
- &mov(&DWP(0,"edx","",0),"eax");
- &mov(&DWP(4,"edx","",0),$L);
-
- &function_end($name);
- }
-
-sub D_ENCRYPT
- {
- local($r,$L,$R,$S,$ks,$desSP,$u,$tmp1,$tmp2,$t)=@_;
-
- &mov( $u, &wparam(2)); # 2
- &mov( $t, $R);
- &shr( $t, 16); # 1
- &mov( $tmp2, &wparam(3)); # 2
- &xor( $t, $R); # 1
-
- &and( $u, $t); # 2
- &and( $t, $tmp2); # 2
-
- &mov( $tmp1, $u);
- &shl( $tmp1, 16); # 1
- &mov( $tmp2, $t);
- &shl( $tmp2, 16); # 1
- &xor( $u, $tmp1); # 2
- &xor( $t, $tmp2); # 2
- &mov( $tmp1, &DWP(&n2a($S*4),$ks,"",0)); # 2
- &xor( $u, $tmp1);
- &mov( $tmp2, &DWP(&n2a(($S+1)*4),$ks,"",0)); # 2
- &xor( $u, $R);
- &xor( $t, $R);
- &xor( $t, $tmp2);
-
- &and( $u, "0xfcfcfcfc" ); # 2
- &xor( $tmp1, $tmp1); # 1
- &and( $t, "0xcfcfcfcf" ); # 2
- &xor( $tmp2, $tmp2);
- &movb( &LB($tmp1), &LB($u) );
- &movb( &LB($tmp2), &HB($u) );
- &rotr( $t, 4 );
- &mov( $ks, &DWP(" $desSP",$tmp1,"",0));
- &movb( &LB($tmp1), &LB($t) );
- &xor( $L, $ks);
- &mov( $ks, &DWP("0x200+$desSP",$tmp2,"",0));
- &xor( $L, $ks);
- &movb( &LB($tmp2), &HB($t) );
- &shr( $u, 16);
- &mov( $ks, &DWP("0x100+$desSP",$tmp1,"",0));
- &xor( $L, $ks);
- &movb( &LB($tmp1), &HB($u) );
- &shr( $t, 16);
- &mov( $ks, &DWP("0x300+$desSP",$tmp2,"",0));
- &xor( $L, $ks);
- &mov( $ks, &DWP(24,"esp","",0));
- &movb( &LB($tmp2), &HB($t) );
- &and( $u, "0xff" );
- &and( $t, "0xff" );
- &mov( $tmp1, &DWP("0x600+$desSP",$tmp1,"",0));
- &xor( $L, $tmp1);
- &mov( $tmp1, &DWP("0x700+$desSP",$tmp2,"",0));
- &xor( $L, $tmp1);
- &mov( $tmp1, &DWP("0x400+$desSP",$u,"",0));
- &xor( $L, $tmp1);
- &mov( $tmp1, &DWP("0x500+$desSP",$t,"",0));
- &xor( $L, $tmp1);
- }
-
-sub n2a
- {
- sprintf("%d",$_[0]);
- }
-
-# now has a side affect of rotating $a by $shift
-sub R_PERM_OP
- {
- local($a,$b,$tt,$shift,$mask,$last)=@_;
-
- &rotl( $a, $shift ) if ($shift != 0);
- &mov( $tt, $a );
- &xor( $a, $b );
- &and( $a, $mask );
- if ($notlast eq $b)
- {
- &xor( $b, $a );
- &xor( $tt, $a );
- }
- else
- {
- &xor( $tt, $a );
- &xor( $b, $a );
- }
- &comment("");
- }
-
-sub IP_new
- {
- local($l,$r,$tt,$lr)=@_;
-
- &R_PERM_OP($l,$r,$tt, 4,"0xf0f0f0f0",$l);
- &R_PERM_OP($r,$tt,$l,20,"0xfff0000f",$l);
- &R_PERM_OP($l,$tt,$r,14,"0x33333333",$r);
- &R_PERM_OP($tt,$r,$l,22,"0x03fc03fc",$r);
- &R_PERM_OP($l,$r,$tt, 9,"0xaaaaaaaa",$r);
-
- if ($lr != 3)
- {
- if (($lr-3) < 0)
- { &rotr($tt, 3-$lr); }
- else { &rotl($tt, $lr-3); }
- }
- if ($lr != 2)
- {
- if (($lr-2) < 0)
- { &rotr($r, 2-$lr); }
- else { &rotl($r, $lr-2); }
- }
- }
-
-sub FP_new
- {
- local($l,$r,$tt,$lr)=@_;
-
- if ($lr != 2)
- {
- if (($lr-2) < 0)
- { &rotl($r, 2-$lr); }
- else { &rotr($r, $lr-2); }
- }
- if ($lr != 3)
- {
- if (($lr-3) < 0)
- { &rotl($l, 3-$lr); }
- else { &rotr($l, $lr-3); }
- }
-
- &R_PERM_OP($l,$r,$tt, 0,"0xaaaaaaaa",$r);
- &R_PERM_OP($tt,$r,$l,23,"0x03fc03fc",$r);
- &R_PERM_OP($l,$r,$tt,10,"0x33333333",$l);
- &R_PERM_OP($r,$tt,$l,18,"0xfff0000f",$l);
- &R_PERM_OP($l,$tt,$r,12,"0xf0f0f0f0",$r);
- &rotr($tt , 4);
- }
-
diff --git a/crypto/des/asm/cx86-cpp.s b/crypto/des/asm/cx86-cpp.s deleted file mode 100644 index e5165fa..0000000 --- a/crypto/des/asm/cx86-cpp.s +++ /dev/null @@ -1,932 +0,0 @@ - /* Don't even think of reading this code */ - /* It was automatically generated by crypt.pl */ - /* Which is a perl program used to generate the x86 assember for */ - /* any of elf, a.out, Win32, or Solaris */ - /* It can be found in SSLeay 0.6.5+ or in libdes 3.26+ */ - /* eric <eay@cryptsoft.com> */ - /* The inner loop instruction sequence and the IP/FP modifications */ - /* are from Svend Olaf Mikkelsen <svolaf@inet.uni-c.dk> */ - - .file "dx86xxxx.s" - .version "01.01" -gcc2_compiled.: -.text - .align ALIGN -.globl fcrypt_body - TYPE(fcrypt_body,@function) -fcrypt_body: - pushl %ebp - pushl %ebx - pushl %esi - pushl %edi - - - /* Load the 2 words */ - xorl %edi, %edi - xorl %esi, %esi - movl 24(%esp), %ebp - movl $25, -8(%esp) -.align ALIGN -.L000start: - - /* Round 0 */ - movl 28(%esp), %eax - movl %esi, %edx - shrl $16, %edx - movl 32(%esp), %ecx - xorl %esi, %edx - andl %edx, %eax - andl %ecx, %edx - movl %eax, %ebx - sall $16, %ebx - movl %edx, %ecx - sall $16, %ecx - xorl %ebx, %eax - xorl %ecx, %edx - movl (%ebp), %ebx - xorl %ebx, %eax - movl 4(%ebp), %ecx - xorl %esi, %eax - xorl %esi, %edx - xorl %ecx, %edx - andl $0xfcfcfcfc, %eax - xorl %ebx, %ebx - andl $0xcfcfcfcf, %edx - xorl %ecx, %ecx - movb %al, %bl - movb %ah, %cl - rorl $4, %edx - movl des_SPtrans(%ebx),%ebp - movb %dl, %bl - xorl %ebp, %edi - movl 0x200+des_SPtrans(%ecx),%ebp - xorl %ebp, %edi - movb %dh, %cl - shrl $16, %eax - movl 0x100+des_SPtrans(%ebx),%ebp - xorl %ebp, %edi - movb %ah, %bl - shrl $16, %edx - movl 0x300+des_SPtrans(%ecx),%ebp - xorl %ebp, %edi - movl 24(%esp), %ebp - movb %dh, %cl - andl $0xff, %eax - andl $0xff, %edx - movl 0x600+des_SPtrans(%ebx),%ebx - xorl %ebx, %edi - movl 0x700+des_SPtrans(%ecx),%ebx - xorl %ebx, %edi - movl 0x400+des_SPtrans(%eax),%ebx - xorl %ebx, %edi - movl 0x500+des_SPtrans(%edx),%ebx - xorl %ebx, %edi - - /* Round 1 */ - movl 28(%esp), %eax - movl %edi, %edx - shrl $16, %edx - movl 32(%esp), %ecx - xorl %edi, %edx - andl %edx, %eax - andl %ecx, %edx - movl %eax, %ebx - sall $16, %ebx - movl %edx, %ecx - sall $16, %ecx - xorl %ebx, %eax - xorl %ecx, %edx - movl 8(%ebp), %ebx - xorl %ebx, %eax - movl 12(%ebp), %ecx - xorl %edi, %eax - xorl %edi, %edx - xorl %ecx, %edx - andl $0xfcfcfcfc, %eax - xorl %ebx, %ebx - andl $0xcfcfcfcf, %edx - xorl %ecx, %ecx - movb %al, %bl - movb %ah, %cl - rorl $4, %edx - movl des_SPtrans(%ebx),%ebp - movb %dl, %bl - xorl %ebp, %esi - movl 0x200+des_SPtrans(%ecx),%ebp - xorl %ebp, %esi - movb %dh, %cl - shrl $16, %eax - movl 0x100+des_SPtrans(%ebx),%ebp - xorl %ebp, %esi - movb %ah, %bl - shrl $16, %edx - movl 0x300+des_SPtrans(%ecx),%ebp - xorl %ebp, %esi - movl 24(%esp), %ebp - movb %dh, %cl - andl $0xff, %eax - andl $0xff, %edx - movl 0x600+des_SPtrans(%ebx),%ebx - xorl %ebx, %esi - movl 0x700+des_SPtrans(%ecx),%ebx - xorl %ebx, %esi - movl 0x400+des_SPtrans(%eax),%ebx - xorl %ebx, %esi - movl 0x500+des_SPtrans(%edx),%ebx - xorl %ebx, %esi - - /* Round 2 */ - movl 28(%esp), %eax - movl %esi, %edx - shrl $16, %edx - movl 32(%esp), %ecx - xorl %esi, %edx - andl %edx, %eax - andl %ecx, %edx - movl %eax, %ebx - sall $16, %ebx - movl %edx, %ecx - sall $16, %ecx - xorl %ebx, %eax - xorl %ecx, %edx - movl 16(%ebp), %ebx - xorl %ebx, %eax - movl 20(%ebp), %ecx - xorl %esi, %eax - xorl %esi, %edx - xorl %ecx, %edx - andl $0xfcfcfcfc, %eax - xorl %ebx, %ebx - andl $0xcfcfcfcf, %edx - xorl %ecx, %ecx - movb %al, %bl - movb %ah, %cl - rorl $4, %edx - movl des_SPtrans(%ebx),%ebp - movb %dl, %bl - xorl %ebp, %edi - movl 0x200+des_SPtrans(%ecx),%ebp - xorl %ebp, %edi - movb %dh, %cl - shrl $16, %eax - movl 0x100+des_SPtrans(%ebx),%ebp - xorl %ebp, %edi - movb %ah, %bl - shrl $16, %edx - movl 0x300+des_SPtrans(%ecx),%ebp - xorl %ebp, %edi - movl 24(%esp), %ebp - movb %dh, %cl - andl $0xff, %eax - andl $0xff, %edx - movl 0x600+des_SPtrans(%ebx),%ebx - xorl %ebx, %edi - movl 0x700+des_SPtrans(%ecx),%ebx - xorl %ebx, %edi - movl 0x400+des_SPtrans(%eax),%ebx - xorl %ebx, %edi - movl 0x500+des_SPtrans(%edx),%ebx - xorl %ebx, %edi - - /* Round 3 */ - movl 28(%esp), %eax - movl %edi, %edx - shrl $16, %edx - movl 32(%esp), %ecx - xorl %edi, %edx - andl %edx, %eax - andl %ecx, %edx - movl %eax, %ebx - sall $16, %ebx - movl %edx, %ecx - sall $16, %ecx - xorl %ebx, %eax - xorl %ecx, %edx - movl 24(%ebp), %ebx - xorl %ebx, %eax - movl 28(%ebp), %ecx - xorl %edi, %eax - xorl %edi, %edx - xorl %ecx, %edx - andl $0xfcfcfcfc, %eax - xorl %ebx, %ebx - andl $0xcfcfcfcf, %edx - xorl %ecx, %ecx - movb %al, %bl - movb %ah, %cl - rorl $4, %edx - movl des_SPtrans(%ebx),%ebp - movb %dl, %bl - xorl %ebp, %esi - movl 0x200+des_SPtrans(%ecx),%ebp - xorl %ebp, %esi - movb %dh, %cl - shrl $16, %eax - movl 0x100+des_SPtrans(%ebx),%ebp - xorl %ebp, %esi - movb %ah, %bl - shrl $16, %edx - movl 0x300+des_SPtrans(%ecx),%ebp - xorl %ebp, %esi - movl 24(%esp), %ebp - movb %dh, %cl - andl $0xff, %eax - andl $0xff, %edx - movl 0x600+des_SPtrans(%ebx),%ebx - xorl %ebx, %esi - movl 0x700+des_SPtrans(%ecx),%ebx - xorl %ebx, %esi - movl 0x400+des_SPtrans(%eax),%ebx - xorl %ebx, %esi - movl 0x500+des_SPtrans(%edx),%ebx - xorl %ebx, %esi - - /* Round 4 */ - movl 28(%esp), %eax - movl %esi, %edx - shrl $16, %edx - movl 32(%esp), %ecx - xorl %esi, %edx - andl %edx, %eax - andl %ecx, %edx - movl %eax, %ebx - sall $16, %ebx - movl %edx, %ecx - sall $16, %ecx - xorl %ebx, %eax - xorl %ecx, %edx - movl 32(%ebp), %ebx - xorl %ebx, %eax - movl 36(%ebp), %ecx - xorl %esi, %eax - xorl %esi, %edx - xorl %ecx, %edx - andl $0xfcfcfcfc, %eax - xorl %ebx, %ebx - andl $0xcfcfcfcf, %edx - xorl %ecx, %ecx - movb %al, %bl - movb %ah, %cl - rorl $4, %edx - movl des_SPtrans(%ebx),%ebp - movb %dl, %bl - xorl %ebp, %edi - movl 0x200+des_SPtrans(%ecx),%ebp - xorl %ebp, %edi - movb %dh, %cl - shrl $16, %eax - movl 0x100+des_SPtrans(%ebx),%ebp - xorl %ebp, %edi - movb %ah, %bl - shrl $16, %edx - movl 0x300+des_SPtrans(%ecx),%ebp - xorl %ebp, %edi - movl 24(%esp), %ebp - movb %dh, %cl - andl $0xff, %eax - andl $0xff, %edx - movl 0x600+des_SPtrans(%ebx),%ebx - xorl %ebx, %edi - movl 0x700+des_SPtrans(%ecx),%ebx - xorl %ebx, %edi - movl 0x400+des_SPtrans(%eax),%ebx - xorl %ebx, %edi - movl 0x500+des_SPtrans(%edx),%ebx - xorl %ebx, %edi - - /* Round 5 */ - movl 28(%esp), %eax - movl %edi, %edx - shrl $16, %edx - movl 32(%esp), %ecx - xorl %edi, %edx - andl %edx, %eax - andl %ecx, %edx - movl %eax, %ebx - sall $16, %ebx - movl %edx, %ecx - sall $16, %ecx - xorl %ebx, %eax - xorl %ecx, %edx - movl 40(%ebp), %ebx - xorl %ebx, %eax - movl 44(%ebp), %ecx - xorl %edi, %eax - xorl %edi, %edx - xorl %ecx, %edx - andl $0xfcfcfcfc, %eax - xorl %ebx, %ebx - andl $0xcfcfcfcf, %edx - xorl %ecx, %ecx - movb %al, %bl - movb %ah, %cl - rorl $4, %edx - movl des_SPtrans(%ebx),%ebp - movb %dl, %bl - xorl %ebp, %esi - movl 0x200+des_SPtrans(%ecx),%ebp - xorl %ebp, %esi - movb %dh, %cl - shrl $16, %eax - movl 0x100+des_SPtrans(%ebx),%ebp - xorl %ebp, %esi - movb %ah, %bl - shrl $16, %edx - movl 0x300+des_SPtrans(%ecx),%ebp - xorl %ebp, %esi - movl 24(%esp), %ebp - movb %dh, %cl - andl $0xff, %eax - andl $0xff, %edx - movl 0x600+des_SPtrans(%ebx),%ebx - xorl %ebx, %esi - movl 0x700+des_SPtrans(%ecx),%ebx - xorl %ebx, %esi - movl 0x400+des_SPtrans(%eax),%ebx - xorl %ebx, %esi - movl 0x500+des_SPtrans(%edx),%ebx - xorl %ebx, %esi - - /* Round 6 */ - movl 28(%esp), %eax - movl %esi, %edx - shrl $16, %edx - movl 32(%esp), %ecx - xorl %esi, %edx - andl %edx, %eax - andl %ecx, %edx - movl %eax, %ebx - sall $16, %ebx - movl %edx, %ecx - sall $16, %ecx - xorl %ebx, %eax - xorl %ecx, %edx - movl 48(%ebp), %ebx - xorl %ebx, %eax - movl 52(%ebp), %ecx - xorl %esi, %eax - xorl %esi, %edx - xorl %ecx, %edx - andl $0xfcfcfcfc, %eax - xorl %ebx, %ebx - andl $0xcfcfcfcf, %edx - xorl %ecx, %ecx - movb %al, %bl - movb %ah, %cl - rorl $4, %edx - movl des_SPtrans(%ebx),%ebp - movb %dl, %bl - xorl %ebp, %edi - movl 0x200+des_SPtrans(%ecx),%ebp - xorl %ebp, %edi - movb %dh, %cl - shrl $16, %eax - movl 0x100+des_SPtrans(%ebx),%ebp - xorl %ebp, %edi - movb %ah, %bl - shrl $16, %edx - movl 0x300+des_SPtrans(%ecx),%ebp - xorl %ebp, %edi - movl 24(%esp), %ebp - movb %dh, %cl - andl $0xff, %eax - andl $0xff, %edx - movl 0x600+des_SPtrans(%ebx),%ebx - xorl %ebx, %edi - movl 0x700+des_SPtrans(%ecx),%ebx - xorl %ebx, %edi - movl 0x400+des_SPtrans(%eax),%ebx - xorl %ebx, %edi - movl 0x500+des_SPtrans(%edx),%ebx - xorl %ebx, %edi - - /* Round 7 */ - movl 28(%esp), %eax - movl %edi, %edx - shrl $16, %edx - movl 32(%esp), %ecx - xorl %edi, %edx - andl %edx, %eax - andl %ecx, %edx - movl %eax, %ebx - sall $16, %ebx - movl %edx, %ecx - sall $16, %ecx - xorl %ebx, %eax - xorl %ecx, %edx - movl 56(%ebp), %ebx - xorl %ebx, %eax - movl 60(%ebp), %ecx - xorl %edi, %eax - xorl %edi, %edx - xorl %ecx, %edx - andl $0xfcfcfcfc, %eax - xorl %ebx, %ebx - andl $0xcfcfcfcf, %edx - xorl %ecx, %ecx - movb %al, %bl - movb %ah, %cl - rorl $4, %edx - movl des_SPtrans(%ebx),%ebp - movb %dl, %bl - xorl %ebp, %esi - movl 0x200+des_SPtrans(%ecx),%ebp - xorl %ebp, %esi - movb %dh, %cl - shrl $16, %eax - movl 0x100+des_SPtrans(%ebx),%ebp - xorl %ebp, %esi - movb %ah, %bl - shrl $16, %edx - movl 0x300+des_SPtrans(%ecx),%ebp - xorl %ebp, %esi - movl 24(%esp), %ebp - movb %dh, %cl - andl $0xff, %eax - andl $0xff, %edx - movl 0x600+des_SPtrans(%ebx),%ebx - xorl %ebx, %esi - movl 0x700+des_SPtrans(%ecx),%ebx - xorl %ebx, %esi - movl 0x400+des_SPtrans(%eax),%ebx - xorl %ebx, %esi - movl 0x500+des_SPtrans(%edx),%ebx - xorl %ebx, %esi - - /* Round 8 */ - movl 28(%esp), %eax - movl %esi, %edx - shrl $16, %edx - movl 32(%esp), %ecx - xorl %esi, %edx - andl %edx, %eax - andl %ecx, %edx - movl %eax, %ebx - sall $16, %ebx - movl %edx, %ecx - sall $16, %ecx - xorl %ebx, %eax - xorl %ecx, %edx - movl 64(%ebp), %ebx - xorl %ebx, %eax - movl 68(%ebp), %ecx - xorl %esi, %eax - xorl %esi, %edx - xorl %ecx, %edx - andl $0xfcfcfcfc, %eax - xorl %ebx, %ebx - andl $0xcfcfcfcf, %edx - xorl %ecx, %ecx - movb %al, %bl - movb %ah, %cl - rorl $4, %edx - movl des_SPtrans(%ebx),%ebp - movb %dl, %bl - xorl %ebp, %edi - movl 0x200+des_SPtrans(%ecx),%ebp - xorl %ebp, %edi - movb %dh, %cl - shrl $16, %eax - movl 0x100+des_SPtrans(%ebx),%ebp - xorl %ebp, %edi - movb %ah, %bl - shrl $16, %edx - movl 0x300+des_SPtrans(%ecx),%ebp - xorl %ebp, %edi - movl 24(%esp), %ebp - movb %dh, %cl - andl $0xff, %eax - andl $0xff, %edx - movl 0x600+des_SPtrans(%ebx),%ebx - xorl %ebx, %edi - movl 0x700+des_SPtrans(%ecx),%ebx - xorl %ebx, %edi - movl 0x400+des_SPtrans(%eax),%ebx - xorl %ebx, %edi - movl 0x500+des_SPtrans(%edx),%ebx - xorl %ebx, %edi - - /* Round 9 */ - movl 28(%esp), %eax - movl %edi, %edx - shrl $16, %edx - movl 32(%esp), %ecx - xorl %edi, %edx - andl %edx, %eax - andl %ecx, %edx - movl %eax, %ebx - sall $16, %ebx - movl %edx, %ecx - sall $16, %ecx - xorl %ebx, %eax - xorl %ecx, %edx - movl 72(%ebp), %ebx - xorl %ebx, %eax - movl 76(%ebp), %ecx - xorl %edi, %eax - xorl %edi, %edx - xorl %ecx, %edx - andl $0xfcfcfcfc, %eax - xorl %ebx, %ebx - andl $0xcfcfcfcf, %edx - xorl %ecx, %ecx - movb %al, %bl - movb %ah, %cl - rorl $4, %edx - movl des_SPtrans(%ebx),%ebp - movb %dl, %bl - xorl %ebp, %esi - movl 0x200+des_SPtrans(%ecx),%ebp - xorl %ebp, %esi - movb %dh, %cl - shrl $16, %eax - movl 0x100+des_SPtrans(%ebx),%ebp - xorl %ebp, %esi - movb %ah, %bl - shrl $16, %edx - movl 0x300+des_SPtrans(%ecx),%ebp - xorl %ebp, %esi - movl 24(%esp), %ebp - movb %dh, %cl - andl $0xff, %eax - andl $0xff, %edx - movl 0x600+des_SPtrans(%ebx),%ebx - xorl %ebx, %esi - movl 0x700+des_SPtrans(%ecx),%ebx - xorl %ebx, %esi - movl 0x400+des_SPtrans(%eax),%ebx - xorl %ebx, %esi - movl 0x500+des_SPtrans(%edx),%ebx - xorl %ebx, %esi - - /* Round 10 */ - movl 28(%esp), %eax - movl %esi, %edx - shrl $16, %edx - movl 32(%esp), %ecx - xorl %esi, %edx - andl %edx, %eax - andl %ecx, %edx - movl %eax, %ebx - sall $16, %ebx - movl %edx, %ecx - sall $16, %ecx - xorl %ebx, %eax - xorl %ecx, %edx - movl 80(%ebp), %ebx - xorl %ebx, %eax - movl 84(%ebp), %ecx - xorl %esi, %eax - xorl %esi, %edx - xorl %ecx, %edx - andl $0xfcfcfcfc, %eax - xorl %ebx, %ebx - andl $0xcfcfcfcf, %edx - xorl %ecx, %ecx - movb %al, %bl - movb %ah, %cl - rorl $4, %edx - movl des_SPtrans(%ebx),%ebp - movb %dl, %bl - xorl %ebp, %edi - movl 0x200+des_SPtrans(%ecx),%ebp - xorl %ebp, %edi - movb %dh, %cl - shrl $16, %eax - movl 0x100+des_SPtrans(%ebx),%ebp - xorl %ebp, %edi - movb %ah, %bl - shrl $16, %edx - movl 0x300+des_SPtrans(%ecx),%ebp - xorl %ebp, %edi - movl 24(%esp), %ebp - movb %dh, %cl - andl $0xff, %eax - andl $0xff, %edx - movl 0x600+des_SPtrans(%ebx),%ebx - xorl %ebx, %edi - movl 0x700+des_SPtrans(%ecx),%ebx - xorl %ebx, %edi - movl 0x400+des_SPtrans(%eax),%ebx - xorl %ebx, %edi - movl 0x500+des_SPtrans(%edx),%ebx - xorl %ebx, %edi - - /* Round 11 */ - movl 28(%esp), %eax - movl %edi, %edx - shrl $16, %edx - movl 32(%esp), %ecx - xorl %edi, %edx - andl %edx, %eax - andl %ecx, %edx - movl %eax, %ebx - sall $16, %ebx - movl %edx, %ecx - sall $16, %ecx - xorl %ebx, %eax - xorl %ecx, %edx - movl 88(%ebp), %ebx - xorl %ebx, %eax - movl 92(%ebp), %ecx - xorl %edi, %eax - xorl %edi, %edx - xorl %ecx, %edx - andl $0xfcfcfcfc, %eax - xorl %ebx, %ebx - andl $0xcfcfcfcf, %edx - xorl %ecx, %ecx - movb %al, %bl - movb %ah, %cl - rorl $4, %edx - movl des_SPtrans(%ebx),%ebp - movb %dl, %bl - xorl %ebp, %esi - movl 0x200+des_SPtrans(%ecx),%ebp - xorl %ebp, %esi - movb %dh, %cl - shrl $16, %eax - movl 0x100+des_SPtrans(%ebx),%ebp - xorl %ebp, %esi - movb %ah, %bl - shrl $16, %edx - movl 0x300+des_SPtrans(%ecx),%ebp - xorl %ebp, %esi - movl 24(%esp), %ebp - movb %dh, %cl - andl $0xff, %eax - andl $0xff, %edx - movl 0x600+des_SPtrans(%ebx),%ebx - xorl %ebx, %esi - movl 0x700+des_SPtrans(%ecx),%ebx - xorl %ebx, %esi - movl 0x400+des_SPtrans(%eax),%ebx - xorl %ebx, %esi - movl 0x500+des_SPtrans(%edx),%ebx - xorl %ebx, %esi - - /* Round 12 */ - movl 28(%esp), %eax - movl %esi, %edx - shrl $16, %edx - movl 32(%esp), %ecx - xorl %esi, %edx - andl %edx, %eax - andl %ecx, %edx - movl %eax, %ebx - sall $16, %ebx - movl %edx, %ecx - sall $16, %ecx - xorl %ebx, %eax - xorl %ecx, %edx - movl 96(%ebp), %ebx - xorl %ebx, %eax - movl 100(%ebp), %ecx - xorl %esi, %eax - xorl %esi, %edx - xorl %ecx, %edx - andl $0xfcfcfcfc, %eax - xorl %ebx, %ebx - andl $0xcfcfcfcf, %edx - xorl %ecx, %ecx - movb %al, %bl - movb %ah, %cl - rorl $4, %edx - movl des_SPtrans(%ebx),%ebp - movb %dl, %bl - xorl %ebp, %edi - movl 0x200+des_SPtrans(%ecx),%ebp - xorl %ebp, %edi - movb %dh, %cl - shrl $16, %eax - movl 0x100+des_SPtrans(%ebx),%ebp - xorl %ebp, %edi - movb %ah, %bl - shrl $16, %edx - movl 0x300+des_SPtrans(%ecx),%ebp - xorl %ebp, %edi - movl 24(%esp), %ebp - movb %dh, %cl - andl $0xff, %eax - andl $0xff, %edx - movl 0x600+des_SPtrans(%ebx),%ebx - xorl %ebx, %edi - movl 0x700+des_SPtrans(%ecx),%ebx - xorl %ebx, %edi - movl 0x400+des_SPtrans(%eax),%ebx - xorl %ebx, %edi - movl 0x500+des_SPtrans(%edx),%ebx - xorl %ebx, %edi - - /* Round 13 */ - movl 28(%esp), %eax - movl %edi, %edx - shrl $16, %edx - movl 32(%esp), %ecx - xorl %edi, %edx - andl %edx, %eax - andl %ecx, %edx - movl %eax, %ebx - sall $16, %ebx - movl %edx, %ecx - sall $16, %ecx - xorl %ebx, %eax - xorl %ecx, %edx - movl 104(%ebp), %ebx - xorl %ebx, %eax - movl 108(%ebp), %ecx - xorl %edi, %eax - xorl %edi, %edx - xorl %ecx, %edx - andl $0xfcfcfcfc, %eax - xorl %ebx, %ebx - andl $0xcfcfcfcf, %edx - xorl %ecx, %ecx - movb %al, %bl - movb %ah, %cl - rorl $4, %edx - movl des_SPtrans(%ebx),%ebp - movb %dl, %bl - xorl %ebp, %esi - movl 0x200+des_SPtrans(%ecx),%ebp - xorl %ebp, %esi - movb %dh, %cl - shrl $16, %eax - movl 0x100+des_SPtrans(%ebx),%ebp - xorl %ebp, %esi - movb %ah, %bl - shrl $16, %edx - movl 0x300+des_SPtrans(%ecx),%ebp - xorl %ebp, %esi - movl 24(%esp), %ebp - movb %dh, %cl - andl $0xff, %eax - andl $0xff, %edx - movl 0x600+des_SPtrans(%ebx),%ebx - xorl %ebx, %esi - movl 0x700+des_SPtrans(%ecx),%ebx - xorl %ebx, %esi - movl 0x400+des_SPtrans(%eax),%ebx - xorl %ebx, %esi - movl 0x500+des_SPtrans(%edx),%ebx - xorl %ebx, %esi - - /* Round 14 */ - movl 28(%esp), %eax - movl %esi, %edx - shrl $16, %edx - movl 32(%esp), %ecx - xorl %esi, %edx - andl %edx, %eax - andl %ecx, %edx - movl %eax, %ebx - sall $16, %ebx - movl %edx, %ecx - sall $16, %ecx - xorl %ebx, %eax - xorl %ecx, %edx - movl 112(%ebp), %ebx - xorl %ebx, %eax - movl 116(%ebp), %ecx - xorl %esi, %eax - xorl %esi, %edx - xorl %ecx, %edx - andl $0xfcfcfcfc, %eax - xorl %ebx, %ebx - andl $0xcfcfcfcf, %edx - xorl %ecx, %ecx - movb %al, %bl - movb %ah, %cl - rorl $4, %edx - movl des_SPtrans(%ebx),%ebp - movb %dl, %bl - xorl %ebp, %edi - movl 0x200+des_SPtrans(%ecx),%ebp - xorl %ebp, %edi - movb %dh, %cl - shrl $16, %eax - movl 0x100+des_SPtrans(%ebx),%ebp - xorl %ebp, %edi - movb %ah, %bl - shrl $16, %edx - movl 0x300+des_SPtrans(%ecx),%ebp - xorl %ebp, %edi - movl 24(%esp), %ebp - movb %dh, %cl - andl $0xff, %eax - andl $0xff, %edx - movl 0x600+des_SPtrans(%ebx),%ebx - xorl %ebx, %edi - movl 0x700+des_SPtrans(%ecx),%ebx - xorl %ebx, %edi - movl 0x400+des_SPtrans(%eax),%ebx - xorl %ebx, %edi - movl 0x500+des_SPtrans(%edx),%ebx - xorl %ebx, %edi - - /* Round 15 */ - movl 28(%esp), %eax - movl %edi, %edx - shrl $16, %edx - movl 32(%esp), %ecx - xorl %edi, %edx - andl %edx, %eax - andl %ecx, %edx - movl %eax, %ebx - sall $16, %ebx - movl %edx, %ecx - sall $16, %ecx - xorl %ebx, %eax - xorl %ecx, %edx - movl 120(%ebp), %ebx - xorl %ebx, %eax - movl 124(%ebp), %ecx - xorl %edi, %eax - xorl %edi, %edx - xorl %ecx, %edx - andl $0xfcfcfcfc, %eax - xorl %ebx, %ebx - andl $0xcfcfcfcf, %edx - xorl %ecx, %ecx - movb %al, %bl - movb %ah, %cl - rorl $4, %edx - movl des_SPtrans(%ebx),%ebp - movb %dl, %bl - xorl %ebp, %esi - movl 0x200+des_SPtrans(%ecx),%ebp - xorl %ebp, %esi - movb %dh, %cl - shrl $16, %eax - movl 0x100+des_SPtrans(%ebx),%ebp - xorl %ebp, %esi - movb %ah, %bl - shrl $16, %edx - movl 0x300+des_SPtrans(%ecx),%ebp - xorl %ebp, %esi - movl 24(%esp), %ebp - movb %dh, %cl - andl $0xff, %eax - andl $0xff, %edx - movl 0x600+des_SPtrans(%ebx),%ebx - xorl %ebx, %esi - movl 0x700+des_SPtrans(%ecx),%ebx - xorl %ebx, %esi - movl 0x400+des_SPtrans(%eax),%ebx - xorl %ebx, %esi - movl 0x500+des_SPtrans(%edx),%ebx - xorl %ebx, %esi - movl %edi, %eax - decl -8(%esp) - movl %esi, %edi - movl %eax, %esi - jnz .L000start - - /* FP */ - movl 20(%esp), %edx - rorl $1, %edi - movl %esi, %eax - xorl %edi, %esi - andl $0xaaaaaaaa, %esi - xorl %esi, %eax - xorl %esi, %edi - - roll $23, %eax - movl %eax, %esi - xorl %edi, %eax - andl $0x03fc03fc, %eax - xorl %eax, %esi - xorl %eax, %edi - - roll $10, %esi - movl %esi, %eax - xorl %edi, %esi - andl $0x33333333, %esi - xorl %esi, %eax - xorl %esi, %edi - - roll $18, %edi - movl %edi, %esi - xorl %eax, %edi - andl $0xfff0000f, %edi - xorl %edi, %esi - xorl %edi, %eax - - roll $12, %esi - movl %esi, %edi - xorl %eax, %esi - andl $0xf0f0f0f0, %esi - xorl %esi, %edi - xorl %esi, %eax - - rorl $4, %eax - movl %eax, (%edx) - movl %edi, 4(%edx) - popl %edi - popl %esi - popl %ebx - popl %ebp - ret -.fcrypt_body_end: - SIZE(fcrypt_body,.fcrypt_body_end-fcrypt_body) -.ident "desasm.pl" diff --git a/crypto/des/asm/cx86unix.cpp b/crypto/des/asm/cx86unix.cpp deleted file mode 100644 index 90f87c9..0000000 --- a/crypto/des/asm/cx86unix.cpp +++ /dev/null @@ -1,35 +0,0 @@ - -#define TYPE(a,b) .type a,b -#define SIZE(a,b) .size a,b - -#ifdef OUT -#define OK 1 -#define des_SPtrans _des_SPtrans -#define fcrypt_body _fcrypt_body -#define ALIGN 4 -#endif - -#ifdef BSDI -#define OK 1 -#define des_SPtrans _des_SPtrans -#define fcrypt_body _fcrypt_body -#define ALIGN 4 -#undef SIZE -#undef TYPE -#endif - -#if defined(ELF) || defined(SOL) -#define OK 1 -#define ALIGN 16 -#endif - -#ifndef OK -You need to define one of -ELF - elf systems - linux-elf, NetBSD and DG-UX -OUT - a.out systems - linux-a.out and FreeBSD -SOL - solaris systems, which are elf with strange comment lines -BSDI - a.out with a very primative version of as. -#endif - -#include "cx86-cpp.s" - diff --git a/crypto/des/asm/d-win32.uu b/crypto/des/asm/d-win32.uu deleted file mode 100644 index 70d6383..0000000 --- a/crypto/des/asm/d-win32.uu +++ /dev/null @@ -1,319 +0,0 @@ -begin 640 d-win32.obj -M3`$"`/4&DC-`-@``#``````````N=&5X=```````````````W"$``&0```!` -M(@`````````"```@`#!@+F1A=&$```#<(0````````````!`-@`````````` -M````````0``PP%535E>+="04,\F+!HM<)!R+?@3!P`2+\#/')?#P\/`S\#/X -MP<<4B\<S_H'G#P#P_S/',_?!P`Z+^#/&)3,S,S,S^#/PP<86B\8S]X'F_`/\ -M`S/&,_[!P`F+\#/'):JJJJHS\#/XT<>#^P"+;"08#X2U!P``BT4`,]N+500S -MQC/6)?S\_/R!XL_/S\^*V(K,P<H$BZL`````BMHS_8NI``(``#/]BL[!Z!"+ -MJP`!```S_8K<P>H0BZD``P``,_V+;"08BLXE_P```('B_P```(N;``8``#/[ -MBYD`!P``,_N+F``$```S^XN:``4``#/[BT4(,]N+50PSQS/7)?S\_/R!XL_/ -MS\^*V(K,P<H$BZL`````BMHS]8NI``(``#/UBL[!Z!"+JP`!```S]8K<P>H0 -MBZD``P``,_6+;"08BLXE_P```('B_P```(N;``8``#/SBYD`!P``,_.+F``$ -M```S\XN:``4``#/SBT40,]N+510SQC/6)?S\_/R!XL_/S\^*V(K,P<H$BZL` -M````BMHS_8NI``(``#/]BL[!Z!"+JP`!```S_8K<P>H0BZD``P``,_V+;"08 -MBLXE_P```('B_P```(N;``8``#/[BYD`!P``,_N+F``$```S^XN:``4``#/[ -MBT48,]N+51PSQS/7)?S\_/R!XL_/S\^*V(K,P<H$BZL`````BMHS]8NI``(` -M`#/UBL[!Z!"+JP`!```S]8K<P>H0BZD``P``,_6+;"08BLXE_P```('B_P`` -M`(N;``8``#/SBYD`!P``,_.+F``$```S\XN:``4``#/SBT4@,]N+520SQC/6 -M)?S\_/R!XL_/S\^*V(K,P<H$BZL`````BMHS_8NI``(``#/]BL[!Z!"+JP`! -M```S_8K<P>H0BZD``P``,_V+;"08BLXE_P```('B_P```(N;``8``#/[BYD` -M!P``,_N+F``$```S^XN:``4``#/[BT4H,]N+52PSQS/7)?S\_/R!XL_/S\^* -MV(K,P<H$BZL`````BMHS]8NI``(``#/UBL[!Z!"+JP`!```S]8K<P>H0BZD` -M`P``,_6+;"08BLXE_P```('B_P```(N;``8``#/SBYD`!P``,_.+F``$```S -M\XN:``4``#/SBT4P,]N+530SQC/6)?S\_/R!XL_/S\^*V(K,P<H$BZL````` -MBMHS_8NI``(``#/]BL[!Z!"+JP`!```S_8K<P>H0BZD``P``,_V+;"08BLXE -M_P```('B_P```(N;``8``#/[BYD`!P``,_N+F``$```S^XN:``4``#/[BT4X -M,]N+53PSQS/7)?S\_/R!XL_/S\^*V(K,P<H$BZL`````BMHS]8NI``(``#/U -MBL[!Z!"+JP`!```S]8K<P>H0BZD``P``,_6+;"08BLXE_P```('B_P```(N; -M``8``#/SBYD`!P``,_.+F``$```S\XN:``4``#/SBT5`,]N+540SQC/6)?S\ -M_/R!XL_/S\^*V(K,P<H$BZL`````BMHS_8NI``(``#/]BL[!Z!"+JP`!```S -M_8K<P>H0BZD``P``,_V+;"08BLXE_P```('B_P```(N;``8``#/[BYD`!P`` -M,_N+F``$```S^XN:``4``#/[BT5(,]N+54PSQS/7)?S\_/R!XL_/S\^*V(K, -MP<H$BZL`````BMHS]8NI``(``#/UBL[!Z!"+JP`!```S]8K<P>H0BZD``P`` -M,_6+;"08BLXE_P```('B_P```(N;``8``#/SBYD`!P``,_.+F``$```S\XN: -M``4``#/SBT50,]N+550SQC/6)?S\_/R!XL_/S\^*V(K,P<H$BZL`````BMHS -M_8NI``(``#/]BL[!Z!"+JP`!```S_8K<P>H0BZD``P``,_V+;"08BLXE_P`` -M`('B_P```(N;``8``#/[BYD`!P``,_N+F``$```S^XN:``4``#/[BT58,]N+ -M55PSQS/7)?S\_/R!XL_/S\^*V(K,P<H$BZL`````BMHS]8NI``(``#/UBL[! -MZ!"+JP`!```S]8K<P>H0BZD``P``,_6+;"08BLXE_P```('B_P```(N;``8` -M`#/SBYD`!P``,_.+F``$```S\XN:``4``#/SBT5@,]N+560SQC/6)?S\_/R! -MXL_/S\^*V(K,P<H$BZL`````BMHS_8NI``(``#/]BL[!Z!"+JP`!```S_8K< -MP>H0BZD``P``,_V+;"08BLXE_P```('B_P```(N;``8``#/[BYD`!P``,_N+ -MF``$```S^XN:``4``#/[BT5H,]N+56PSQS/7)?S\_/R!XL_/S\^*V(K,P<H$ -MBZL`````BMHS]8NI``(``#/UBL[!Z!"+JP`!```S]8K<P>H0BZD``P``,_6+ -M;"08BLXE_P```('B_P```(N;``8``#/SBYD`!P``,_.+F``$```S\XN:``4` -M`#/SBT5P,]N+570SQC/6)?S\_/R!XL_/S\^*V(K,P<H$BZL`````BMHS_8NI -M``(``#/]BL[!Z!"+JP`!```S_8K<P>H0BZD``P``,_V+;"08BLXE_P```('B -M_P```(N;``8``#/[BYD`!P``,_N+F``$```S^XN:``4``#/[BT5X,]N+57PS -MQS/7)?S\_/R!XL_/S\^*V(K,P<H$BZL`````BMHS]8NI``(``#/UBL[!Z!"+ -MJP`!```S]8K<P>H0BZD``P``,_6+;"08BLXE_P```('B_P```(N;``8``#/S -MBYD`!P``,_.+F``$```S\XN:``4``#/SZ;`'``"+17@SVXM5?#/&,]8E_/S\ -M_('BS\_/SXK8BLS!R@2+JP````"*VC/]BZD``@``,_V*SL'H$(NK``$``#/] -MBMS!ZA"+J0`#```S_8ML)!B*SB7_````@>+_````BYL`!@``,_N+F0`'```S -M^XN8``0``#/[BYH`!0``,_N+17`SVXM5=#/',]<E_/S\_('BS\_/SXK8BLS! -MR@2+JP````"*VC/UBZD``@``,_6*SL'H$(NK``$``#/UBMS!ZA"+J0`#```S -M]8ML)!B*SB7_````@>+_````BYL`!@``,_.+F0`'```S\XN8``0``#/SBYH` -M!0``,_.+16@SVXM5;#/&,]8E_/S\_('BS\_/SXK8BLS!R@2+JP````"*VC/] -MBZD``@``,_V*SL'H$(NK``$``#/]BMS!ZA"+J0`#```S_8ML)!B*SB7_```` -M@>+_````BYL`!@``,_N+F0`'```S^XN8``0``#/[BYH`!0``,_N+16`SVXM5 -M9#/',]<E_/S\_('BS\_/SXK8BLS!R@2+JP````"*VC/UBZD``@``,_6*SL'H -M$(NK``$``#/UBMS!ZA"+J0`#```S]8ML)!B*SB7_````@>+_````BYL`!@`` -M,_.+F0`'```S\XN8``0``#/SBYH`!0``,_.+15@SVXM57#/&,]8E_/S\_('B -MS\_/SXK8BLS!R@2+JP````"*VC/]BZD``@``,_V*SL'H$(NK``$``#/]BMS! -MZA"+J0`#```S_8ML)!B*SB7_````@>+_````BYL`!@``,_N+F0`'```S^XN8 -M``0``#/[BYH`!0``,_N+15`SVXM55#/',]<E_/S\_('BS\_/SXK8BLS!R@2+ -MJP````"*VC/UBZD``@``,_6*SL'H$(NK``$``#/UBMS!ZA"+J0`#```S]8ML -M)!B*SB7_````@>+_````BYL`!@``,_.+F0`'```S\XN8``0``#/SBYH`!0`` -M,_.+14@SVXM53#/&,]8E_/S\_('BS\_/SXK8BLS!R@2+JP````"*VC/]BZD` -M`@``,_V*SL'H$(NK``$``#/]BMS!ZA"+J0`#```S_8ML)!B*SB7_````@>+_ -M````BYL`!@``,_N+F0`'```S^XN8``0``#/[BYH`!0``,_N+14`SVXM51#/' -M,]<E_/S\_('BS\_/SXK8BLS!R@2+JP````"*VC/UBZD``@``,_6*SL'H$(NK -M``$``#/UBMS!ZA"+J0`#```S]8ML)!B*SB7_````@>+_````BYL`!@``,_.+ -MF0`'```S\XN8``0``#/SBYH`!0``,_.+13@SVXM5/#/&,]8E_/S\_('BS\_/ -MSXK8BLS!R@2+JP````"*VC/]BZD``@``,_V*SL'H$(NK``$``#/]BMS!ZA"+ -MJ0`#```S_8ML)!B*SB7_````@>+_````BYL`!@``,_N+F0`'```S^XN8``0` -M`#/[BYH`!0``,_N+13`SVXM5-#/',]<E_/S\_('BS\_/SXK8BLS!R@2+JP`` -M``"*VC/UBZD``@``,_6*SL'H$(NK``$``#/UBMS!ZA"+J0`#```S]8ML)!B* -MSB7_````@>+_````BYL`!@``,_.+F0`'```S\XN8``0``#/SBYH`!0``,_.+ -M12@SVXM5+#/&,]8E_/S\_('BS\_/SXK8BLS!R@2+JP````"*VC/]BZD``@`` -M,_V*SL'H$(NK``$``#/]BMS!ZA"+J0`#```S_8ML)!B*SB7_````@>+_```` -MBYL`!@``,_N+F0`'```S^XN8``0``#/[BYH`!0``,_N+12`SVXM5)#/',]<E -M_/S\_('BS\_/SXK8BLS!R@2+JP````"*VC/UBZD``@``,_6*SL'H$(NK``$` -M`#/UBMS!ZA"+J0`#```S]8ML)!B*SB7_````@>+_````BYL`!@``,_.+F0`' -M```S\XN8``0``#/SBYH`!0``,_.+11@SVXM5'#/&,]8E_/S\_('BS\_/SXK8 -MBLS!R@2+JP````"*VC/]BZD``@``,_V*SL'H$(NK``$``#/]BMS!ZA"+J0`# -M```S_8ML)!B*SB7_````@>+_````BYL`!@``,_N+F0`'```S^XN8``0``#/[ -MBYH`!0``,_N+11`SVXM5%#/',]<E_/S\_('BS\_/SXK8BLS!R@2+JP````"* -MVC/UBZD``@``,_6*SL'H$(NK``$``#/UBMS!ZA"+J0`#```S]8ML)!B*SB7_ -M````@>+_````BYL`!@``,_.+F0`'```S\XN8``0``#/SBYH`!0``,_.+10@S -MVXM5##/&,]8E_/S\_('BS\_/SXK8BLS!R@2+JP````"*VC/]BZD``@``,_V* -MSL'H$(NK``$``#/]BMS!ZA"+J0`#```S_8ML)!B*SB7_````@>+_````BYL` -M!@``,_N+F0`'```S^XN8``0``#/[BYH`!0``,_N+10`SVXM5!#/',]<E_/S\ -M_('BS\_/SXK8BLS!R@2+JP````"*VC/UBZD``@``,_6*SL'H$(NK``$``#/U -MBMS!ZA"+J0`#```S]8ML)!B*SB7_````@>+_````BYL`!@``,_.+F0`'```S -M\XN8``0``#/SBYH`!0``,_.+5"04T<Z+QS/^@>>JJJJJ,\<S]\'`%XOX,\8E -M_`/\`S/X,_#!QPJ+QS/^@><S,S,S,\<S]\'&$HO^,_"!Y@\`\/\S_C/&P<<, -MB_<S^('G\/#P\#/W,\?!R`2)`HER!%]>6UW#55-65XM$)!0SR8LPBUPD','& -M`XMX!,''`X/[`(ML)!@/A+4'``"+10`SVXM5!#/&,]8E_/S\_('BS\_/SXK8 -MBLS!R@2+JP````"*VC/]BZD``@``,_V*SL'H$(NK``$``#/]BMS!ZA"+J0`# -M```S_8ML)!B*SB7_````@>+_````BYL`!@``,_N+F0`'```S^XN8``0``#/[ -MBYH`!0``,_N+10@SVXM5##/',]<E_/S\_('BS\_/SXK8BLS!R@2+JP````"* -MVC/UBZD``@``,_6*SL'H$(NK``$``#/UBMS!ZA"+J0`#```S]8ML)!B*SB7_ -M````@>+_````BYL`!@``,_.+F0`'```S\XN8``0``#/SBYH`!0``,_.+11`S -MVXM5%#/&,]8E_/S\_('BS\_/SXK8BLS!R@2+JP````"*VC/]BZD``@``,_V* -MSL'H$(NK``$``#/]BMS!ZA"+J0`#```S_8ML)!B*SB7_````@>+_````BYL` -M!@``,_N+F0`'```S^XN8``0``#/[BYH`!0``,_N+11@SVXM5'#/',]<E_/S\ -M_('BS\_/SXK8BLS!R@2+JP````"*VC/UBZD``@``,_6*SL'H$(NK``$``#/U -MBMS!ZA"+J0`#```S]8ML)!B*SB7_````@>+_````BYL`!@``,_.+F0`'```S -M\XN8``0``#/SBYH`!0``,_.+12`SVXM5)#/&,]8E_/S\_('BS\_/SXK8BLS! -MR@2+JP````"*VC/]BZD``@``,_V*SL'H$(NK``$``#/]BMS!ZA"+J0`#```S -M_8ML)!B*SB7_````@>+_````BYL`!@``,_N+F0`'```S^XN8``0``#/[BYH` -M!0``,_N+12@SVXM5+#/',]<E_/S\_('BS\_/SXK8BLS!R@2+JP````"*VC/U -MBZD``@``,_6*SL'H$(NK``$``#/UBMS!ZA"+J0`#```S]8ML)!B*SB7_```` -M@>+_````BYL`!@``,_.+F0`'```S\XN8``0``#/SBYH`!0``,_.+13`SVXM5 -M-#/&,]8E_/S\_('BS\_/SXK8BLS!R@2+JP````"*VC/]BZD``@``,_V*SL'H -M$(NK``$``#/]BMS!ZA"+J0`#```S_8ML)!B*SB7_````@>+_````BYL`!@`` -M,_N+F0`'```S^XN8``0``#/[BYH`!0``,_N+13@SVXM5/#/',]<E_/S\_('B -MS\_/SXK8BLS!R@2+JP````"*VC/UBZD``@``,_6*SL'H$(NK``$``#/UBMS! -MZA"+J0`#```S]8ML)!B*SB7_````@>+_````BYL`!@``,_.+F0`'```S\XN8 -M``0``#/SBYH`!0``,_.+14`SVXM51#/&,]8E_/S\_('BS\_/SXK8BLS!R@2+ -MJP````"*VC/]BZD``@``,_V*SL'H$(NK``$``#/]BMS!ZA"+J0`#```S_8ML -M)!B*SB7_````@>+_````BYL`!@``,_N+F0`'```S^XN8``0``#/[BYH`!0`` -M,_N+14@SVXM53#/',]<E_/S\_('BS\_/SXK8BLS!R@2+JP````"*VC/UBZD` -M`@``,_6*SL'H$(NK``$``#/UBMS!ZA"+J0`#```S]8ML)!B*SB7_````@>+_ -M````BYL`!@``,_.+F0`'```S\XN8``0``#/SBYH`!0``,_.+15`SVXM55#/& -M,]8E_/S\_('BS\_/SXK8BLS!R@2+JP````"*VC/]BZD``@``,_V*SL'H$(NK -M``$``#/]BMS!ZA"+J0`#```S_8ML)!B*SB7_````@>+_````BYL`!@``,_N+ -MF0`'```S^XN8``0``#/[BYH`!0``,_N+15@SVXM57#/',]<E_/S\_('BS\_/ -MSXK8BLS!R@2+JP````"*VC/UBZD``@``,_6*SL'H$(NK``$``#/UBMS!ZA"+ -MJ0`#```S]8ML)!B*SB7_````@>+_````BYL`!@``,_.+F0`'```S\XN8``0` -M`#/SBYH`!0``,_.+16`SVXM59#/&,]8E_/S\_('BS\_/SXK8BLS!R@2+JP`` -M``"*VC/]BZD``@``,_V*SL'H$(NK``$``#/]BMS!ZA"+J0`#```S_8ML)!B* -MSB7_````@>+_````BYL`!@``,_N+F0`'```S^XN8``0``#/[BYH`!0``,_N+ -M16@SVXM5;#/',]<E_/S\_('BS\_/SXK8BLS!R@2+JP````"*VC/UBZD``@`` -M,_6*SL'H$(NK``$``#/UBMS!ZA"+J0`#```S]8ML)!B*SB7_````@>+_```` -MBYL`!@``,_.+F0`'```S\XN8``0``#/SBYH`!0``,_.+17`SVXM5=#/&,]8E -M_/S\_('BS\_/SXK8BLS!R@2+JP````"*VC/]BZD``@``,_V*SL'H$(NK``$` -M`#/]BMS!ZA"+J0`#```S_8ML)!B*SB7_````@>+_````BYL`!@``,_N+F0`' -M```S^XN8``0``#/[BYH`!0``,_N+17@SVXM5?#/',]<E_/S\_('BS\_/SXK8 -MBLS!R@2+JP````"*VC/UBZD``@``,_6*SL'H$(NK``$``#/UBMS!ZA"+J0`# -M```S]8ML)!B*SB7_````@>+_````BYL`!@``,_.+F0`'```S\XN8``0``#/S -MBYH`!0``,_/IL`<``(M%>#/;BU5\,\8SUB7\_/S\@>+/S\_/BMB*S,'*!(NK -M`````(K:,_V+J0`"```S_8K.P>@0BZL``0``,_V*W,'J$(NI``,``#/]BVPD -M&(K.)?\```"!XO\```"+FP`&```S^XN9``<``#/[BY@`!```,_N+F@`%```S -M^XM%<#/;BU5T,\<SUR7\_/S\@>+/S\_/BMB*S,'*!(NK`````(K:,_6+J0`" -M```S]8K.P>@0BZL``0``,_6*W,'J$(NI``,``#/UBVPD&(K.)?\```"!XO\` -M``"+FP`&```S\XN9``<``#/SBY@`!```,_.+F@`%```S\XM%:#/;BU5L,\8S -MUB7\_/S\@>+/S\_/BMB*S,'*!(NK`````(K:,_V+J0`"```S_8K.P>@0BZL` -M`0``,_V*W,'J$(NI``,``#/]BVPD&(K.)?\```"!XO\```"+FP`&```S^XN9 -M``<``#/[BY@`!```,_N+F@`%```S^XM%8#/;BU5D,\<SUR7\_/S\@>+/S\_/ -MBMB*S,'*!(NK`````(K:,_6+J0`"```S]8K.P>@0BZL``0``,_6*W,'J$(NI -M``,``#/UBVPD&(K.)?\```"!XO\```"+FP`&```S\XN9``<``#/SBY@`!``` -M,_.+F@`%```S\XM%6#/;BU5<,\8SUB7\_/S\@>+/S\_/BMB*S,'*!(NK```` -M`(K:,_V+J0`"```S_8K.P>@0BZL``0``,_V*W,'J$(NI``,``#/]BVPD&(K. -M)?\```"!XO\```"+FP`&```S^XN9``<``#/[BY@`!```,_N+F@`%```S^XM% -M4#/;BU54,\<SUR7\_/S\@>+/S\_/BMB*S,'*!(NK`````(K:,_6+J0`"```S -M]8K.P>@0BZL``0``,_6*W,'J$(NI``,``#/UBVPD&(K.)?\```"!XO\```"+ -MFP`&```S\XN9``<``#/SBY@`!```,_.+F@`%```S\XM%2#/;BU5,,\8SUB7\ -M_/S\@>+/S\_/BMB*S,'*!(NK`````(K:,_V+J0`"```S_8K.P>@0BZL``0`` -M,_V*W,'J$(NI``,``#/]BVPD&(K.)?\```"!XO\```"+FP`&```S^XN9``<` -M`#/[BY@`!```,_N+F@`%```S^XM%0#/;BU5$,\<SUR7\_/S\@>+/S\_/BMB* -MS,'*!(NK`````(K:,_6+J0`"```S]8K.P>@0BZL``0``,_6*W,'J$(NI``,` -M`#/UBVPD&(K.)?\```"!XO\```"+FP`&```S\XN9``<``#/SBY@`!```,_.+ -MF@`%```S\XM%.#/;BU4\,\8SUB7\_/S\@>+/S\_/BMB*S,'*!(NK`````(K: -M,_V+J0`"```S_8K.P>@0BZL``0``,_V*W,'J$(NI``,``#/]BVPD&(K.)?\` -M``"!XO\```"+FP`&```S^XN9``<``#/[BY@`!```,_N+F@`%```S^XM%,#/; -MBU4T,\<SUR7\_/S\@>+/S\_/BMB*S,'*!(NK`````(K:,_6+J0`"```S]8K. -MP>@0BZL``0``,_6*W,'J$(NI``,``#/UBVPD&(K.)?\```"!XO\```"+FP`& -M```S\XN9``<``#/SBY@`!```,_.+F@`%```S\XM%*#/;BU4L,\8SUB7\_/S\ -M@>+/S\_/BMB*S,'*!(NK`````(K:,_V+J0`"```S_8K.P>@0BZL``0``,_V* -MW,'J$(NI``,``#/]BVPD&(K.)?\```"!XO\```"+FP`&```S^XN9``<``#/[ -MBY@`!```,_N+F@`%```S^XM%(#/;BU4D,\<SUR7\_/S\@>+/S\_/BMB*S,'* -M!(NK`````(K:,_6+J0`"```S]8K.P>@0BZL``0``,_6*W,'J$(NI``,``#/U -MBVPD&(K.)?\```"!XO\```"+FP`&```S\XN9``<``#/SBY@`!```,_.+F@`% -M```S\XM%&#/;BU4<,\8SUB7\_/S\@>+/S\_/BMB*S,'*!(NK`````(K:,_V+ -MJ0`"```S_8K.P>@0BZL``0``,_V*W,'J$(NI``,``#/]BVPD&(K.)?\```"! -MXO\```"+FP`&```S^XN9``<``#/[BY@`!```,_N+F@`%```S^XM%$#/;BU44 -M,\<SUR7\_/S\@>+/S\_/BMB*S,'*!(NK`````(K:,_6+J0`"```S]8K.P>@0 -MBZL``0``,_6*W,'J$(NI``,``#/UBVPD&(K.)?\```"!XO\```"+FP`&```S -M\XN9``<``#/SBY@`!```,_.+F@`%```S\XM%"#/;BU4,,\8SUB7\_/S\@>+/ -MS\_/BMB*S,'*!(NK`````(K:,_V+J0`"```S_8K.P>@0BZL``0``,_V*W,'J -M$(NI``,``#/]BVPD&(K.)?\```"!XO\```"+FP`&```S^XN9``<``#/[BY@` -M!```,_N+F@`%```S^XM%`#/;BU4$,\<SUR7\_/S\@>+/S\_/BMB*S,'*!(NK -M`````(K:,_6+J0`"```S]8K.P>@0BZL``0``,_6*W,'J$(NI``,``#/UBVPD -M&(K.)?\```"!XO\```"+FP`&```S\XN9``<``#/SBY@`!```,_.+F@`%```S -M\\'/`XM$)!3!S@.).(EP!%]>6UW#55-65XM<)!2+.XMS!,''!(O7,_Z!Y_#P -M\/`SUS/WP<84B_XS\H'F#P#P_S/^,];!QPZ+]S/Z@><S,S,S,_<SU\'"%HOZ -M,]:!XOP#_`,S^C/RP<<)B]<S_H'GJJJJJC/7,_?!R@/!S@*)<P2+1"08B1.+ -M?"0<BW0D(&H!4%/HW^___VH`5U/HUN___VH!5E/HS>___XL[@\0DBW,$P<8" -MP<<#B\<S_H'GJJJJJC/',_?!P!>+^#/&)?P#_`,S^#/PP<<*B\<S_H'G,S,S -M,S/',_?!QA*+_C/P@>8/`/#_,_XSQL''#(OW,_B!Y_#P\/`S]S/'P<@$B0.) -M<P1?7EM=PU535E>+7"04BSN+<P3!QP2+US/^@>?P\/#P,]<S]\'&%(O^,_*! -MY@\`\/\S_C/6P<<.B_<S^H'G,S,S,S/W,]?!PA:+^C/6@>+\`_P#,_HS\L'' -M"8O7,_Z!YZJJJJHSUS/WP<H#P<X"B7,$BW0D&(D3BWPD'(M$)"!J`%!3Z-_N -M__]J`5=3Z-;N__]J`%93Z,WN__^+.X/$)(MS!,'&`L''`XO',_Z!YZJJJJHS -MQS/WP<`7B_@SQB7\`_P#,_@S\,''"HO',_Z!YS,S,S,SQS/WP<82B_XS\('F -M#P#P_S/^,\;!QPR+]S/X@>?P\/#P,_<SQ\'(!(D#B7,$7UY;7<.4````!P`` -M``8`G@````<````&`*L````'````!@"X````!P````8`T0````<````&`-D` -M```'````!@#A````!P````8`Z0````<````&``\!```'````!@`9`0``!P`` -M``8`)@$```<````&`#,!```'````!@!,`0``!P````8`5`$```<````&`%P! -M```'````!@!D`0``!P````8`B@$```<````&`)0!```'````!@"A`0``!P`` -M``8`K@$```<````&`,<!```'````!@#/`0``!P````8`UP$```<````&`-\! -M```'````!@`%`@``!P````8`#P(```<````&`!P"```'````!@`I`@``!P`` -M``8`0@(```<````&`$H"```'````!@!2`@``!P````8`6@(```<````&`(`" -M```'````!@"*`@``!P````8`EP(```<````&`*0"```'````!@"]`@``!P`` -M``8`Q0(```<````&`,T"```'````!@#5`@``!P````8`^P(```<````&``4# -M```'````!@`2`P``!P````8`'P,```<````&`#@#```'````!@!``P``!P`` -M``8`2`,```<````&`%`#```'````!@!V`P``!P````8`@`,```<````&`(T# -M```'````!@":`P``!P````8`LP,```<````&`+L#```'````!@##`P``!P`` -M``8`RP,```<````&`/$#```'````!@#[`P``!P````8`"`0```<````&`!4$ -M```'````!@`N!```!P````8`-@0```<````&`#X$```'````!@!&!```!P`` -M``8`;`0```<````&`'8$```'````!@"#!```!P````8`D`0```<````&`*D$ -M```'````!@"Q!```!P````8`N00```<````&`,$$```'````!@#G!```!P`` -M``8`\00```<````&`/X$```'````!@`+!0``!P````8`)`4```<````&`"P% -M```'````!@`T!0``!P````8`/`4```<````&`&(%```'````!@!L!0``!P`` -M``8`>04```<````&`(8%```'````!@"?!0``!P````8`IP4```<````&`*\% -M```'````!@"W!0``!P````8`W04```<````&`.<%```'````!@#T!0``!P`` -M``8``08```<````&`!H&```'````!@`B!@``!P````8`*@8```<````&`#(& -M```'````!@!8!@``!P````8`8@8```<````&`&\&```'````!@!\!@``!P`` -M``8`E08```<````&`)T&```'````!@"E!@``!P````8`K08```<````&`-,& -M```'````!@#=!@``!P````8`Z@8```<````&`/<&```'````!@`0!P``!P`` -M``8`&`<```<````&`"`'```'````!@`H!P``!P````8`3@<```<````&`%@' -M```'````!@!E!P``!P````8`<@<```<````&`(L'```'````!@"3!P``!P`` -M``8`FP<```<````&`*,'```'````!@#)!P``!P````8`TP<```<````&`.`' -M```'````!@#M!P``!P````8`!@@```<````&``X(```'````!@`6"```!P`` -M``8`'@@```<````&`$D(```'````!@!3"```!P````8`8`@```<````&`&T( -M```'````!@"&"```!P````8`C@@```<````&`)8(```'````!@">"```!P`` -M``8`Q`@```<````&`,X(```'````!@#;"```!P````8`Z`@```<````&``$) -M```'````!@`)"0``!P````8`$0D```<````&`!D)```'````!@`_"0``!P`` -M``8`20D```<````&`%8)```'````!@!C"0``!P````8`?`D```<````&`(0) -M```'````!@","0``!P````8`E`D```<````&`+H)```'````!@#$"0``!P`` -M``8`T0D```<````&`-X)```'````!@#W"0``!P````8`_PD```<````&``<* -M```'````!@`/"@``!P````8`-0H```<````&`#\*```'````!@!,"@``!P`` -M``8`60H```<````&`'(*```'````!@!Z"@``!P````8`@@H```<````&`(H* -M```'````!@"P"@``!P````8`N@H```<````&`,<*```'````!@#4"@``!P`` -M``8`[0H```<````&`/4*```'````!@#]"@``!P````8`!0L```<````&`"L+ -M```'````!@`U"P``!P````8`0@L```<````&`$\+```'````!@!H"P``!P`` -M``8`<`L```<````&`'@+```'````!@"`"P``!P````8`I@L```<````&`+`+ -M```'````!@"]"P``!P````8`R@L```<````&`.,+```'````!@#K"P``!P`` -M``8`\PL```<````&`/L+```'````!@`A#```!P````8`*PP```<````&`#@, -M```'````!@!%#```!P````8`7@P```<````&`&8,```'````!@!N#```!P`` -M``8`=@P```<````&`)P,```'````!@"F#```!P````8`LPP```<````&`,`, -M```'````!@#9#```!P````8`X0P```<````&`.D,```'````!@#Q#```!P`` -M``8`%PT```<````&`"$-```'````!@`N#0``!P````8`.PT```<````&`%0- -M```'````!@!<#0``!P````8`9`T```<````&`&P-```'````!@"2#0``!P`` -M``8`G`T```<````&`*D-```'````!@"V#0``!P````8`SPT```<````&`-<- -M```'````!@#?#0``!P````8`YPT```<````&``T.```'````!@`7#@``!P`` -M``8`)`X```<````&`#$.```'````!@!*#@``!P````8`4@X```<````&`%H. -M```'````!@!B#@``!P````8`B`X```<````&`)(.```'````!@"?#@``!P`` -M``8`K`X```<````&`,4.```'````!@#-#@``!P````8`U0X```<````&`-T. -M```'````!@`##P``!P````8`#0\```<````&`!H/```'````!@`G#P``!P`` -M``8`0`\```<````&`$@/```'````!@!0#P``!P````8`6`\```<````&`'X/ -M```'````!@"(#P``!P````8`E0\```<````&`*(/```'````!@"[#P``!P`` -M``8`PP\```<````&`,L/```'````!@#3#P``!P````8`@Q````<````&`(T0 -M```'````!@":$```!P````8`IQ````<````&`,`0```'````!@#($```!P`` -M``8`T!````<````&`-@0```'````!@#^$```!P````8`"!$```<````&`!41 -M```'````!@`B$0``!P````8`.Q$```<````&`$,1```'````!@!+$0``!P`` -M``8`4Q$```<````&`'D1```'````!@"#$0``!P````8`D!$```<````&`)T1 -M```'````!@"V$0``!P````8`OA$```<````&`,81```'````!@#.$0``!P`` -M``8`]!$```<````&`/X1```'````!@`+$@``!P````8`&!(```<````&`#$2 -M```'````!@`Y$@``!P````8`01(```<````&`$D2```'````!@!O$@``!P`` -M``8`>1(```<````&`(82```'````!@"3$@``!P````8`K!(```<````&`+02 -M```'````!@"\$@``!P````8`Q!(```<````&`.H2```'````!@#T$@``!P`` -M``8``1,```<````&``X3```'````!@`G$P``!P````8`+Q,```<````&`#<3 -M```'````!@`_$P``!P````8`91,```<````&`&\3```'````!@!\$P``!P`` -M``8`B1,```<````&`*(3```'````!@"J$P``!P````8`LA,```<````&`+H3 -M```'````!@#@$P``!P````8`ZA,```<````&`/<3```'````!@`$%```!P`` -M``8`'10```<````&`"44```'````!@`M%```!P````8`-10```<````&`%L4 -M```'````!@!E%```!P````8`<A0```<````&`'\4```'````!@"8%```!P`` -M``8`H!0```<````&`*@4```'````!@"P%```!P````8`UA0```<````&`.`4 -M```'````!@#M%```!P````8`^A0```<````&`!,5```'````!@`;%0``!P`` -M``8`(Q4```<````&`"L5```'````!@!1%0``!P````8`6Q4```<````&`&@5 -M```'````!@!U%0``!P````8`CA4```<````&`)85```'````!@">%0``!P`` -M``8`IA4```<````&`,P5```'````!@#6%0``!P````8`XQ4```<````&`/`5 -M```'````!@`)%@``!P````8`$18```<````&`!D6```'````!@`A%@``!P`` -M``8`1Q8```<````&`%$6```'````!@!>%@``!P````8`:Q8```<````&`(06 -M```'````!@",%@``!P````8`E!8```<````&`)P6```'````!@#"%@``!P`` -M``8`S!8```<````&`-D6```'````!@#F%@``!P````8`_Q8```<````&``<7 -M```'````!@`/%P``!P````8`%Q<```<````&`#T7```'````!@!'%P``!P`` -M``8`5!<```<````&`&$7```'````!@!Z%P``!P````8`@A<```<````&`(H7 -M```'````!@"2%P``!P````8`N!<```<````&`,(7```'````!@#/%P``!P`` -M``8`W!<```<````&`/47```'````!@#]%P``!P````8`!1@```<````&``T8 -M```'````!@`X&```!P````8`0A@```<````&`$\8```'````!@!<&```!P`` -M``8`=1@```<````&`'T8```'````!@"%&```!P````8`C1@```<````&`+,8 -M```'````!@"]&```!P````8`RA@```<````&`-<8```'````!@#P&```!P`` -M``8`^!@```<````&```9```'````!@`(&0``!P````8`+AD```<````&`#@9 -M```'````!@!%&0``!P````8`4AD```<````&`&L9```'````!@!S&0``!P`` -M``8`>QD```<````&`(,9```'````!@"I&0``!P````8`LQD```<````&`,`9 -M```'````!@#-&0``!P````8`YAD```<````&`.X9```'````!@#V&0``!P`` -M``8`_AD```<````&`"0:```'````!@`N&@``!P````8`.QH```<````&`$@: -M```'````!@!A&@``!P````8`:1H```<````&`'$:```'````!@!Y&@``!P`` -M``8`GQH```<````&`*D:```'````!@"V&@``!P````8`PQH```<````&`-P: -M```'````!@#D&@``!P````8`[!H```<````&`/0:```'````!@`:&P``!P`` -M``8`)!L```<````&`#$;```'````!@`^&P``!P````8`5QL```<````&`%\; -M```'````!@!G&P``!P````8`;QL```<````&`)4;```'````!@"?&P``!P`` -M``8`K!L```<````&`+D;```'````!@#2&P``!P````8`VAL```<````&`.(; -M```'````!@#J&P``!P````8`$!P```<````&`!H<```'````!@`G'```!P`` -M``8`-!P```<````&`$T<```'````!@!5'```!P````8`71P```<````&`&4< -M```'````!@"+'```!P````8`E1P```<````&`*(<```'````!@"O'```!P`` -M``8`R!P```<````&`-`<```'````!@#8'```!P````8`X!P```<````&``8= -M```'````!@`0'0``!P````8`'1T```<````&`"H=```'````!@!#'0``!P`` -M``8`2QT```<````&`%,=```'````!@!;'0``!P````8`@1T```<````&`(L= -M```'````!@"8'0``!P````8`I1T```<````&`+X=```'````!@#&'0``!P`` -M``8`SAT```<````&`-8=```'````!@#\'0``!P````8`!AX```<````&`!,> -M```'````!@`@'@``!P````8`.1X```<````&`$$>```'````!@!)'@``!P`` -M``8`41X```<````&`'<>```'````!@"!'@``!P````8`CAX```<````&`)L> -M```'````!@"T'@``!P````8`O!X```<````&`,0>```'````!@#,'@``!P`` -M``8`\AX```<````&`/P>```'````!@`)'P``!P````8`%A\```<````&`"\? -M```'````!@`W'P``!P````8`/Q\```<````&`$<?```'````!@!M'P``!P`` -M``8`=Q\```<````&`(0?```'````!@"1'P``!P````8`JA\```<````&`+(? -M```'````!@"Z'P``!P````8`PA\```<````&`"YF:6QE`````````/[_``!G -M`BY<8W)Y<'1O7&1E<UQA<VU<9"UW:6XS,BYA<VT``````````"YT97AT```` -M``````$````#`=PA`````@```````````````"YD871A``````````(````# -M`0`````````````````````````````$```````````````"```````1```` -M``````$`(``"```````>````/1````$`(``"```````L````W!\```$`(``" -M```````Z````W"````$`(``"`$@```!?9&5S7U-0=')A;G,`7V1E<U]E;F-R -M>7!T`%]D97-?96YC<GEP=#(`7V1E<U]E;F-R>7!T,P!?9&5S7V1E8W)Y<'0S -!```` -` -end diff --git a/crypto/des/asm/des-som2.pl b/crypto/des/asm/des-som2.pl deleted file mode 100644 index b5dbc97..0000000 --- a/crypto/des/asm/des-som2.pl +++ /dev/null @@ -1,308 +0,0 @@ -#!/usr/local/bin/perl -#
-# The inner loop instruction sequence and the IP/FP modifications are from
-# Svend Olaf Mikkelsen <svolaf@inet.uni-c.dk>
-#
-
-$prog="des-som2.pl";
-
-# base code is in microsft
-# op dest, source
-# format.
-#
-
-require "desboth.pl";
-
-if ( ($ARGV[0] eq "elf"))
- { require "x86unix.pl"; }
-elsif ( ($ARGV[0] eq "a.out"))
- { $aout=1; require "x86unix.pl"; }
-elsif ( ($ARGV[0] eq "sol"))
- { $sol=1; require "x86unix.pl"; }
-elsif ( ($ARGV[0] eq "cpp"))
- { $cpp=1; require "x86unix.pl"; }
-elsif ( ($ARGV[0] eq "win32"))
- { require "x86ms.pl"; }
-else
- {
- print STDERR <<"EOF";
-Pick one target type from
- elf - linux, FreeBSD etc
- a.out - old linux
- sol - x86 solaris
- cpp - format so x86unix.cpp can be used
- win32 - Windows 95/Windows NT
-EOF
- exit(1);
- }
-
-&comment("Don't even think of reading this code");
-&comment("It was automatically generated by $prog");
-&comment("Which is a perl program used to generate the x86 assember for");
-&comment("any of elf, a.out, Win32, or Solaris");
-&comment("It can be found in SSLeay 0.6.5+ or in libdes 3.26+");
-&comment("eric <eay\@cryptsoft.com>");
-&comment("The inner loop instruction sequence and the IP/FP modifications");
-&comment("are from Svend Olaf Mikkelsen <svolaf\@inet.uni-c.dk>");
-
-&comment("");
-
-&file("dx86xxxx");
-
-$L="edi";
-$R="esi";
-
-&des_encrypt("des_encrypt",1);
-&des_encrypt("des_encrypt2",0);
-
-&des_encrypt3("des_encrypt3",1);
-&des_encrypt3("des_decrypt3",0);
-
-&file_end();
-
-sub des_encrypt
- {
- local($name,$do_ip)=@_;
-
- &function_begin($name,3,"EXTRN _des_SPtrans:DWORD");
-
- &comment("");
- &comment("Load the 2 words");
- &mov("eax",&wparam(0));
- &mov($R,&DWP(0,"eax","",0));
- &mov($L,&DWP(4,"eax","",0));
-
- if ($do_ip)
- {
- &comment("");
- &comment("IP");
- &IP_new($R,$L,"eax",3);
-# &comment("");
-# &comment("fixup rotate");
-# &rotl($R,3);
-# &rotl($L,3);
- }
- else
- {
- &comment("");
- &comment("fixup rotate");
- &rotl($R,3);
- &rotl($L,3);
- }
-
- &comment("");
- &comment("load counter, key_schedule and enc flag");
-
- # encrypting part
-
- $ks="ebp";
-# &xor( "ebx", "ebx" );
- &mov("eax",&wparam(2)); # get encrypt flag
- &xor( "ecx", "ecx" );
- &cmp("eax","0");
- &mov( $ks, &wparam(1) );
- &je(&label("start_decrypt"));
-
- for ($i=0; $i<16; $i+=2)
- {
- &comment("");
- &comment("Round $i");
- &D_ENCRYPT($i,$L,$R,$i*2,$ks,"des_SPtrans","eax","ebx","ecx","edx");
-
- &comment("");
- &comment("Round ".sprintf("%d",$i+1));
- &D_ENCRYPT($i+1,$R,$L,($i+1)*2,$ks,"des_SPtrans","eax","ebx","ecx","edx");
- }
- &jmp(&label("end"));
-
- &set_label("start_decrypt");
-
- for ($i=15; $i>0; $i-=2)
- {
- &comment("");
- &comment("Round $i");
- &D_ENCRYPT(15-$i,$L,$R,$i*2,$ks,"des_SPtrans","eax","ebx","ecx","edx");
- &comment("");
- &comment("Round ".sprintf("%d",$i-1));
- &D_ENCRYPT(15-$i+1,$R,$L,($i-1)*2,$ks,"des_SPtrans","eax","ebx","ecx","edx");
- }
-
- &set_label("end");
-
- if ($do_ip)
- {
-# &comment("");
-# &comment("Fixup");
-# &rotr($L,3); # r
-# &rotr($R,3); # l
- &comment("");
- &comment("FP");
- &FP_new($R,$L,"eax",3);
- }
- else
- {
- &comment("");
- &comment("Fixup");
- &rotr($L,3); # r
- &rotr($R,3); # l
- }
-
- &mov("eax",&wparam(0));
- &mov(&DWP(0,"eax","",0),$L);
- &mov(&DWP(4,"eax","",0),$R);
-
- &function_end($name);
- }
-
-sub D_ENCRYPT
- {
- local($r,$L,$R,$S,$ks,$desSP,$u,$tmp1,$tmp2,$t)=@_;
-
- &mov( $u, &DWP(&n2a($S*4),$ks,"",0));
- &xor( $tmp1, $tmp1);
- &mov( $t, &DWP(&n2a(($S+1)*4),$ks,"",0));
- &xor( $u, $R);
- &xor( $t, $R);
- &and( $u, "0xfcfcfcfc" );
- &and( $t, "0xcfcfcfcf" );
- &movb( &LB($tmp1), &LB($u) );
- &movb( &LB($tmp2), &HB($u) );
- &rotr( $t, 4 );
- &mov( $ks, &DWP(" $desSP",$tmp1,"",0));
- &movb( &LB($tmp1), &LB($t) );
- &xor( $L, $ks);
- &mov( $ks, &DWP("0x200+$desSP",$tmp2,"",0));
- &xor( $L, $ks); ######
- &movb( &LB($tmp2), &HB($t) );
- &shr( $u, 16);
- &mov( $ks, &DWP("0x100+$desSP",$tmp1,"",0));
- &xor( $L, $ks); ######
- &movb( &LB($tmp1), &HB($u) );
- &shr( $t, 16);
- &mov( $ks, &DWP("0x300+$desSP",$tmp2,"",0));
- &xor( $L, $ks);
- &mov( $ks, &DWP(24,"esp","",0)); ####
- &movb( &LB($tmp2), &HB($t) );
- &and( $u, "0xff" );
- &and( $t, "0xff" );
- &mov( $tmp1, &DWP("0x600+$desSP",$tmp1,"",0));
- &xor( $L, $tmp1);
- &mov( $tmp1, &DWP("0x700+$desSP",$tmp2,"",0));
- &xor( $L, $tmp1);
- &mov( $tmp1, &DWP("0x400+$desSP",$u,"",0));
- &xor( $L, $tmp1);
- &mov( $tmp1, &DWP("0x500+$desSP",$t,"",0));
- &xor( $L, $tmp1);
- }
-
-sub PERM_OP
- {
- local($a,$b,$tt,$shift,$mask)=@_;
-
- &mov( $tt, $a );
- &shr( $tt, $shift );
- &xor( $tt, $b );
- &and( $tt, $mask );
- &xor( $b, $tt );
- &shl( $tt, $shift );
- &xor( $a, $tt );
- }
-
-sub IP
- {
- local($l,$r,$tt)=@_;
-
- &PERM_OP($r,$l,$tt, 4,"0x0f0f0f0f");
- &PERM_OP($l,$r,$tt,16,"0x0000ffff");
- &PERM_OP($r,$l,$tt, 2,"0x33333333");
- &PERM_OP($l,$r,$tt, 8,"0x00ff00ff");
- &PERM_OP($r,$l,$tt, 1,"0x55555555");
- }
-
-sub FP
- {
- local($l,$r,$tt)=@_;
-
- &PERM_OP($l,$r,$tt, 1,"0x55555555");
- &PERM_OP($r,$l,$tt, 8,"0x00ff00ff");
- &PERM_OP($l,$r,$tt, 2,"0x33333333");
- &PERM_OP($r,$l,$tt,16,"0x0000ffff");
- &PERM_OP($l,$r,$tt, 4,"0x0f0f0f0f");
- }
-
-sub n2a
- {
- sprintf("%d",$_[0]);
- }
-
-# now has a side affect of rotating $a by $shift
-sub R_PERM_OP
- {
- local($a,$b,$tt,$shift,$mask,$last)=@_;
-
- &rotl( $a, $shift ) if ($shift != 0);
- &mov( $tt, $b );
- &xor( $tt, $a );
- &and( $tt, $mask );
- if ($last eq $b)
- {
- &xor( $a, $tt );
- &xor( $b, $tt );
- }
- else
- {
- &xor( $b, $tt );
- &xor( $a, $tt );
- }
- &comment("");
- }
-
-sub IP_new
- {
- local($l,$r,$tt,$lr)=@_;
-
- &R_PERM_OP($l,$r,$tt, 4,"0xf0f0f0f0",$l);
- &R_PERM_OP($r,$l,$tt,20,"0xfff0000f",$l);
- &R_PERM_OP($r,$l,$tt,14,"0x33333333",$r);
- &R_PERM_OP($l,$r,$tt,22,"0x03fc03fc",$r);
- &R_PERM_OP($l,$r,$tt, 9,"0xaaaaaaaa",$r);
-
- if ($lr != 3)
- {
- if (($lr-3) < 0)
- { &rotr($l, 3-$lr); }
- else { &rotl($l, $lr-3); }
- }
- if ($lr != 2)
- {
- if (($lr-2) < 0)
- { &rotr($r, 2-$lr); }
- else { &rotl($r, $lr-2); }
- }
- }
-
-sub FP_new
- {
- local($r,$l,$tt,$lr)=@_;
-
- if ($lr != 2)
- {
- if (($lr-2) < 0)
- { &rotl($r, 2-$lr); }
- else { &rotr($r, $lr-2); }
- }
- if ($lr != 3)
- {
- if (($lr-3) < 0)
- { &rotl($l, 3-$lr); }
- else { &rotr($l, $lr-3); }
- }
-
- &R_PERM_OP($l,$r,$tt, 0,"0xaaaaaaaa",$r);
- &R_PERM_OP($l,$r,$tt,23,"0x03fc03fc",$r);
- &R_PERM_OP($l,$r,$tt,10,"0x33333333",$l);
- &R_PERM_OP($r,$l,$tt,18,"0xfff0000f",$l);
- &R_PERM_OP($r,$l,$tt,12,"0xf0f0f0f0",$r);
- &rotr($l , 4);
- }
-
diff --git a/crypto/des/asm/des-som3.pl b/crypto/des/asm/des-som3.pl deleted file mode 100644 index 3f35395..0000000 --- a/crypto/des/asm/des-som3.pl +++ /dev/null @@ -1,266 +0,0 @@ -#!/usr/local/bin/perl -#
-# The inner loop instruction sequence and the IP/FP modifications are from
-# Svend Olaf Mikkelsen <svolaf@inet.uni-c.dk>
-#
-
-$prog="des-som3.pl";
-
-# base code is in microsft
-# op dest, source
-# format.
-#
-
-require "desboth.pl";
-
-if ( ($ARGV[0] eq "elf"))
- { require "x86unix.pl"; }
-elsif ( ($ARGV[0] eq "a.out"))
- { $aout=1; require "x86unix.pl"; }
-elsif ( ($ARGV[0] eq "sol"))
- { $sol=1; require "x86unix.pl"; }
-elsif ( ($ARGV[0] eq "cpp"))
- { $cpp=1; require "x86unix.pl"; }
-elsif ( ($ARGV[0] eq "win32"))
- { require "x86ms.pl"; }
-else
- {
- print STDERR <<"EOF";
-Pick one target type from
- elf - linux, FreeBSD etc
- a.out - old linux
- sol - x86 solaris
- cpp - format so x86unix.cpp can be used
- win32 - Windows 95/Windows NT
-EOF
- exit(1);
- }
-
-&comment("Don't even think of reading this code");
-&comment("It was automatically generated by $prog");
-&comment("Which is a perl program used to generate the x86 assember for");
-&comment("any of elf, a.out, Win32, or Solaris");
-&comment("It can be found in SSLeay 0.6.5+ or in libdes 3.26+");
-&comment("eric <eay\@cryptsoft.com>");
-&comment("The inner loop instruction sequence and the IP/FP modifications");
-&comment("are from Svend Olaf Mikkelsen <svolaf\@inet.uni-c.dk>");
-
-&comment("");
-
-&file("dx86xxxx");
-
-$L="edi";
-$R="esi";
-
-&des_encrypt("des_encrypt",1);
-&des_encrypt("des_encrypt2",0);
-
-&des_encrypt3("des_encrypt3",1);
-&des_encrypt3("des_decrypt3",0);
-
-&file_end();
-
-sub des_encrypt
- {
- local($name,$do_ip)=@_;
-
- &function_begin($name,3,EXTRN _des_SPtrans:DWORD");
-
- &comment("");
- &comment("Load the 2 words");
- $ks="ebp";
-
- if ($do_ip)
- {
- &mov($R,&wparam(0));
- &xor( "ecx", "ecx" );
- &mov("eax",&DWP(0,$R,"",0));
- &mov("ebx",&wparam(2)); # get encrypt flag
- &mov($L,&DWP(4,$R,"",0));
- &comment("");
- &comment("IP");
- &IP_new("eax",$L,$R,3);
- }
- else
- {
- &mov("eax",&wparam(0));
- &xor( "ecx", "ecx" );
- &mov($R,&DWP(0,"eax","",0));
- &mov("ebx",&wparam(2)); # get encrypt flag
- &rotl($R,3);
- &mov($L,&DWP(4,"eax","",0));
- &rotl($L,3);
- }
-
- &cmp("ebx","0");
- &mov( $ks, &wparam(1) );
- &je(&label("start_decrypt"));
-
- for ($i=0; $i<16; $i+=2)
- {
- &comment("");
- &comment("Round $i");
- &D_ENCRYPT($i,$L,$R,$i*2,$ks,"des_SPtrans","eax","ebx","ecx","edx");
-
- &comment("");
- &comment("Round ".sprintf("%d",$i+1));
- &D_ENCRYPT($i+1,$R,$L,($i+1)*2,$ks,"des_SPtrans","eax","ebx","ecx","edx");
- }
- &jmp(&label("end"));
-
- &set_label("start_decrypt");
-
- for ($i=15; $i>0; $i-=2)
- {
- &comment("");
- &comment("Round $i");
- &D_ENCRYPT(15-$i,$L,$R,$i*2,$ks,"des_SPtrans","eax","ebx","ecx","edx");
- &comment("");
- &comment("Round ".sprintf("%d",$i-1));
- &D_ENCRYPT(15-$i+1,$R,$L,($i-1)*2,$ks,"des_SPtrans","eax","ebx","ecx","edx");
- }
-
- &set_label("end");
-
- if ($do_ip)
- {
- &comment("");
- &comment("FP");
- &mov("edx",&wparam(0));
- &FP_new($L,$R,"eax",3);
-
- &mov(&DWP(0,"edx","",0),"eax");
- &mov(&DWP(4,"edx","",0),$R);
- }
- else
- {
- &comment("");
- &comment("Fixup");
- &rotr($L,3); # r
- &mov("eax",&wparam(0));
- &rotr($R,3); # l
- &mov(&DWP(0,"eax","",0),$L);
- &mov(&DWP(4,"eax","",0),$R);
- }
-
-
- &function_end($name);
- }
-
-sub D_ENCRYPT
- {
- local($r,$L,$R,$S,$ks,$desSP,$u,$tmp1,$tmp2,$t)=@_;
-
- &mov( $u, &DWP(&n2a($S*4),$ks,"",0));
- &xor( $tmp1, $tmp1);
- &mov( $t, &DWP(&n2a(($S+1)*4),$ks,"",0));
- &xor( $u, $R);
- &xor( $t, $R);
- &and( $u, "0xfcfcfcfc" );
- &and( $t, "0xcfcfcfcf" );
- &movb( &LB($tmp1), &LB($u) );
- &movb( &LB($tmp2), &HB($u) );
- &rotr( $t, 4 );
- &mov( $ks, &DWP(" $desSP",$tmp1,"",0));
- &movb( &LB($tmp1), &LB($t) );
- &xor( $L, $ks);
- &mov( $ks, &DWP("0x200+$desSP",$tmp2,"",0));
- &xor( $L, $ks); ######
- &movb( &LB($tmp2), &HB($t) );
- &shr( $u, 16);
- &mov( $ks, &DWP("0x100+$desSP",$tmp1,"",0));
- &xor( $L, $ks); ######
- &movb( &LB($tmp1), &HB($u) );
- &shr( $t, 16);
- &mov( $ks, &DWP("0x300+$desSP",$tmp2,"",0));
- &xor( $L, $ks);
- &mov( $ks, &DWP(24,"esp","",0)); ####
- &movb( &LB($tmp2), &HB($t) );
- &and( $u, "0xff" );
- &and( $t, "0xff" );
- &mov( $tmp1, &DWP("0x600+$desSP",$tmp1,"",0));
- &xor( $L, $tmp1);
- &mov( $tmp1, &DWP("0x700+$desSP",$tmp2,"",0));
- &xor( $L, $tmp1);
- &mov( $tmp1, &DWP("0x400+$desSP",$u,"",0));
- &xor( $L, $tmp1);
- &mov( $tmp1, &DWP("0x500+$desSP",$t,"",0));
- &xor( $L, $tmp1);
- }
-
-sub n2a
- {
- sprintf("%d",$_[0]);
- }
-
-# now has a side affect of rotating $a by $shift
-sub R_PERM_OP
- {
- local($a,$b,$tt,$shift,$mask,$last)=@_;
-
- &rotl( $a, $shift ) if ($shift != 0);
- &mov( $tt, $a );
- &xor( $a, $b );
- &and( $a, $mask );
- if ($notlast eq $b)
- {
- &xor( $b, $a );
- &xor( $tt, $a );
- }
- else
- {
- &xor( $tt, $a );
- &xor( $b, $a );
- }
- &comment("");
- }
-
-sub IP_new
- {
- local($l,$r,$tt,$lr)=@_;
-
- &R_PERM_OP($l,$r,$tt, 4,"0xf0f0f0f0",$l);
- &R_PERM_OP($r,$tt,$l,20,"0xfff0000f",$l);
- &R_PERM_OP($l,$tt,$r,14,"0x33333333",$r);
- &R_PERM_OP($tt,$r,$l,22,"0x03fc03fc",$r);
- &R_PERM_OP($l,$r,$tt, 9,"0xaaaaaaaa",$r);
-
- if ($lr != 3)
- {
- if (($lr-3) < 0)
- { &rotr($tt, 3-$lr); }
- else { &rotl($tt, $lr-3); }
- }
- if ($lr != 2)
- {
- if (($lr-2) < 0)
- { &rotr($r, 2-$lr); }
- else { &rotl($r, $lr-2); }
- }
- }
-
-sub FP_new
- {
- local($l,$r,$tt,$lr)=@_;
-
- if ($lr != 2)
- {
- if (($lr-2) < 0)
- { &rotl($r, 2-$lr); }
- else { &rotr($r, $lr-2); }
- }
- if ($lr != 3)
- {
- if (($lr-3) < 0)
- { &rotl($l, 3-$lr); }
- else { &rotr($l, $lr-3); }
- }
-
- &R_PERM_OP($l,$r,$tt, 0,"0xaaaaaaaa",$r);
- &R_PERM_OP($tt,$r,$l,23,"0x03fc03fc",$r);
- &R_PERM_OP($l,$r,$tt,10,"0x33333333",$l);
- &R_PERM_OP($r,$tt,$l,18,"0xfff0000f",$l);
- &R_PERM_OP($l,$tt,$r,12,"0xf0f0f0f0",$r);
- &rotr($tt , 4);
- }
-
diff --git a/crypto/des/asm/des586.pl b/crypto/des/asm/des586.pl deleted file mode 100644 index 59c42d1..0000000 --- a/crypto/des/asm/des586.pl +++ /dev/null @@ -1,210 +0,0 @@ -#!/usr/local/bin/perl -
-$prog="des586.pl";
-
-# base code is in microsft
-# op dest, source
-# format.
-#
-
-# WILL NOT WORK ANYMORE WITH desboth.pl
-require "desboth.pl";
-
-if ( ($ARGV[0] eq "elf"))
- { require "x86unix.pl"; }
-elsif ( ($ARGV[0] eq "a.out"))
- { $aout=1; require "x86unix.pl"; }
-elsif ( ($ARGV[0] eq "sol"))
- { $sol=1; require "x86unix.pl"; }
-elsif ( ($ARGV[0] eq "cpp"))
- { $cpp=1; require "x86unix.pl"; }
-elsif ( ($ARGV[0] eq "win32"))
- { require "x86ms.pl"; }
-else
- {
- print STDERR <<"EOF";
-Pick one target type from
- elf - linux, FreeBSD etc
- a.out - old linux
- sol - x86 solaris
- cpp - format so x86unix.cpp can be used
- win32 - Windows 95/Windows NT
-EOF
- exit(1);
- }
-
-&comment("Don't even think of reading this code");
-&comment("It was automatically generated by $prog");
-&comment("Which is a perl program used to generate the x86 assember for");
-&comment("any of elf, a.out, Win32, or Solaris");
-&comment("It can be found in SSLeay 0.6.5+ or in libdes 3.26+");
-&comment("eric <eay\@cryptsoft.com>");
-&comment("");
-
-&file("dx86xxxx");
-
-$L="edi";
-$R="esi";
-
-&des_encrypt("des_encrypt",1);
-&des_encrypt("des_encrypt2",0);
-
-&des_encrypt3("des_encrypt3",1);
-&des_encrypt3("des_decrypt3",0);
-
-&file_end();
-
-sub des_encrypt
- {
- local($name,$do_ip)=@_;
-
- &function_begin($name,3,"EXTRN _des_SPtrans:DWORD");
-
- &comment("");
- &comment("Load the 2 words");
- &mov("eax",&wparam(0));
- &mov($R,&DWP(0,"eax","",0));
- &mov($L,&DWP(4,"eax","",0));
-
- if ($do_ip)
- {
- &comment("");
- &comment("IP");
- &IP($R,$L,"eax");
- }
-
- &comment("");
- &comment("fixup rotate");
- &rotl($R,3);
- &rotl($L,3);
-
- &comment("");
- &comment("load counter, key_schedule and enc flag");
-
- # encrypting part
-
- $ks="ebp";
- &xor( "ebx", "ebx" );
- &mov("eax",&wparam(2)); # get encrypt flag
- &xor( "ecx", "ecx" );
- &cmp("eax","0");
- &mov( $ks, &wparam(1) );
- &je(&label("start_decrypt"));
-
- for ($i=0; $i<16; $i+=2)
- {
- &comment("");
- &comment("Round $i");
- &D_ENCRYPT($i,$L,$R,$i*2,$ks,"des_SPtrans","eax","ebx","ecx","edx");
-
- &comment("");
- &comment("Round ".sprintf("%d",$i+1));
- &D_ENCRYPT($i+1,$R,$L,($i+1)*2,$ks,"des_SPtrans","eax","ebx","ecx","edx");
- }
- &jmp(&label("end"));
-
- &set_label("start_decrypt");
-
- for ($i=15; $i>0; $i-=2)
- {
- &comment("");
- &comment("Round $i");
- &D_ENCRYPT(15-$i,$L,$R,$i*2,$ks,"des_SPtrans","eax","ebx","ecx","edx");
- &comment("");
- &comment("Round ".sprintf("%d",$i-1));
- &D_ENCRYPT(15-$i+1,$R,$L,($i-1)*2,$ks,"des_SPtrans","eax","ebx","ecx","edx");
- }
-
- &set_label("end");
-
- &comment("");
- &comment("Fixup");
- &rotr($L,3); # r
- &rotr($R,3); # l
-
- if ($do_ip)
- {
- &comment("");
- &comment("FP");
- &FP($R,$L,"eax");
- }
-
- &mov("eax",&wparam(0));
- &mov(&DWP(0,"eax","",0),$L);
- &mov(&DWP(4,"eax","",0),$R);
-
- &function_end($name);
- }
-
-sub D_ENCRYPT
- {
- local($r,$L,$R,$S,$ks,$desSP,$u,$tmp1,$tmp2,$t)=@_;
-
- &mov( $t, &DWP(&n2a(($S+1)*4),$ks,"",0));
- &mov( $u, &DWP(&n2a($S*4),$ks,"",0));
- &xor( $t, $R);
- &xor( $u, $R);
- &rotr( $t, 4 );
- &and( $u, "0xfcfcfcfc" );
- &and( $t, "0xfcfcfcfc" );
- &movb( &LB($tmp1), &LB($u) );
- &movb( &LB($tmp2), &HB($u) );
- &xor( $L, &DWP(" $desSP",$tmp1,"",0));
- &shr( $u, 16);
- &xor( $L, &DWP("0x200+$desSP",$tmp2,"",0));
- &movb( &LB($tmp1), &LB($u) );
- &movb( &LB($tmp2), &HB($u) );
- &xor( $L, &DWP("0x400+$desSP",$tmp1,"",0));
- &mov( $u, &DWP("0x600+$desSP",$tmp2,"",0));
-
- &movb( &LB($tmp1), &LB($t) );
- &movb( &LB($tmp2), &HB($t) );
- &xor( $L, &DWP("0x100+$desSP",$tmp1,"",0));
- &shr( $t, 16);
- &xor( $u, &DWP("0x300+$desSP",$tmp2,"",0));
- &movb( &LB($tmp1), &LB($t) );
- &movb( &LB($tmp2), &HB($t) );
- &xor( $L, &DWP("0x500+$desSP",$tmp1,"",0));
- &xor( $u, &DWP("0x700+$desSP",$tmp2,"",0));
- &xor( $L, $u);
- }
-
-sub PERM_OP
- {
- local($a,$b,$tt,$shift,$mask)=@_;
-
- &mov( $tt, $a );
- &shr( $tt, $shift );
- &xor( $tt, $b );
- &and( $tt, $mask );
- &xor( $b, $tt );
- &shl( $tt, $shift );
- &xor( $a, $tt );
- }
-
-sub IP
- {
- local($l,$r,$tt)=@_;
-
- &PERM_OP($r,$l,$tt, 4,"0x0f0f0f0f");
- &PERM_OP($l,$r,$tt,16,"0x0000ffff");
- &PERM_OP($r,$l,$tt, 2,"0x33333333");
- &PERM_OP($l,$r,$tt, 8,"0x00ff00ff");
- &PERM_OP($r,$l,$tt, 1,"0x55555555");
- }
-
-sub FP
- {
- local($l,$r,$tt)=@_;
-
- &PERM_OP($l,$r,$tt, 1,"0x55555555");
- &PERM_OP($r,$l,$tt, 8,"0x00ff00ff");
- &PERM_OP($l,$r,$tt, 2,"0x33333333");
- &PERM_OP($r,$l,$tt,16,"0x0000ffff");
- &PERM_OP($l,$r,$tt, 4,"0x0f0f0f0f");
- }
-
-sub n2a
- {
- sprintf("%d",$_[0]);
- }
diff --git a/crypto/des/asm/dx86-cpp.s b/crypto/des/asm/dx86-cpp.s deleted file mode 100644 index 675bdeb..0000000 --- a/crypto/des/asm/dx86-cpp.s +++ /dev/null @@ -1,2780 +0,0 @@ - /* Don't even think of reading this code */ - /* It was automatically generated by des-som2.pl */ - /* Which is a perl program used to generate the x86 assember for */ - /* any of elf, a.out, Win32, or Solaris */ - /* It can be found in SSLeay 0.6.5+ or in libdes 3.26+ */ - /* eric <eay@cryptsoft.com> */ - /* The inner loop instruction sequence and the IP/FP modifications */ - /* are from Svend Olaf Mikkelsen <svolaf@inet.uni-c.dk> */ - - .file "dx86xxxx.s" - .version "01.01" -gcc2_compiled.: -.text - .align ALIGN -.globl des_encrypt - TYPE(des_encrypt,@function) -des_encrypt: - pushl %ebp - pushl %ebx - pushl %esi - pushl %edi - - - /* Load the 2 words */ - movl 20(%esp), %esi - xorl %ecx, %ecx - movl (%esi), %eax - movl 28(%esp), %ebx - movl 4(%esi), %edi - - /* IP */ - roll $4, %eax - movl %eax, %esi - xorl %edi, %eax - andl $0xf0f0f0f0, %eax - xorl %eax, %esi - xorl %eax, %edi - - roll $20, %edi - movl %edi, %eax - xorl %esi, %edi - andl $0xfff0000f, %edi - xorl %edi, %eax - xorl %edi, %esi - - roll $14, %eax - movl %eax, %edi - xorl %esi, %eax - andl $0x33333333, %eax - xorl %eax, %edi - xorl %eax, %esi - - roll $22, %esi - movl %esi, %eax - xorl %edi, %esi - andl $0x03fc03fc, %esi - xorl %esi, %eax - xorl %esi, %edi - - roll $9, %eax - movl %eax, %esi - xorl %edi, %eax - andl $0xaaaaaaaa, %eax - xorl %eax, %esi - xorl %eax, %edi - - roll $1, %edi - cmpl $0, %ebx - movl 24(%esp), %ebp - je .L000start_decrypt - - /* Round 0 */ - movl (%ebp), %eax - xorl %ebx, %ebx - movl 4(%ebp), %edx - xorl %esi, %eax - xorl %esi, %edx - andl $0xfcfcfcfc, %eax - andl $0xcfcfcfcf, %edx - movb %al, %bl - movb %ah, %cl - rorl $4, %edx - movl des_SPtrans(%ebx),%ebp - movb %dl, %bl - xorl %ebp, %edi - movl 0x200+des_SPtrans(%ecx),%ebp - xorl %ebp, %edi - movb %dh, %cl - shrl $16, %eax - movl 0x100+des_SPtrans(%ebx),%ebp - xorl %ebp, %edi - movb %ah, %bl - shrl $16, %edx - movl 0x300+des_SPtrans(%ecx),%ebp - xorl %ebp, %edi - movl 24(%esp), %ebp - movb %dh, %cl - andl $0xff, %eax - andl $0xff, %edx - movl 0x600+des_SPtrans(%ebx),%ebx - xorl %ebx, %edi - movl 0x700+des_SPtrans(%ecx),%ebx - xorl %ebx, %edi - movl 0x400+des_SPtrans(%eax),%ebx - xorl %ebx, %edi - movl 0x500+des_SPtrans(%edx),%ebx - xorl %ebx, %edi - - /* Round 1 */ - movl 8(%ebp), %eax - xorl %ebx, %ebx - movl 12(%ebp), %edx - xorl %edi, %eax - xorl %edi, %edx - andl $0xfcfcfcfc, %eax - andl $0xcfcfcfcf, %edx - movb %al, %bl - movb %ah, %cl - rorl $4, %edx - movl des_SPtrans(%ebx),%ebp - movb %dl, %bl - xorl %ebp, %esi - movl 0x200+des_SPtrans(%ecx),%ebp - xorl %ebp, %esi - movb %dh, %cl - shrl $16, %eax - movl 0x100+des_SPtrans(%ebx),%ebp - xorl %ebp, %esi - movb %ah, %bl - shrl $16, %edx - movl 0x300+des_SPtrans(%ecx),%ebp - xorl %ebp, %esi - movl 24(%esp), %ebp - movb %dh, %cl - andl $0xff, %eax - andl $0xff, %edx - movl 0x600+des_SPtrans(%ebx),%ebx - xorl %ebx, %esi - movl 0x700+des_SPtrans(%ecx),%ebx - xorl %ebx, %esi - movl 0x400+des_SPtrans(%eax),%ebx - xorl %ebx, %esi - movl 0x500+des_SPtrans(%edx),%ebx - xorl %ebx, %esi - - /* Round 2 */ - movl 16(%ebp), %eax - xorl %ebx, %ebx - movl 20(%ebp), %edx - xorl %esi, %eax - xorl %esi, %edx - andl $0xfcfcfcfc, %eax - andl $0xcfcfcfcf, %edx - movb %al, %bl - movb %ah, %cl - rorl $4, %edx - movl des_SPtrans(%ebx),%ebp - movb %dl, %bl - xorl %ebp, %edi - movl 0x200+des_SPtrans(%ecx),%ebp - xorl %ebp, %edi - movb %dh, %cl - shrl $16, %eax - movl 0x100+des_SPtrans(%ebx),%ebp - xorl %ebp, %edi - movb %ah, %bl - shrl $16, %edx - movl 0x300+des_SPtrans(%ecx),%ebp - xorl %ebp, %edi - movl 24(%esp), %ebp - movb %dh, %cl - andl $0xff, %eax - andl $0xff, %edx - movl 0x600+des_SPtrans(%ebx),%ebx - xorl %ebx, %edi - movl 0x700+des_SPtrans(%ecx),%ebx - xorl %ebx, %edi - movl 0x400+des_SPtrans(%eax),%ebx - xorl %ebx, %edi - movl 0x500+des_SPtrans(%edx),%ebx - xorl %ebx, %edi - - /* Round 3 */ - movl 24(%ebp), %eax - xorl %ebx, %ebx - movl 28(%ebp), %edx - xorl %edi, %eax - xorl %edi, %edx - andl $0xfcfcfcfc, %eax - andl $0xcfcfcfcf, %edx - movb %al, %bl - movb %ah, %cl - rorl $4, %edx - movl des_SPtrans(%ebx),%ebp - movb %dl, %bl - xorl %ebp, %esi - movl 0x200+des_SPtrans(%ecx),%ebp - xorl %ebp, %esi - movb %dh, %cl - shrl $16, %eax - movl 0x100+des_SPtrans(%ebx),%ebp - xorl %ebp, %esi - movb %ah, %bl - shrl $16, %edx - movl 0x300+des_SPtrans(%ecx),%ebp - xorl %ebp, %esi - movl 24(%esp), %ebp - movb %dh, %cl - andl $0xff, %eax - andl $0xff, %edx - movl 0x600+des_SPtrans(%ebx),%ebx - xorl %ebx, %esi - movl 0x700+des_SPtrans(%ecx),%ebx - xorl %ebx, %esi - movl 0x400+des_SPtrans(%eax),%ebx - xorl %ebx, %esi - movl 0x500+des_SPtrans(%edx),%ebx - xorl %ebx, %esi - - /* Round 4 */ - movl 32(%ebp), %eax - xorl %ebx, %ebx - movl 36(%ebp), %edx - xorl %esi, %eax - xorl %esi, %edx - andl $0xfcfcfcfc, %eax - andl $0xcfcfcfcf, %edx - movb %al, %bl - movb %ah, %cl - rorl $4, %edx - movl des_SPtrans(%ebx),%ebp - movb %dl, %bl - xorl %ebp, %edi - movl 0x200+des_SPtrans(%ecx),%ebp - xorl %ebp, %edi - movb %dh, %cl - shrl $16, %eax - movl 0x100+des_SPtrans(%ebx),%ebp - xorl %ebp, %edi - movb %ah, %bl - shrl $16, %edx - movl 0x300+des_SPtrans(%ecx),%ebp - xorl %ebp, %edi - movl 24(%esp), %ebp - movb %dh, %cl - andl $0xff, %eax - andl $0xff, %edx - movl 0x600+des_SPtrans(%ebx),%ebx - xorl %ebx, %edi - movl 0x700+des_SPtrans(%ecx),%ebx - xorl %ebx, %edi - movl 0x400+des_SPtrans(%eax),%ebx - xorl %ebx, %edi - movl 0x500+des_SPtrans(%edx),%ebx - xorl %ebx, %edi - - /* Round 5 */ - movl 40(%ebp), %eax - xorl %ebx, %ebx - movl 44(%ebp), %edx - xorl %edi, %eax - xorl %edi, %edx - andl $0xfcfcfcfc, %eax - andl $0xcfcfcfcf, %edx - movb %al, %bl - movb %ah, %cl - rorl $4, %edx - movl des_SPtrans(%ebx),%ebp - movb %dl, %bl - xorl %ebp, %esi - movl 0x200+des_SPtrans(%ecx),%ebp - xorl %ebp, %esi - movb %dh, %cl - shrl $16, %eax - movl 0x100+des_SPtrans(%ebx),%ebp - xorl %ebp, %esi - movb %ah, %bl - shrl $16, %edx - movl 0x300+des_SPtrans(%ecx),%ebp - xorl %ebp, %esi - movl 24(%esp), %ebp - movb %dh, %cl - andl $0xff, %eax - andl $0xff, %edx - movl 0x600+des_SPtrans(%ebx),%ebx - xorl %ebx, %esi - movl 0x700+des_SPtrans(%ecx),%ebx - xorl %ebx, %esi - movl 0x400+des_SPtrans(%eax),%ebx - xorl %ebx, %esi - movl 0x500+des_SPtrans(%edx),%ebx - xorl %ebx, %esi - - /* Round 6 */ - movl 48(%ebp), %eax - xorl %ebx, %ebx - movl 52(%ebp), %edx - xorl %esi, %eax - xorl %esi, %edx - andl $0xfcfcfcfc, %eax - andl $0xcfcfcfcf, %edx - movb %al, %bl - movb %ah, %cl - rorl $4, %edx - movl des_SPtrans(%ebx),%ebp - movb %dl, %bl - xorl %ebp, %edi - movl 0x200+des_SPtrans(%ecx),%ebp - xorl %ebp, %edi - movb %dh, %cl - shrl $16, %eax - movl 0x100+des_SPtrans(%ebx),%ebp - xorl %ebp, %edi - movb %ah, %bl - shrl $16, %edx - movl 0x300+des_SPtrans(%ecx),%ebp - xorl %ebp, %edi - movl 24(%esp), %ebp - movb %dh, %cl - andl $0xff, %eax - andl $0xff, %edx - movl 0x600+des_SPtrans(%ebx),%ebx - xorl %ebx, %edi - movl 0x700+des_SPtrans(%ecx),%ebx - xorl %ebx, %edi - movl 0x400+des_SPtrans(%eax),%ebx - xorl %ebx, %edi - movl 0x500+des_SPtrans(%edx),%ebx - xorl %ebx, %edi - - /* Round 7 */ - movl 56(%ebp), %eax - xorl %ebx, %ebx - movl 60(%ebp), %edx - xorl %edi, %eax - xorl %edi, %edx - andl $0xfcfcfcfc, %eax - andl $0xcfcfcfcf, %edx - movb %al, %bl - movb %ah, %cl - rorl $4, %edx - movl des_SPtrans(%ebx),%ebp - movb %dl, %bl - xorl %ebp, %esi - movl 0x200+des_SPtrans(%ecx),%ebp - xorl %ebp, %esi - movb %dh, %cl - shrl $16, %eax - movl 0x100+des_SPtrans(%ebx),%ebp - xorl %ebp, %esi - movb %ah, %bl - shrl $16, %edx - movl 0x300+des_SPtrans(%ecx),%ebp - xorl %ebp, %esi - movl 24(%esp), %ebp - movb %dh, %cl - andl $0xff, %eax - andl $0xff, %edx - movl 0x600+des_SPtrans(%ebx),%ebx - xorl %ebx, %esi - movl 0x700+des_SPtrans(%ecx),%ebx - xorl %ebx, %esi - movl 0x400+des_SPtrans(%eax),%ebx - xorl %ebx, %esi - movl 0x500+des_SPtrans(%edx),%ebx - xorl %ebx, %esi - - /* Round 8 */ - movl 64(%ebp), %eax - xorl %ebx, %ebx - movl 68(%ebp), %edx - xorl %esi, %eax - xorl %esi, %edx - andl $0xfcfcfcfc, %eax - andl $0xcfcfcfcf, %edx - movb %al, %bl - movb %ah, %cl - rorl $4, %edx - movl des_SPtrans(%ebx),%ebp - movb %dl, %bl - xorl %ebp, %edi - movl 0x200+des_SPtrans(%ecx),%ebp - xorl %ebp, %edi - movb %dh, %cl - shrl $16, %eax - movl 0x100+des_SPtrans(%ebx),%ebp - xorl %ebp, %edi - movb %ah, %bl - shrl $16, %edx - movl 0x300+des_SPtrans(%ecx),%ebp - xorl %ebp, %edi - movl 24(%esp), %ebp - movb %dh, %cl - andl $0xff, %eax - andl $0xff, %edx - movl 0x600+des_SPtrans(%ebx),%ebx - xorl %ebx, %edi - movl 0x700+des_SPtrans(%ecx),%ebx - xorl %ebx, %edi - movl 0x400+des_SPtrans(%eax),%ebx - xorl %ebx, %edi - movl 0x500+des_SPtrans(%edx),%ebx - xorl %ebx, %edi - - /* Round 9 */ - movl 72(%ebp), %eax - xorl %ebx, %ebx - movl 76(%ebp), %edx - xorl %edi, %eax - xorl %edi, %edx - andl $0xfcfcfcfc, %eax - andl $0xcfcfcfcf, %edx - movb %al, %bl - movb %ah, %cl - rorl $4, %edx - movl des_SPtrans(%ebx),%ebp - movb %dl, %bl - xorl %ebp, %esi - movl 0x200+des_SPtrans(%ecx),%ebp - xorl %ebp, %esi - movb %dh, %cl - shrl $16, %eax - movl 0x100+des_SPtrans(%ebx),%ebp - xorl %ebp, %esi - movb %ah, %bl - shrl $16, %edx - movl 0x300+des_SPtrans(%ecx),%ebp - xorl %ebp, %esi - movl 24(%esp), %ebp - movb %dh, %cl - andl $0xff, %eax - andl $0xff, %edx - movl 0x600+des_SPtrans(%ebx),%ebx - xorl %ebx, %esi - movl 0x700+des_SPtrans(%ecx),%ebx - xorl %ebx, %esi - movl 0x400+des_SPtrans(%eax),%ebx - xorl %ebx, %esi - movl 0x500+des_SPtrans(%edx),%ebx - xorl %ebx, %esi - - /* Round 10 */ - movl 80(%ebp), %eax - xorl %ebx, %ebx - movl 84(%ebp), %edx - xorl %esi, %eax - xorl %esi, %edx - andl $0xfcfcfcfc, %eax - andl $0xcfcfcfcf, %edx - movb %al, %bl - movb %ah, %cl - rorl $4, %edx - movl des_SPtrans(%ebx),%ebp - movb %dl, %bl - xorl %ebp, %edi - movl 0x200+des_SPtrans(%ecx),%ebp - xorl %ebp, %edi - movb %dh, %cl - shrl $16, %eax - movl 0x100+des_SPtrans(%ebx),%ebp - xorl %ebp, %edi - movb %ah, %bl - shrl $16, %edx - movl 0x300+des_SPtrans(%ecx),%ebp - xorl %ebp, %edi - movl 24(%esp), %ebp - movb %dh, %cl - andl $0xff, %eax - andl $0xff, %edx - movl 0x600+des_SPtrans(%ebx),%ebx - xorl %ebx, %edi - movl 0x700+des_SPtrans(%ecx),%ebx - xorl %ebx, %edi - movl 0x400+des_SPtrans(%eax),%ebx - xorl %ebx, %edi - movl 0x500+des_SPtrans(%edx),%ebx - xorl %ebx, %edi - - /* Round 11 */ - movl 88(%ebp), %eax - xorl %ebx, %ebx - movl 92(%ebp), %edx - xorl %edi, %eax - xorl %edi, %edx - andl $0xfcfcfcfc, %eax - andl $0xcfcfcfcf, %edx - movb %al, %bl - movb %ah, %cl - rorl $4, %edx - movl des_SPtrans(%ebx),%ebp - movb %dl, %bl - xorl %ebp, %esi - movl 0x200+des_SPtrans(%ecx),%ebp - xorl %ebp, %esi - movb %dh, %cl - shrl $16, %eax - movl 0x100+des_SPtrans(%ebx),%ebp - xorl %ebp, %esi - movb %ah, %bl - shrl $16, %edx - movl 0x300+des_SPtrans(%ecx),%ebp - xorl %ebp, %esi - movl 24(%esp), %ebp - movb %dh, %cl - andl $0xff, %eax - andl $0xff, %edx - movl 0x600+des_SPtrans(%ebx),%ebx - xorl %ebx, %esi - movl 0x700+des_SPtrans(%ecx),%ebx - xorl %ebx, %esi - movl 0x400+des_SPtrans(%eax),%ebx - xorl %ebx, %esi - movl 0x500+des_SPtrans(%edx),%ebx - xorl %ebx, %esi - - /* Round 12 */ - movl 96(%ebp), %eax - xorl %ebx, %ebx - movl 100(%ebp), %edx - xorl %esi, %eax - xorl %esi, %edx - andl $0xfcfcfcfc, %eax - andl $0xcfcfcfcf, %edx - movb %al, %bl - movb %ah, %cl - rorl $4, %edx - movl des_SPtrans(%ebx),%ebp - movb %dl, %bl - xorl %ebp, %edi - movl 0x200+des_SPtrans(%ecx),%ebp - xorl %ebp, %edi - movb %dh, %cl - shrl $16, %eax - movl 0x100+des_SPtrans(%ebx),%ebp - xorl %ebp, %edi - movb %ah, %bl - shrl $16, %edx - movl 0x300+des_SPtrans(%ecx),%ebp - xorl %ebp, %edi - movl 24(%esp), %ebp - movb %dh, %cl - andl $0xff, %eax - andl $0xff, %edx - movl 0x600+des_SPtrans(%ebx),%ebx - xorl %ebx, %edi - movl 0x700+des_SPtrans(%ecx),%ebx - xorl %ebx, %edi - movl 0x400+des_SPtrans(%eax),%ebx - xorl %ebx, %edi - movl 0x500+des_SPtrans(%edx),%ebx - xorl %ebx, %edi - - /* Round 13 */ - movl 104(%ebp), %eax - xorl %ebx, %ebx - movl 108(%ebp), %edx - xorl %edi, %eax - xorl %edi, %edx - andl $0xfcfcfcfc, %eax - andl $0xcfcfcfcf, %edx - movb %al, %bl - movb %ah, %cl - rorl $4, %edx - movl des_SPtrans(%ebx),%ebp - movb %dl, %bl - xorl %ebp, %esi - movl 0x200+des_SPtrans(%ecx),%ebp - xorl %ebp, %esi - movb %dh, %cl - shrl $16, %eax - movl 0x100+des_SPtrans(%ebx),%ebp - xorl %ebp, %esi - movb %ah, %bl - shrl $16, %edx - movl 0x300+des_SPtrans(%ecx),%ebp - xorl %ebp, %esi - movl 24(%esp), %ebp - movb %dh, %cl - andl $0xff, %eax - andl $0xff, %edx - movl 0x600+des_SPtrans(%ebx),%ebx - xorl %ebx, %esi - movl 0x700+des_SPtrans(%ecx),%ebx - xorl %ebx, %esi - movl 0x400+des_SPtrans(%eax),%ebx - xorl %ebx, %esi - movl 0x500+des_SPtrans(%edx),%ebx - xorl %ebx, %esi - - /* Round 14 */ - movl 112(%ebp), %eax - xorl %ebx, %ebx - movl 116(%ebp), %edx - xorl %esi, %eax - xorl %esi, %edx - andl $0xfcfcfcfc, %eax - andl $0xcfcfcfcf, %edx - movb %al, %bl - movb %ah, %cl - rorl $4, %edx - movl des_SPtrans(%ebx),%ebp - movb %dl, %bl - xorl %ebp, %edi - movl 0x200+des_SPtrans(%ecx),%ebp - xorl %ebp, %edi - movb %dh, %cl - shrl $16, %eax - movl 0x100+des_SPtrans(%ebx),%ebp - xorl %ebp, %edi - movb %ah, %bl - shrl $16, %edx - movl 0x300+des_SPtrans(%ecx),%ebp - xorl %ebp, %edi - movl 24(%esp), %ebp - movb %dh, %cl - andl $0xff, %eax - andl $0xff, %edx - movl 0x600+des_SPtrans(%ebx),%ebx - xorl %ebx, %edi - movl 0x700+des_SPtrans(%ecx),%ebx - xorl %ebx, %edi - movl 0x400+des_SPtrans(%eax),%ebx - xorl %ebx, %edi - movl 0x500+des_SPtrans(%edx),%ebx - xorl %ebx, %edi - - /* Round 15 */ - movl 120(%ebp), %eax - xorl %ebx, %ebx - movl 124(%ebp), %edx - xorl %edi, %eax - xorl %edi, %edx - andl $0xfcfcfcfc, %eax - andl $0xcfcfcfcf, %edx - movb %al, %bl - movb %ah, %cl - rorl $4, %edx - movl des_SPtrans(%ebx),%ebp - movb %dl, %bl - xorl %ebp, %esi - movl 0x200+des_SPtrans(%ecx),%ebp - xorl %ebp, %esi - movb %dh, %cl - shrl $16, %eax - movl 0x100+des_SPtrans(%ebx),%ebp - xorl %ebp, %esi - movb %ah, %bl - shrl $16, %edx - movl 0x300+des_SPtrans(%ecx),%ebp - xorl %ebp, %esi - movl 24(%esp), %ebp - movb %dh, %cl - andl $0xff, %eax - andl $0xff, %edx - movl 0x600+des_SPtrans(%ebx),%ebx - xorl %ebx, %esi - movl 0x700+des_SPtrans(%ecx),%ebx - xorl %ebx, %esi - movl 0x400+des_SPtrans(%eax),%ebx - xorl %ebx, %esi - movl 0x500+des_SPtrans(%edx),%ebx - xorl %ebx, %esi - jmp .L001end -.align ALIGN -.L000start_decrypt: - - /* Round 15 */ - movl 120(%ebp), %eax - xorl %ebx, %ebx - movl 124(%ebp), %edx - xorl %esi, %eax - xorl %esi, %edx - andl $0xfcfcfcfc, %eax - andl $0xcfcfcfcf, %edx - movb %al, %bl - movb %ah, %cl - rorl $4, %edx - movl des_SPtrans(%ebx),%ebp - movb %dl, %bl - xorl %ebp, %edi - movl 0x200+des_SPtrans(%ecx),%ebp - xorl %ebp, %edi - movb %dh, %cl - shrl $16, %eax - movl 0x100+des_SPtrans(%ebx),%ebp - xorl %ebp, %edi - movb %ah, %bl - shrl $16, %edx - movl 0x300+des_SPtrans(%ecx),%ebp - xorl %ebp, %edi - movl 24(%esp), %ebp - movb %dh, %cl - andl $0xff, %eax - andl $0xff, %edx - movl 0x600+des_SPtrans(%ebx),%ebx - xorl %ebx, %edi - movl 0x700+des_SPtrans(%ecx),%ebx - xorl %ebx, %edi - movl 0x400+des_SPtrans(%eax),%ebx - xorl %ebx, %edi - movl 0x500+des_SPtrans(%edx),%ebx - xorl %ebx, %edi - - /* Round 14 */ - movl 112(%ebp), %eax - xorl %ebx, %ebx - movl 116(%ebp), %edx - xorl %edi, %eax - xorl %edi, %edx - andl $0xfcfcfcfc, %eax - andl $0xcfcfcfcf, %edx - movb %al, %bl - movb %ah, %cl - rorl $4, %edx - movl des_SPtrans(%ebx),%ebp - movb %dl, %bl - xorl %ebp, %esi - movl 0x200+des_SPtrans(%ecx),%ebp - xorl %ebp, %esi - movb %dh, %cl - shrl $16, %eax - movl 0x100+des_SPtrans(%ebx),%ebp - xorl %ebp, %esi - movb %ah, %bl - shrl $16, %edx - movl 0x300+des_SPtrans(%ecx),%ebp - xorl %ebp, %esi - movl 24(%esp), %ebp - movb %dh, %cl - andl $0xff, %eax - andl $0xff, %edx - movl 0x600+des_SPtrans(%ebx),%ebx - xorl %ebx, %esi - movl 0x700+des_SPtrans(%ecx),%ebx - xorl %ebx, %esi - movl 0x400+des_SPtrans(%eax),%ebx - xorl %ebx, %esi - movl 0x500+des_SPtrans(%edx),%ebx - xorl %ebx, %esi - - /* Round 13 */ - movl 104(%ebp), %eax - xorl %ebx, %ebx - movl 108(%ebp), %edx - xorl %esi, %eax - xorl %esi, %edx - andl $0xfcfcfcfc, %eax - andl $0xcfcfcfcf, %edx - movb %al, %bl - movb %ah, %cl - rorl $4, %edx - movl des_SPtrans(%ebx),%ebp - movb %dl, %bl - xorl %ebp, %edi - movl 0x200+des_SPtrans(%ecx),%ebp - xorl %ebp, %edi - movb %dh, %cl - shrl $16, %eax - movl 0x100+des_SPtrans(%ebx),%ebp - xorl %ebp, %edi - movb %ah, %bl - shrl $16, %edx - movl 0x300+des_SPtrans(%ecx),%ebp - xorl %ebp, %edi - movl 24(%esp), %ebp - movb %dh, %cl - andl $0xff, %eax - andl $0xff, %edx - movl 0x600+des_SPtrans(%ebx),%ebx - xorl %ebx, %edi - movl 0x700+des_SPtrans(%ecx),%ebx - xorl %ebx, %edi - movl 0x400+des_SPtrans(%eax),%ebx - xorl %ebx, %edi - movl 0x500+des_SPtrans(%edx),%ebx - xorl %ebx, %edi - - /* Round 12 */ - movl 96(%ebp), %eax - xorl %ebx, %ebx - movl 100(%ebp), %edx - xorl %edi, %eax - xorl %edi, %edx - andl $0xfcfcfcfc, %eax - andl $0xcfcfcfcf, %edx - movb %al, %bl - movb %ah, %cl - rorl $4, %edx - movl des_SPtrans(%ebx),%ebp - movb %dl, %bl - xorl %ebp, %esi - movl 0x200+des_SPtrans(%ecx),%ebp - xorl %ebp, %esi - movb %dh, %cl - shrl $16, %eax - movl 0x100+des_SPtrans(%ebx),%ebp - xorl %ebp, %esi - movb %ah, %bl - shrl $16, %edx - movl 0x300+des_SPtrans(%ecx),%ebp - xorl %ebp, %esi - movl 24(%esp), %ebp - movb %dh, %cl - andl $0xff, %eax - andl $0xff, %edx - movl 0x600+des_SPtrans(%ebx),%ebx - xorl %ebx, %esi - movl 0x700+des_SPtrans(%ecx),%ebx - xorl %ebx, %esi - movl 0x400+des_SPtrans(%eax),%ebx - xorl %ebx, %esi - movl 0x500+des_SPtrans(%edx),%ebx - xorl %ebx, %esi - - /* Round 11 */ - movl 88(%ebp), %eax - xorl %ebx, %ebx - movl 92(%ebp), %edx - xorl %esi, %eax - xorl %esi, %edx - andl $0xfcfcfcfc, %eax - andl $0xcfcfcfcf, %edx - movb %al, %bl - movb %ah, %cl - rorl $4, %edx - movl des_SPtrans(%ebx),%ebp - movb %dl, %bl - xorl %ebp, %edi - movl 0x200+des_SPtrans(%ecx),%ebp - xorl %ebp, %edi - movb %dh, %cl - shrl $16, %eax - movl 0x100+des_SPtrans(%ebx),%ebp - xorl %ebp, %edi - movb %ah, %bl - shrl $16, %edx - movl 0x300+des_SPtrans(%ecx),%ebp - xorl %ebp, %edi - movl 24(%esp), %ebp - movb %dh, %cl - andl $0xff, %eax - andl $0xff, %edx - movl 0x600+des_SPtrans(%ebx),%ebx - xorl %ebx, %edi - movl 0x700+des_SPtrans(%ecx),%ebx - xorl %ebx, %edi - movl 0x400+des_SPtrans(%eax),%ebx - xorl %ebx, %edi - movl 0x500+des_SPtrans(%edx),%ebx - xorl %ebx, %edi - - /* Round 10 */ - movl 80(%ebp), %eax - xorl %ebx, %ebx - movl 84(%ebp), %edx - xorl %edi, %eax - xorl %edi, %edx - andl $0xfcfcfcfc, %eax - andl $0xcfcfcfcf, %edx - movb %al, %bl - movb %ah, %cl - rorl $4, %edx - movl des_SPtrans(%ebx),%ebp - movb %dl, %bl - xorl %ebp, %esi - movl 0x200+des_SPtrans(%ecx),%ebp - xorl %ebp, %esi - movb %dh, %cl - shrl $16, %eax - movl 0x100+des_SPtrans(%ebx),%ebp - xorl %ebp, %esi - movb %ah, %bl - shrl $16, %edx - movl 0x300+des_SPtrans(%ecx),%ebp - xorl %ebp, %esi - movl 24(%esp), %ebp - movb %dh, %cl - andl $0xff, %eax - andl $0xff, %edx - movl 0x600+des_SPtrans(%ebx),%ebx - xorl %ebx, %esi - movl 0x700+des_SPtrans(%ecx),%ebx - xorl %ebx, %esi - movl 0x400+des_SPtrans(%eax),%ebx - xorl %ebx, %esi - movl 0x500+des_SPtrans(%edx),%ebx - xorl %ebx, %esi - - /* Round 9 */ - movl 72(%ebp), %eax - xorl %ebx, %ebx - movl 76(%ebp), %edx - xorl %esi, %eax - xorl %esi, %edx - andl $0xfcfcfcfc, %eax - andl $0xcfcfcfcf, %edx - movb %al, %bl - movb %ah, %cl - rorl $4, %edx - movl des_SPtrans(%ebx),%ebp - movb %dl, %bl - xorl %ebp, %edi - movl 0x200+des_SPtrans(%ecx),%ebp - xorl %ebp, %edi - movb %dh, %cl - shrl $16, %eax - movl 0x100+des_SPtrans(%ebx),%ebp - xorl %ebp, %edi - movb %ah, %bl - shrl $16, %edx - movl 0x300+des_SPtrans(%ecx),%ebp - xorl %ebp, %edi - movl 24(%esp), %ebp - movb %dh, %cl - andl $0xff, %eax - andl $0xff, %edx - movl 0x600+des_SPtrans(%ebx),%ebx - xorl %ebx, %edi - movl 0x700+des_SPtrans(%ecx),%ebx - xorl %ebx, %edi - movl 0x400+des_SPtrans(%eax),%ebx - xorl %ebx, %edi - movl 0x500+des_SPtrans(%edx),%ebx - xorl %ebx, %edi - - /* Round 8 */ - movl 64(%ebp), %eax - xorl %ebx, %ebx - movl 68(%ebp), %edx - xorl %edi, %eax - xorl %edi, %edx - andl $0xfcfcfcfc, %eax - andl $0xcfcfcfcf, %edx - movb %al, %bl - movb %ah, %cl - rorl $4, %edx - movl des_SPtrans(%ebx),%ebp - movb %dl, %bl - xorl %ebp, %esi - movl 0x200+des_SPtrans(%ecx),%ebp - xorl %ebp, %esi - movb %dh, %cl - shrl $16, %eax - movl 0x100+des_SPtrans(%ebx),%ebp - xorl %ebp, %esi - movb %ah, %bl - shrl $16, %edx - movl 0x300+des_SPtrans(%ecx),%ebp - xorl %ebp, %esi - movl 24(%esp), %ebp - movb %dh, %cl - andl $0xff, %eax - andl $0xff, %edx - movl 0x600+des_SPtrans(%ebx),%ebx - xorl %ebx, %esi - movl 0x700+des_SPtrans(%ecx),%ebx - xorl %ebx, %esi - movl 0x400+des_SPtrans(%eax),%ebx - xorl %ebx, %esi - movl 0x500+des_SPtrans(%edx),%ebx - xorl %ebx, %esi - - /* Round 7 */ - movl 56(%ebp), %eax - xorl %ebx, %ebx - movl 60(%ebp), %edx - xorl %esi, %eax - xorl %esi, %edx - andl $0xfcfcfcfc, %eax - andl $0xcfcfcfcf, %edx - movb %al, %bl - movb %ah, %cl - rorl $4, %edx - movl des_SPtrans(%ebx),%ebp - movb %dl, %bl - xorl %ebp, %edi - movl 0x200+des_SPtrans(%ecx),%ebp - xorl %ebp, %edi - movb %dh, %cl - shrl $16, %eax - movl 0x100+des_SPtrans(%ebx),%ebp - xorl %ebp, %edi - movb %ah, %bl - shrl $16, %edx - movl 0x300+des_SPtrans(%ecx),%ebp - xorl %ebp, %edi - movl 24(%esp), %ebp - movb %dh, %cl - andl $0xff, %eax - andl $0xff, %edx - movl 0x600+des_SPtrans(%ebx),%ebx - xorl %ebx, %edi - movl 0x700+des_SPtrans(%ecx),%ebx - xorl %ebx, %edi - movl 0x400+des_SPtrans(%eax),%ebx - xorl %ebx, %edi - movl 0x500+des_SPtrans(%edx),%ebx - xorl %ebx, %edi - - /* Round 6 */ - movl 48(%ebp), %eax - xorl %ebx, %ebx - movl 52(%ebp), %edx - xorl %edi, %eax - xorl %edi, %edx - andl $0xfcfcfcfc, %eax - andl $0xcfcfcfcf, %edx - movb %al, %bl - movb %ah, %cl - rorl $4, %edx - movl des_SPtrans(%ebx),%ebp - movb %dl, %bl - xorl %ebp, %esi - movl 0x200+des_SPtrans(%ecx),%ebp - xorl %ebp, %esi - movb %dh, %cl - shrl $16, %eax - movl 0x100+des_SPtrans(%ebx),%ebp - xorl %ebp, %esi - movb %ah, %bl - shrl $16, %edx - movl 0x300+des_SPtrans(%ecx),%ebp - xorl %ebp, %esi - movl 24(%esp), %ebp - movb %dh, %cl - andl $0xff, %eax - andl $0xff, %edx - movl 0x600+des_SPtrans(%ebx),%ebx - xorl %ebx, %esi - movl 0x700+des_SPtrans(%ecx),%ebx - xorl %ebx, %esi - movl 0x400+des_SPtrans(%eax),%ebx - xorl %ebx, %esi - movl 0x500+des_SPtrans(%edx),%ebx - xorl %ebx, %esi - - /* Round 5 */ - movl 40(%ebp), %eax - xorl %ebx, %ebx - movl 44(%ebp), %edx - xorl %esi, %eax - xorl %esi, %edx - andl $0xfcfcfcfc, %eax - andl $0xcfcfcfcf, %edx - movb %al, %bl - movb %ah, %cl - rorl $4, %edx - movl des_SPtrans(%ebx),%ebp - movb %dl, %bl - xorl %ebp, %edi - movl 0x200+des_SPtrans(%ecx),%ebp - xorl %ebp, %edi - movb %dh, %cl - shrl $16, %eax - movl 0x100+des_SPtrans(%ebx),%ebp - xorl %ebp, %edi - movb %ah, %bl - shrl $16, %edx - movl 0x300+des_SPtrans(%ecx),%ebp - xorl %ebp, %edi - movl 24(%esp), %ebp - movb %dh, %cl - andl $0xff, %eax - andl $0xff, %edx - movl 0x600+des_SPtrans(%ebx),%ebx - xorl %ebx, %edi - movl 0x700+des_SPtrans(%ecx),%ebx - xorl %ebx, %edi - movl 0x400+des_SPtrans(%eax),%ebx - xorl %ebx, %edi - movl 0x500+des_SPtrans(%edx),%ebx - xorl %ebx, %edi - - /* Round 4 */ - movl 32(%ebp), %eax - xorl %ebx, %ebx - movl 36(%ebp), %edx - xorl %edi, %eax - xorl %edi, %edx - andl $0xfcfcfcfc, %eax - andl $0xcfcfcfcf, %edx - movb %al, %bl - movb %ah, %cl - rorl $4, %edx - movl des_SPtrans(%ebx),%ebp - movb %dl, %bl - xorl %ebp, %esi - movl 0x200+des_SPtrans(%ecx),%ebp - xorl %ebp, %esi - movb %dh, %cl - shrl $16, %eax - movl 0x100+des_SPtrans(%ebx),%ebp - xorl %ebp, %esi - movb %ah, %bl - shrl $16, %edx - movl 0x300+des_SPtrans(%ecx),%ebp - xorl %ebp, %esi - movl 24(%esp), %ebp - movb %dh, %cl - andl $0xff, %eax - andl $0xff, %edx - movl 0x600+des_SPtrans(%ebx),%ebx - xorl %ebx, %esi - movl 0x700+des_SPtrans(%ecx),%ebx - xorl %ebx, %esi - movl 0x400+des_SPtrans(%eax),%ebx - xorl %ebx, %esi - movl 0x500+des_SPtrans(%edx),%ebx - xorl %ebx, %esi - - /* Round 3 */ - movl 24(%ebp), %eax - xorl %ebx, %ebx - movl 28(%ebp), %edx - xorl %esi, %eax - xorl %esi, %edx - andl $0xfcfcfcfc, %eax - andl $0xcfcfcfcf, %edx - movb %al, %bl - movb %ah, %cl - rorl $4, %edx - movl des_SPtrans(%ebx),%ebp - movb %dl, %bl - xorl %ebp, %edi - movl 0x200+des_SPtrans(%ecx),%ebp - xorl %ebp, %edi - movb %dh, %cl - shrl $16, %eax - movl 0x100+des_SPtrans(%ebx),%ebp - xorl %ebp, %edi - movb %ah, %bl - shrl $16, %edx - movl 0x300+des_SPtrans(%ecx),%ebp - xorl %ebp, %edi - movl 24(%esp), %ebp - movb %dh, %cl - andl $0xff, %eax - andl $0xff, %edx - movl 0x600+des_SPtrans(%ebx),%ebx - xorl %ebx, %edi - movl 0x700+des_SPtrans(%ecx),%ebx - xorl %ebx, %edi - movl 0x400+des_SPtrans(%eax),%ebx - xorl %ebx, %edi - movl 0x500+des_SPtrans(%edx),%ebx - xorl %ebx, %edi - - /* Round 2 */ - movl 16(%ebp), %eax - xorl %ebx, %ebx - movl 20(%ebp), %edx - xorl %edi, %eax - xorl %edi, %edx - andl $0xfcfcfcfc, %eax - andl $0xcfcfcfcf, %edx - movb %al, %bl - movb %ah, %cl - rorl $4, %edx - movl des_SPtrans(%ebx),%ebp - movb %dl, %bl - xorl %ebp, %esi - movl 0x200+des_SPtrans(%ecx),%ebp - xorl %ebp, %esi - movb %dh, %cl - shrl $16, %eax - movl 0x100+des_SPtrans(%ebx),%ebp - xorl %ebp, %esi - movb %ah, %bl - shrl $16, %edx - movl 0x300+des_SPtrans(%ecx),%ebp - xorl %ebp, %esi - movl 24(%esp), %ebp - movb %dh, %cl - andl $0xff, %eax - andl $0xff, %edx - movl 0x600+des_SPtrans(%ebx),%ebx - xorl %ebx, %esi - movl 0x700+des_SPtrans(%ecx),%ebx - xorl %ebx, %esi - movl 0x400+des_SPtrans(%eax),%ebx - xorl %ebx, %esi - movl 0x500+des_SPtrans(%edx),%ebx - xorl %ebx, %esi - - /* Round 1 */ - movl 8(%ebp), %eax - xorl %ebx, %ebx - movl 12(%ebp), %edx - xorl %esi, %eax - xorl %esi, %edx - andl $0xfcfcfcfc, %eax - andl $0xcfcfcfcf, %edx - movb %al, %bl - movb %ah, %cl - rorl $4, %edx - movl des_SPtrans(%ebx),%ebp - movb %dl, %bl - xorl %ebp, %edi - movl 0x200+des_SPtrans(%ecx),%ebp - xorl %ebp, %edi - movb %dh, %cl - shrl $16, %eax - movl 0x100+des_SPtrans(%ebx),%ebp - xorl %ebp, %edi - movb %ah, %bl - shrl $16, %edx - movl 0x300+des_SPtrans(%ecx),%ebp - xorl %ebp, %edi - movl 24(%esp), %ebp - movb %dh, %cl - andl $0xff, %eax - andl $0xff, %edx - movl 0x600+des_SPtrans(%ebx),%ebx - xorl %ebx, %edi - movl 0x700+des_SPtrans(%ecx),%ebx - xorl %ebx, %edi - movl 0x400+des_SPtrans(%eax),%ebx - xorl %ebx, %edi - movl 0x500+des_SPtrans(%edx),%ebx - xorl %ebx, %edi - - /* Round 0 */ - movl (%ebp), %eax - xorl %ebx, %ebx - movl 4(%ebp), %edx - xorl %edi, %eax - xorl %edi, %edx - andl $0xfcfcfcfc, %eax - andl $0xcfcfcfcf, %edx - movb %al, %bl - movb %ah, %cl - rorl $4, %edx - movl des_SPtrans(%ebx),%ebp - movb %dl, %bl - xorl %ebp, %esi - movl 0x200+des_SPtrans(%ecx),%ebp - xorl %ebp, %esi - movb %dh, %cl - shrl $16, %eax - movl 0x100+des_SPtrans(%ebx),%ebp - xorl %ebp, %esi - movb %ah, %bl - shrl $16, %edx - movl 0x300+des_SPtrans(%ecx),%ebp - xorl %ebp, %esi - movl 24(%esp), %ebp - movb %dh, %cl - andl $0xff, %eax - andl $0xff, %edx - movl 0x600+des_SPtrans(%ebx),%ebx - xorl %ebx, %esi - movl 0x700+des_SPtrans(%ecx),%ebx - xorl %ebx, %esi - movl 0x400+des_SPtrans(%eax),%ebx - xorl %ebx, %esi - movl 0x500+des_SPtrans(%edx),%ebx - xorl %ebx, %esi -.align ALIGN -.L001end: - - /* FP */ - movl 20(%esp), %edx - rorl $1, %esi - movl %edi, %eax - xorl %esi, %edi - andl $0xaaaaaaaa, %edi - xorl %edi, %eax - xorl %edi, %esi - - roll $23, %eax - movl %eax, %edi - xorl %esi, %eax - andl $0x03fc03fc, %eax - xorl %eax, %edi - xorl %eax, %esi - - roll $10, %edi - movl %edi, %eax - xorl %esi, %edi - andl $0x33333333, %edi - xorl %edi, %eax - xorl %edi, %esi - - roll $18, %esi - movl %esi, %edi - xorl %eax, %esi - andl $0xfff0000f, %esi - xorl %esi, %edi - xorl %esi, %eax - - roll $12, %edi - movl %edi, %esi - xorl %eax, %edi - andl $0xf0f0f0f0, %edi - xorl %edi, %esi - xorl %edi, %eax - - rorl $4, %eax - movl %eax, (%edx) - movl %esi, 4(%edx) - popl %edi - popl %esi - popl %ebx - popl %ebp - ret -.des_encrypt_end: - SIZE(des_encrypt,.des_encrypt_end-des_encrypt) -.ident "desasm.pl" -.text - .align ALIGN -.globl des_encrypt2 - TYPE(des_encrypt2,@function) -des_encrypt2: - pushl %ebp - pushl %ebx - pushl %esi - pushl %edi - - - /* Load the 2 words */ - movl 20(%esp), %eax - xorl %ecx, %ecx - movl (%eax), %esi - movl 28(%esp), %ebx - roll $3, %esi - movl 4(%eax), %edi - roll $3, %edi - cmpl $0, %ebx - movl 24(%esp), %ebp - je .L002start_decrypt - - /* Round 0 */ - movl (%ebp), %eax - xorl %ebx, %ebx - movl 4(%ebp), %edx - xorl %esi, %eax - xorl %esi, %edx - andl $0xfcfcfcfc, %eax - andl $0xcfcfcfcf, %edx - movb %al, %bl - movb %ah, %cl - rorl $4, %edx - movl des_SPtrans(%ebx),%ebp - movb %dl, %bl - xorl %ebp, %edi - movl 0x200+des_SPtrans(%ecx),%ebp - xorl %ebp, %edi - movb %dh, %cl - shrl $16, %eax - movl 0x100+des_SPtrans(%ebx),%ebp - xorl %ebp, %edi - movb %ah, %bl - shrl $16, %edx - movl 0x300+des_SPtrans(%ecx),%ebp - xorl %ebp, %edi - movl 24(%esp), %ebp - movb %dh, %cl - andl $0xff, %eax - andl $0xff, %edx - movl 0x600+des_SPtrans(%ebx),%ebx - xorl %ebx, %edi - movl 0x700+des_SPtrans(%ecx),%ebx - xorl %ebx, %edi - movl 0x400+des_SPtrans(%eax),%ebx - xorl %ebx, %edi - movl 0x500+des_SPtrans(%edx),%ebx - xorl %ebx, %edi - - /* Round 1 */ - movl 8(%ebp), %eax - xorl %ebx, %ebx - movl 12(%ebp), %edx - xorl %edi, %eax - xorl %edi, %edx - andl $0xfcfcfcfc, %eax - andl $0xcfcfcfcf, %edx - movb %al, %bl - movb %ah, %cl - rorl $4, %edx - movl des_SPtrans(%ebx),%ebp - movb %dl, %bl - xorl %ebp, %esi - movl 0x200+des_SPtrans(%ecx),%ebp - xorl %ebp, %esi - movb %dh, %cl - shrl $16, %eax - movl 0x100+des_SPtrans(%ebx),%ebp - xorl %ebp, %esi - movb %ah, %bl - shrl $16, %edx - movl 0x300+des_SPtrans(%ecx),%ebp - xorl %ebp, %esi - movl 24(%esp), %ebp - movb %dh, %cl - andl $0xff, %eax - andl $0xff, %edx - movl 0x600+des_SPtrans(%ebx),%ebx - xorl %ebx, %esi - movl 0x700+des_SPtrans(%ecx),%ebx - xorl %ebx, %esi - movl 0x400+des_SPtrans(%eax),%ebx - xorl %ebx, %esi - movl 0x500+des_SPtrans(%edx),%ebx - xorl %ebx, %esi - - /* Round 2 */ - movl 16(%ebp), %eax - xorl %ebx, %ebx - movl 20(%ebp), %edx - xorl %esi, %eax - xorl %esi, %edx - andl $0xfcfcfcfc, %eax - andl $0xcfcfcfcf, %edx - movb %al, %bl - movb %ah, %cl - rorl $4, %edx - movl des_SPtrans(%ebx),%ebp - movb %dl, %bl - xorl %ebp, %edi - movl 0x200+des_SPtrans(%ecx),%ebp - xorl %ebp, %edi - movb %dh, %cl - shrl $16, %eax - movl 0x100+des_SPtrans(%ebx),%ebp - xorl %ebp, %edi - movb %ah, %bl - shrl $16, %edx - movl 0x300+des_SPtrans(%ecx),%ebp - xorl %ebp, %edi - movl 24(%esp), %ebp - movb %dh, %cl - andl $0xff, %eax - andl $0xff, %edx - movl 0x600+des_SPtrans(%ebx),%ebx - xorl %ebx, %edi - movl 0x700+des_SPtrans(%ecx),%ebx - xorl %ebx, %edi - movl 0x400+des_SPtrans(%eax),%ebx - xorl %ebx, %edi - movl 0x500+des_SPtrans(%edx),%ebx - xorl %ebx, %edi - - /* Round 3 */ - movl 24(%ebp), %eax - xorl %ebx, %ebx - movl 28(%ebp), %edx - xorl %edi, %eax - xorl %edi, %edx - andl $0xfcfcfcfc, %eax - andl $0xcfcfcfcf, %edx - movb %al, %bl - movb %ah, %cl - rorl $4, %edx - movl des_SPtrans(%ebx),%ebp - movb %dl, %bl - xorl %ebp, %esi - movl 0x200+des_SPtrans(%ecx),%ebp - xorl %ebp, %esi - movb %dh, %cl - shrl $16, %eax - movl 0x100+des_SPtrans(%ebx),%ebp - xorl %ebp, %esi - movb %ah, %bl - shrl $16, %edx - movl 0x300+des_SPtrans(%ecx),%ebp - xorl %ebp, %esi - movl 24(%esp), %ebp - movb %dh, %cl - andl $0xff, %eax - andl $0xff, %edx - movl 0x600+des_SPtrans(%ebx),%ebx - xorl %ebx, %esi - movl 0x700+des_SPtrans(%ecx),%ebx - xorl %ebx, %esi - movl 0x400+des_SPtrans(%eax),%ebx - xorl %ebx, %esi - movl 0x500+des_SPtrans(%edx),%ebx - xorl %ebx, %esi - - /* Round 4 */ - movl 32(%ebp), %eax - xorl %ebx, %ebx - movl 36(%ebp), %edx - xorl %esi, %eax - xorl %esi, %edx - andl $0xfcfcfcfc, %eax - andl $0xcfcfcfcf, %edx - movb %al, %bl - movb %ah, %cl - rorl $4, %edx - movl des_SPtrans(%ebx),%ebp - movb %dl, %bl - xorl %ebp, %edi - movl 0x200+des_SPtrans(%ecx),%ebp - xorl %ebp, %edi - movb %dh, %cl - shrl $16, %eax - movl 0x100+des_SPtrans(%ebx),%ebp - xorl %ebp, %edi - movb %ah, %bl - shrl $16, %edx - movl 0x300+des_SPtrans(%ecx),%ebp - xorl %ebp, %edi - movl 24(%esp), %ebp - movb %dh, %cl - andl $0xff, %eax - andl $0xff, %edx - movl 0x600+des_SPtrans(%ebx),%ebx - xorl %ebx, %edi - movl 0x700+des_SPtrans(%ecx),%ebx - xorl %ebx, %edi - movl 0x400+des_SPtrans(%eax),%ebx - xorl %ebx, %edi - movl 0x500+des_SPtrans(%edx),%ebx - xorl %ebx, %edi - - /* Round 5 */ - movl 40(%ebp), %eax - xorl %ebx, %ebx - movl 44(%ebp), %edx - xorl %edi, %eax - xorl %edi, %edx - andl $0xfcfcfcfc, %eax - andl $0xcfcfcfcf, %edx - movb %al, %bl - movb %ah, %cl - rorl $4, %edx - movl des_SPtrans(%ebx),%ebp - movb %dl, %bl - xorl %ebp, %esi - movl 0x200+des_SPtrans(%ecx),%ebp - xorl %ebp, %esi - movb %dh, %cl - shrl $16, %eax - movl 0x100+des_SPtrans(%ebx),%ebp - xorl %ebp, %esi - movb %ah, %bl - shrl $16, %edx - movl 0x300+des_SPtrans(%ecx),%ebp - xorl %ebp, %esi - movl 24(%esp), %ebp - movb %dh, %cl - andl $0xff, %eax - andl $0xff, %edx - movl 0x600+des_SPtrans(%ebx),%ebx - xorl %ebx, %esi - movl 0x700+des_SPtrans(%ecx),%ebx - xorl %ebx, %esi - movl 0x400+des_SPtrans(%eax),%ebx - xorl %ebx, %esi - movl 0x500+des_SPtrans(%edx),%ebx - xorl %ebx, %esi - - /* Round 6 */ - movl 48(%ebp), %eax - xorl %ebx, %ebx - movl 52(%ebp), %edx - xorl %esi, %eax - xorl %esi, %edx - andl $0xfcfcfcfc, %eax - andl $0xcfcfcfcf, %edx - movb %al, %bl - movb %ah, %cl - rorl $4, %edx - movl des_SPtrans(%ebx),%ebp - movb %dl, %bl - xorl %ebp, %edi - movl 0x200+des_SPtrans(%ecx),%ebp - xorl %ebp, %edi - movb %dh, %cl - shrl $16, %eax - movl 0x100+des_SPtrans(%ebx),%ebp - xorl %ebp, %edi - movb %ah, %bl - shrl $16, %edx - movl 0x300+des_SPtrans(%ecx),%ebp - xorl %ebp, %edi - movl 24(%esp), %ebp - movb %dh, %cl - andl $0xff, %eax - andl $0xff, %edx - movl 0x600+des_SPtrans(%ebx),%ebx - xorl %ebx, %edi - movl 0x700+des_SPtrans(%ecx),%ebx - xorl %ebx, %edi - movl 0x400+des_SPtrans(%eax),%ebx - xorl %ebx, %edi - movl 0x500+des_SPtrans(%edx),%ebx - xorl %ebx, %edi - - /* Round 7 */ - movl 56(%ebp), %eax - xorl %ebx, %ebx - movl 60(%ebp), %edx - xorl %edi, %eax - xorl %edi, %edx - andl $0xfcfcfcfc, %eax - andl $0xcfcfcfcf, %edx - movb %al, %bl - movb %ah, %cl - rorl $4, %edx - movl des_SPtrans(%ebx),%ebp - movb %dl, %bl - xorl %ebp, %esi - movl 0x200+des_SPtrans(%ecx),%ebp - xorl %ebp, %esi - movb %dh, %cl - shrl $16, %eax - movl 0x100+des_SPtrans(%ebx),%ebp - xorl %ebp, %esi - movb %ah, %bl - shrl $16, %edx - movl 0x300+des_SPtrans(%ecx),%ebp - xorl %ebp, %esi - movl 24(%esp), %ebp - movb %dh, %cl - andl $0xff, %eax - andl $0xff, %edx - movl 0x600+des_SPtrans(%ebx),%ebx - xorl %ebx, %esi - movl 0x700+des_SPtrans(%ecx),%ebx - xorl %ebx, %esi - movl 0x400+des_SPtrans(%eax),%ebx - xorl %ebx, %esi - movl 0x500+des_SPtrans(%edx),%ebx - xorl %ebx, %esi - - /* Round 8 */ - movl 64(%ebp), %eax - xorl %ebx, %ebx - movl 68(%ebp), %edx - xorl %esi, %eax - xorl %esi, %edx - andl $0xfcfcfcfc, %eax - andl $0xcfcfcfcf, %edx - movb %al, %bl - movb %ah, %cl - rorl $4, %edx - movl des_SPtrans(%ebx),%ebp - movb %dl, %bl - xorl %ebp, %edi - movl 0x200+des_SPtrans(%ecx),%ebp - xorl %ebp, %edi - movb %dh, %cl - shrl $16, %eax - movl 0x100+des_SPtrans(%ebx),%ebp - xorl %ebp, %edi - movb %ah, %bl - shrl $16, %edx - movl 0x300+des_SPtrans(%ecx),%ebp - xorl %ebp, %edi - movl 24(%esp), %ebp - movb %dh, %cl - andl $0xff, %eax - andl $0xff, %edx - movl 0x600+des_SPtrans(%ebx),%ebx - xorl %ebx, %edi - movl 0x700+des_SPtrans(%ecx),%ebx - xorl %ebx, %edi - movl 0x400+des_SPtrans(%eax),%ebx - xorl %ebx, %edi - movl 0x500+des_SPtrans(%edx),%ebx - xorl %ebx, %edi - - /* Round 9 */ - movl 72(%ebp), %eax - xorl %ebx, %ebx - movl 76(%ebp), %edx - xorl %edi, %eax - xorl %edi, %edx - andl $0xfcfcfcfc, %eax - andl $0xcfcfcfcf, %edx - movb %al, %bl - movb %ah, %cl - rorl $4, %edx - movl des_SPtrans(%ebx),%ebp - movb %dl, %bl - xorl %ebp, %esi - movl 0x200+des_SPtrans(%ecx),%ebp - xorl %ebp, %esi - movb %dh, %cl - shrl $16, %eax - movl 0x100+des_SPtrans(%ebx),%ebp - xorl %ebp, %esi - movb %ah, %bl - shrl $16, %edx - movl 0x300+des_SPtrans(%ecx),%ebp - xorl %ebp, %esi - movl 24(%esp), %ebp - movb %dh, %cl - andl $0xff, %eax - andl $0xff, %edx - movl 0x600+des_SPtrans(%ebx),%ebx - xorl %ebx, %esi - movl 0x700+des_SPtrans(%ecx),%ebx - xorl %ebx, %esi - movl 0x400+des_SPtrans(%eax),%ebx - xorl %ebx, %esi - movl 0x500+des_SPtrans(%edx),%ebx - xorl %ebx, %esi - - /* Round 10 */ - movl 80(%ebp), %eax - xorl %ebx, %ebx - movl 84(%ebp), %edx - xorl %esi, %eax - xorl %esi, %edx - andl $0xfcfcfcfc, %eax - andl $0xcfcfcfcf, %edx - movb %al, %bl - movb %ah, %cl - rorl $4, %edx - movl des_SPtrans(%ebx),%ebp - movb %dl, %bl - xorl %ebp, %edi - movl 0x200+des_SPtrans(%ecx),%ebp - xorl %ebp, %edi - movb %dh, %cl - shrl $16, %eax - movl 0x100+des_SPtrans(%ebx),%ebp - xorl %ebp, %edi - movb %ah, %bl - shrl $16, %edx - movl 0x300+des_SPtrans(%ecx),%ebp - xorl %ebp, %edi - movl 24(%esp), %ebp - movb %dh, %cl - andl $0xff, %eax - andl $0xff, %edx - movl 0x600+des_SPtrans(%ebx),%ebx - xorl %ebx, %edi - movl 0x700+des_SPtrans(%ecx),%ebx - xorl %ebx, %edi - movl 0x400+des_SPtrans(%eax),%ebx - xorl %ebx, %edi - movl 0x500+des_SPtrans(%edx),%ebx - xorl %ebx, %edi - - /* Round 11 */ - movl 88(%ebp), %eax - xorl %ebx, %ebx - movl 92(%ebp), %edx - xorl %edi, %eax - xorl %edi, %edx - andl $0xfcfcfcfc, %eax - andl $0xcfcfcfcf, %edx - movb %al, %bl - movb %ah, %cl - rorl $4, %edx - movl des_SPtrans(%ebx),%ebp - movb %dl, %bl - xorl %ebp, %esi - movl 0x200+des_SPtrans(%ecx),%ebp - xorl %ebp, %esi - movb %dh, %cl - shrl $16, %eax - movl 0x100+des_SPtrans(%ebx),%ebp - xorl %ebp, %esi - movb %ah, %bl - shrl $16, %edx - movl 0x300+des_SPtrans(%ecx),%ebp - xorl %ebp, %esi - movl 24(%esp), %ebp - movb %dh, %cl - andl $0xff, %eax - andl $0xff, %edx - movl 0x600+des_SPtrans(%ebx),%ebx - xorl %ebx, %esi - movl 0x700+des_SPtrans(%ecx),%ebx - xorl %ebx, %esi - movl 0x400+des_SPtrans(%eax),%ebx - xorl %ebx, %esi - movl 0x500+des_SPtrans(%edx),%ebx - xorl %ebx, %esi - - /* Round 12 */ - movl 96(%ebp), %eax - xorl %ebx, %ebx - movl 100(%ebp), %edx - xorl %esi, %eax - xorl %esi, %edx - andl $0xfcfcfcfc, %eax - andl $0xcfcfcfcf, %edx - movb %al, %bl - movb %ah, %cl - rorl $4, %edx - movl des_SPtrans(%ebx),%ebp - movb %dl, %bl - xorl %ebp, %edi - movl 0x200+des_SPtrans(%ecx),%ebp - xorl %ebp, %edi - movb %dh, %cl - shrl $16, %eax - movl 0x100+des_SPtrans(%ebx),%ebp - xorl %ebp, %edi - movb %ah, %bl - shrl $16, %edx - movl 0x300+des_SPtrans(%ecx),%ebp - xorl %ebp, %edi - movl 24(%esp), %ebp - movb %dh, %cl - andl $0xff, %eax - andl $0xff, %edx - movl 0x600+des_SPtrans(%ebx),%ebx - xorl %ebx, %edi - movl 0x700+des_SPtrans(%ecx),%ebx - xorl %ebx, %edi - movl 0x400+des_SPtrans(%eax),%ebx - xorl %ebx, %edi - movl 0x500+des_SPtrans(%edx),%ebx - xorl %ebx, %edi - - /* Round 13 */ - movl 104(%ebp), %eax - xorl %ebx, %ebx - movl 108(%ebp), %edx - xorl %edi, %eax - xorl %edi, %edx - andl $0xfcfcfcfc, %eax - andl $0xcfcfcfcf, %edx - movb %al, %bl - movb %ah, %cl - rorl $4, %edx - movl des_SPtrans(%ebx),%ebp - movb %dl, %bl - xorl %ebp, %esi - movl 0x200+des_SPtrans(%ecx),%ebp - xorl %ebp, %esi - movb %dh, %cl - shrl $16, %eax - movl 0x100+des_SPtrans(%ebx),%ebp - xorl %ebp, %esi - movb %ah, %bl - shrl $16, %edx - movl 0x300+des_SPtrans(%ecx),%ebp - xorl %ebp, %esi - movl 24(%esp), %ebp - movb %dh, %cl - andl $0xff, %eax - andl $0xff, %edx - movl 0x600+des_SPtrans(%ebx),%ebx - xorl %ebx, %esi - movl 0x700+des_SPtrans(%ecx),%ebx - xorl %ebx, %esi - movl 0x400+des_SPtrans(%eax),%ebx - xorl %ebx, %esi - movl 0x500+des_SPtrans(%edx),%ebx - xorl %ebx, %esi - - /* Round 14 */ - movl 112(%ebp), %eax - xorl %ebx, %ebx - movl 116(%ebp), %edx - xorl %esi, %eax - xorl %esi, %edx - andl $0xfcfcfcfc, %eax - andl $0xcfcfcfcf, %edx - movb %al, %bl - movb %ah, %cl - rorl $4, %edx - movl des_SPtrans(%ebx),%ebp - movb %dl, %bl - xorl %ebp, %edi - movl 0x200+des_SPtrans(%ecx),%ebp - xorl %ebp, %edi - movb %dh, %cl - shrl $16, %eax - movl 0x100+des_SPtrans(%ebx),%ebp - xorl %ebp, %edi - movb %ah, %bl - shrl $16, %edx - movl 0x300+des_SPtrans(%ecx),%ebp - xorl %ebp, %edi - movl 24(%esp), %ebp - movb %dh, %cl - andl $0xff, %eax - andl $0xff, %edx - movl 0x600+des_SPtrans(%ebx),%ebx - xorl %ebx, %edi - movl 0x700+des_SPtrans(%ecx),%ebx - xorl %ebx, %edi - movl 0x400+des_SPtrans(%eax),%ebx - xorl %ebx, %edi - movl 0x500+des_SPtrans(%edx),%ebx - xorl %ebx, %edi - - /* Round 15 */ - movl 120(%ebp), %eax - xorl %ebx, %ebx - movl 124(%ebp), %edx - xorl %edi, %eax - xorl %edi, %edx - andl $0xfcfcfcfc, %eax - andl $0xcfcfcfcf, %edx - movb %al, %bl - movb %ah, %cl - rorl $4, %edx - movl des_SPtrans(%ebx),%ebp - movb %dl, %bl - xorl %ebp, %esi - movl 0x200+des_SPtrans(%ecx),%ebp - xorl %ebp, %esi - movb %dh, %cl - shrl $16, %eax - movl 0x100+des_SPtrans(%ebx),%ebp - xorl %ebp, %esi - movb %ah, %bl - shrl $16, %edx - movl 0x300+des_SPtrans(%ecx),%ebp - xorl %ebp, %esi - movl 24(%esp), %ebp - movb %dh, %cl - andl $0xff, %eax - andl $0xff, %edx - movl 0x600+des_SPtrans(%ebx),%ebx - xorl %ebx, %esi - movl 0x700+des_SPtrans(%ecx),%ebx - xorl %ebx, %esi - movl 0x400+des_SPtrans(%eax),%ebx - xorl %ebx, %esi - movl 0x500+des_SPtrans(%edx),%ebx - xorl %ebx, %esi - jmp .L003end -.align ALIGN -.L002start_decrypt: - - /* Round 15 */ - movl 120(%ebp), %eax - xorl %ebx, %ebx - movl 124(%ebp), %edx - xorl %esi, %eax - xorl %esi, %edx - andl $0xfcfcfcfc, %eax - andl $0xcfcfcfcf, %edx - movb %al, %bl - movb %ah, %cl - rorl $4, %edx - movl des_SPtrans(%ebx),%ebp - movb %dl, %bl - xorl %ebp, %edi - movl 0x200+des_SPtrans(%ecx),%ebp - xorl %ebp, %edi - movb %dh, %cl - shrl $16, %eax - movl 0x100+des_SPtrans(%ebx),%ebp - xorl %ebp, %edi - movb %ah, %bl - shrl $16, %edx - movl 0x300+des_SPtrans(%ecx),%ebp - xorl %ebp, %edi - movl 24(%esp), %ebp - movb %dh, %cl - andl $0xff, %eax - andl $0xff, %edx - movl 0x600+des_SPtrans(%ebx),%ebx - xorl %ebx, %edi - movl 0x700+des_SPtrans(%ecx),%ebx - xorl %ebx, %edi - movl 0x400+des_SPtrans(%eax),%ebx - xorl %ebx, %edi - movl 0x500+des_SPtrans(%edx),%ebx - xorl %ebx, %edi - - /* Round 14 */ - movl 112(%ebp), %eax - xorl %ebx, %ebx - movl 116(%ebp), %edx - xorl %edi, %eax - xorl %edi, %edx - andl $0xfcfcfcfc, %eax - andl $0xcfcfcfcf, %edx - movb %al, %bl - movb %ah, %cl - rorl $4, %edx - movl des_SPtrans(%ebx),%ebp - movb %dl, %bl - xorl %ebp, %esi - movl 0x200+des_SPtrans(%ecx),%ebp - xorl %ebp, %esi - movb %dh, %cl - shrl $16, %eax - movl 0x100+des_SPtrans(%ebx),%ebp - xorl %ebp, %esi - movb %ah, %bl - shrl $16, %edx - movl 0x300+des_SPtrans(%ecx),%ebp - xorl %ebp, %esi - movl 24(%esp), %ebp - movb %dh, %cl - andl $0xff, %eax - andl $0xff, %edx - movl 0x600+des_SPtrans(%ebx),%ebx - xorl %ebx, %esi - movl 0x700+des_SPtrans(%ecx),%ebx - xorl %ebx, %esi - movl 0x400+des_SPtrans(%eax),%ebx - xorl %ebx, %esi - movl 0x500+des_SPtrans(%edx),%ebx - xorl %ebx, %esi - - /* Round 13 */ - movl 104(%ebp), %eax - xorl %ebx, %ebx - movl 108(%ebp), %edx - xorl %esi, %eax - xorl %esi, %edx - andl $0xfcfcfcfc, %eax - andl $0xcfcfcfcf, %edx - movb %al, %bl - movb %ah, %cl - rorl $4, %edx - movl des_SPtrans(%ebx),%ebp - movb %dl, %bl - xorl %ebp, %edi - movl 0x200+des_SPtrans(%ecx),%ebp - xorl %ebp, %edi - movb %dh, %cl - shrl $16, %eax - movl 0x100+des_SPtrans(%ebx),%ebp - xorl %ebp, %edi - movb %ah, %bl - shrl $16, %edx - movl 0x300+des_SPtrans(%ecx),%ebp - xorl %ebp, %edi - movl 24(%esp), %ebp - movb %dh, %cl - andl $0xff, %eax - andl $0xff, %edx - movl 0x600+des_SPtrans(%ebx),%ebx - xorl %ebx, %edi - movl 0x700+des_SPtrans(%ecx),%ebx - xorl %ebx, %edi - movl 0x400+des_SPtrans(%eax),%ebx - xorl %ebx, %edi - movl 0x500+des_SPtrans(%edx),%ebx - xorl %ebx, %edi - - /* Round 12 */ - movl 96(%ebp), %eax - xorl %ebx, %ebx - movl 100(%ebp), %edx - xorl %edi, %eax - xorl %edi, %edx - andl $0xfcfcfcfc, %eax - andl $0xcfcfcfcf, %edx - movb %al, %bl - movb %ah, %cl - rorl $4, %edx - movl des_SPtrans(%ebx),%ebp - movb %dl, %bl - xorl %ebp, %esi - movl 0x200+des_SPtrans(%ecx),%ebp - xorl %ebp, %esi - movb %dh, %cl - shrl $16, %eax - movl 0x100+des_SPtrans(%ebx),%ebp - xorl %ebp, %esi - movb %ah, %bl - shrl $16, %edx - movl 0x300+des_SPtrans(%ecx),%ebp - xorl %ebp, %esi - movl 24(%esp), %ebp - movb %dh, %cl - andl $0xff, %eax - andl $0xff, %edx - movl 0x600+des_SPtrans(%ebx),%ebx - xorl %ebx, %esi - movl 0x700+des_SPtrans(%ecx),%ebx - xorl %ebx, %esi - movl 0x400+des_SPtrans(%eax),%ebx - xorl %ebx, %esi - movl 0x500+des_SPtrans(%edx),%ebx - xorl %ebx, %esi - - /* Round 11 */ - movl 88(%ebp), %eax - xorl %ebx, %ebx - movl 92(%ebp), %edx - xorl %esi, %eax - xorl %esi, %edx - andl $0xfcfcfcfc, %eax - andl $0xcfcfcfcf, %edx - movb %al, %bl - movb %ah, %cl - rorl $4, %edx - movl des_SPtrans(%ebx),%ebp - movb %dl, %bl - xorl %ebp, %edi - movl 0x200+des_SPtrans(%ecx),%ebp - xorl %ebp, %edi - movb %dh, %cl - shrl $16, %eax - movl 0x100+des_SPtrans(%ebx),%ebp - xorl %ebp, %edi - movb %ah, %bl - shrl $16, %edx - movl 0x300+des_SPtrans(%ecx),%ebp - xorl %ebp, %edi - movl 24(%esp), %ebp - movb %dh, %cl - andl $0xff, %eax - andl $0xff, %edx - movl 0x600+des_SPtrans(%ebx),%ebx - xorl %ebx, %edi - movl 0x700+des_SPtrans(%ecx),%ebx - xorl %ebx, %edi - movl 0x400+des_SPtrans(%eax),%ebx - xorl %ebx, %edi - movl 0x500+des_SPtrans(%edx),%ebx - xorl %ebx, %edi - - /* Round 10 */ - movl 80(%ebp), %eax - xorl %ebx, %ebx - movl 84(%ebp), %edx - xorl %edi, %eax - xorl %edi, %edx - andl $0xfcfcfcfc, %eax - andl $0xcfcfcfcf, %edx - movb %al, %bl - movb %ah, %cl - rorl $4, %edx - movl des_SPtrans(%ebx),%ebp - movb %dl, %bl - xorl %ebp, %esi - movl 0x200+des_SPtrans(%ecx),%ebp - xorl %ebp, %esi - movb %dh, %cl - shrl $16, %eax - movl 0x100+des_SPtrans(%ebx),%ebp - xorl %ebp, %esi - movb %ah, %bl - shrl $16, %edx - movl 0x300+des_SPtrans(%ecx),%ebp - xorl %ebp, %esi - movl 24(%esp), %ebp - movb %dh, %cl - andl $0xff, %eax - andl $0xff, %edx - movl 0x600+des_SPtrans(%ebx),%ebx - xorl %ebx, %esi - movl 0x700+des_SPtrans(%ecx),%ebx - xorl %ebx, %esi - movl 0x400+des_SPtrans(%eax),%ebx - xorl %ebx, %esi - movl 0x500+des_SPtrans(%edx),%ebx - xorl %ebx, %esi - - /* Round 9 */ - movl 72(%ebp), %eax - xorl %ebx, %ebx - movl 76(%ebp), %edx - xorl %esi, %eax - xorl %esi, %edx - andl $0xfcfcfcfc, %eax - andl $0xcfcfcfcf, %edx - movb %al, %bl - movb %ah, %cl - rorl $4, %edx - movl des_SPtrans(%ebx),%ebp - movb %dl, %bl - xorl %ebp, %edi - movl 0x200+des_SPtrans(%ecx),%ebp - xorl %ebp, %edi - movb %dh, %cl - shrl $16, %eax - movl 0x100+des_SPtrans(%ebx),%ebp - xorl %ebp, %edi - movb %ah, %bl - shrl $16, %edx - movl 0x300+des_SPtrans(%ecx),%ebp - xorl %ebp, %edi - movl 24(%esp), %ebp - movb %dh, %cl - andl $0xff, %eax - andl $0xff, %edx - movl 0x600+des_SPtrans(%ebx),%ebx - xorl %ebx, %edi - movl 0x700+des_SPtrans(%ecx),%ebx - xorl %ebx, %edi - movl 0x400+des_SPtrans(%eax),%ebx - xorl %ebx, %edi - movl 0x500+des_SPtrans(%edx),%ebx - xorl %ebx, %edi - - /* Round 8 */ - movl 64(%ebp), %eax - xorl %ebx, %ebx - movl 68(%ebp), %edx - xorl %edi, %eax - xorl %edi, %edx - andl $0xfcfcfcfc, %eax - andl $0xcfcfcfcf, %edx - movb %al, %bl - movb %ah, %cl - rorl $4, %edx - movl des_SPtrans(%ebx),%ebp - movb %dl, %bl - xorl %ebp, %esi - movl 0x200+des_SPtrans(%ecx),%ebp - xorl %ebp, %esi - movb %dh, %cl - shrl $16, %eax - movl 0x100+des_SPtrans(%ebx),%ebp - xorl %ebp, %esi - movb %ah, %bl - shrl $16, %edx - movl 0x300+des_SPtrans(%ecx),%ebp - xorl %ebp, %esi - movl 24(%esp), %ebp - movb %dh, %cl - andl $0xff, %eax - andl $0xff, %edx - movl 0x600+des_SPtrans(%ebx),%ebx - xorl %ebx, %esi - movl 0x700+des_SPtrans(%ecx),%ebx - xorl %ebx, %esi - movl 0x400+des_SPtrans(%eax),%ebx - xorl %ebx, %esi - movl 0x500+des_SPtrans(%edx),%ebx - xorl %ebx, %esi - - /* Round 7 */ - movl 56(%ebp), %eax - xorl %ebx, %ebx - movl 60(%ebp), %edx - xorl %esi, %eax - xorl %esi, %edx - andl $0xfcfcfcfc, %eax - andl $0xcfcfcfcf, %edx - movb %al, %bl - movb %ah, %cl - rorl $4, %edx - movl des_SPtrans(%ebx),%ebp - movb %dl, %bl - xorl %ebp, %edi - movl 0x200+des_SPtrans(%ecx),%ebp - xorl %ebp, %edi - movb %dh, %cl - shrl $16, %eax - movl 0x100+des_SPtrans(%ebx),%ebp - xorl %ebp, %edi - movb %ah, %bl - shrl $16, %edx - movl 0x300+des_SPtrans(%ecx),%ebp - xorl %ebp, %edi - movl 24(%esp), %ebp - movb %dh, %cl - andl $0xff, %eax - andl $0xff, %edx - movl 0x600+des_SPtrans(%ebx),%ebx - xorl %ebx, %edi - movl 0x700+des_SPtrans(%ecx),%ebx - xorl %ebx, %edi - movl 0x400+des_SPtrans(%eax),%ebx - xorl %ebx, %edi - movl 0x500+des_SPtrans(%edx),%ebx - xorl %ebx, %edi - - /* Round 6 */ - movl 48(%ebp), %eax - xorl %ebx, %ebx - movl 52(%ebp), %edx - xorl %edi, %eax - xorl %edi, %edx - andl $0xfcfcfcfc, %eax - andl $0xcfcfcfcf, %edx - movb %al, %bl - movb %ah, %cl - rorl $4, %edx - movl des_SPtrans(%ebx),%ebp - movb %dl, %bl - xorl %ebp, %esi - movl 0x200+des_SPtrans(%ecx),%ebp - xorl %ebp, %esi - movb %dh, %cl - shrl $16, %eax - movl 0x100+des_SPtrans(%ebx),%ebp - xorl %ebp, %esi - movb %ah, %bl - shrl $16, %edx - movl 0x300+des_SPtrans(%ecx),%ebp - xorl %ebp, %esi - movl 24(%esp), %ebp - movb %dh, %cl - andl $0xff, %eax - andl $0xff, %edx - movl 0x600+des_SPtrans(%ebx),%ebx - xorl %ebx, %esi - movl 0x700+des_SPtrans(%ecx),%ebx - xorl %ebx, %esi - movl 0x400+des_SPtrans(%eax),%ebx - xorl %ebx, %esi - movl 0x500+des_SPtrans(%edx),%ebx - xorl %ebx, %esi - - /* Round 5 */ - movl 40(%ebp), %eax - xorl %ebx, %ebx - movl 44(%ebp), %edx - xorl %esi, %eax - xorl %esi, %edx - andl $0xfcfcfcfc, %eax - andl $0xcfcfcfcf, %edx - movb %al, %bl - movb %ah, %cl - rorl $4, %edx - movl des_SPtrans(%ebx),%ebp - movb %dl, %bl - xorl %ebp, %edi - movl 0x200+des_SPtrans(%ecx),%ebp - xorl %ebp, %edi - movb %dh, %cl - shrl $16, %eax - movl 0x100+des_SPtrans(%ebx),%ebp - xorl %ebp, %edi - movb %ah, %bl - shrl $16, %edx - movl 0x300+des_SPtrans(%ecx),%ebp - xorl %ebp, %edi - movl 24(%esp), %ebp - movb %dh, %cl - andl $0xff, %eax - andl $0xff, %edx - movl 0x600+des_SPtrans(%ebx),%ebx - xorl %ebx, %edi - movl 0x700+des_SPtrans(%ecx),%ebx - xorl %ebx, %edi - movl 0x400+des_SPtrans(%eax),%ebx - xorl %ebx, %edi - movl 0x500+des_SPtrans(%edx),%ebx - xorl %ebx, %edi - - /* Round 4 */ - movl 32(%ebp), %eax - xorl %ebx, %ebx - movl 36(%ebp), %edx - xorl %edi, %eax - xorl %edi, %edx - andl $0xfcfcfcfc, %eax - andl $0xcfcfcfcf, %edx - movb %al, %bl - movb %ah, %cl - rorl $4, %edx - movl des_SPtrans(%ebx),%ebp - movb %dl, %bl - xorl %ebp, %esi - movl 0x200+des_SPtrans(%ecx),%ebp - xorl %ebp, %esi - movb %dh, %cl - shrl $16, %eax - movl 0x100+des_SPtrans(%ebx),%ebp - xorl %ebp, %esi - movb %ah, %bl - shrl $16, %edx - movl 0x300+des_SPtrans(%ecx),%ebp - xorl %ebp, %esi - movl 24(%esp), %ebp - movb %dh, %cl - andl $0xff, %eax - andl $0xff, %edx - movl 0x600+des_SPtrans(%ebx),%ebx - xorl %ebx, %esi - movl 0x700+des_SPtrans(%ecx),%ebx - xorl %ebx, %esi - movl 0x400+des_SPtrans(%eax),%ebx - xorl %ebx, %esi - movl 0x500+des_SPtrans(%edx),%ebx - xorl %ebx, %esi - - /* Round 3 */ - movl 24(%ebp), %eax - xorl %ebx, %ebx - movl 28(%ebp), %edx - xorl %esi, %eax - xorl %esi, %edx - andl $0xfcfcfcfc, %eax - andl $0xcfcfcfcf, %edx - movb %al, %bl - movb %ah, %cl - rorl $4, %edx - movl des_SPtrans(%ebx),%ebp - movb %dl, %bl - xorl %ebp, %edi - movl 0x200+des_SPtrans(%ecx),%ebp - xorl %ebp, %edi - movb %dh, %cl - shrl $16, %eax - movl 0x100+des_SPtrans(%ebx),%ebp - xorl %ebp, %edi - movb %ah, %bl - shrl $16, %edx - movl 0x300+des_SPtrans(%ecx),%ebp - xorl %ebp, %edi - movl 24(%esp), %ebp - movb %dh, %cl - andl $0xff, %eax - andl $0xff, %edx - movl 0x600+des_SPtrans(%ebx),%ebx - xorl %ebx, %edi - movl 0x700+des_SPtrans(%ecx),%ebx - xorl %ebx, %edi - movl 0x400+des_SPtrans(%eax),%ebx - xorl %ebx, %edi - movl 0x500+des_SPtrans(%edx),%ebx - xorl %ebx, %edi - - /* Round 2 */ - movl 16(%ebp), %eax - xorl %ebx, %ebx - movl 20(%ebp), %edx - xorl %edi, %eax - xorl %edi, %edx - andl $0xfcfcfcfc, %eax - andl $0xcfcfcfcf, %edx - movb %al, %bl - movb %ah, %cl - rorl $4, %edx - movl des_SPtrans(%ebx),%ebp - movb %dl, %bl - xorl %ebp, %esi - movl 0x200+des_SPtrans(%ecx),%ebp - xorl %ebp, %esi - movb %dh, %cl - shrl $16, %eax - movl 0x100+des_SPtrans(%ebx),%ebp - xorl %ebp, %esi - movb %ah, %bl - shrl $16, %edx - movl 0x300+des_SPtrans(%ecx),%ebp - xorl %ebp, %esi - movl 24(%esp), %ebp - movb %dh, %cl - andl $0xff, %eax - andl $0xff, %edx - movl 0x600+des_SPtrans(%ebx),%ebx - xorl %ebx, %esi - movl 0x700+des_SPtrans(%ecx),%ebx - xorl %ebx, %esi - movl 0x400+des_SPtrans(%eax),%ebx - xorl %ebx, %esi - movl 0x500+des_SPtrans(%edx),%ebx - xorl %ebx, %esi - - /* Round 1 */ - movl 8(%ebp), %eax - xorl %ebx, %ebx - movl 12(%ebp), %edx - xorl %esi, %eax - xorl %esi, %edx - andl $0xfcfcfcfc, %eax - andl $0xcfcfcfcf, %edx - movb %al, %bl - movb %ah, %cl - rorl $4, %edx - movl des_SPtrans(%ebx),%ebp - movb %dl, %bl - xorl %ebp, %edi - movl 0x200+des_SPtrans(%ecx),%ebp - xorl %ebp, %edi - movb %dh, %cl - shrl $16, %eax - movl 0x100+des_SPtrans(%ebx),%ebp - xorl %ebp, %edi - movb %ah, %bl - shrl $16, %edx - movl 0x300+des_SPtrans(%ecx),%ebp - xorl %ebp, %edi - movl 24(%esp), %ebp - movb %dh, %cl - andl $0xff, %eax - andl $0xff, %edx - movl 0x600+des_SPtrans(%ebx),%ebx - xorl %ebx, %edi - movl 0x700+des_SPtrans(%ecx),%ebx - xorl %ebx, %edi - movl 0x400+des_SPtrans(%eax),%ebx - xorl %ebx, %edi - movl 0x500+des_SPtrans(%edx),%ebx - xorl %ebx, %edi - - /* Round 0 */ - movl (%ebp), %eax - xorl %ebx, %ebx - movl 4(%ebp), %edx - xorl %edi, %eax - xorl %edi, %edx - andl $0xfcfcfcfc, %eax - andl $0xcfcfcfcf, %edx - movb %al, %bl - movb %ah, %cl - rorl $4, %edx - movl des_SPtrans(%ebx),%ebp - movb %dl, %bl - xorl %ebp, %esi - movl 0x200+des_SPtrans(%ecx),%ebp - xorl %ebp, %esi - movb %dh, %cl - shrl $16, %eax - movl 0x100+des_SPtrans(%ebx),%ebp - xorl %ebp, %esi - movb %ah, %bl - shrl $16, %edx - movl 0x300+des_SPtrans(%ecx),%ebp - xorl %ebp, %esi - movl 24(%esp), %ebp - movb %dh, %cl - andl $0xff, %eax - andl $0xff, %edx - movl 0x600+des_SPtrans(%ebx),%ebx - xorl %ebx, %esi - movl 0x700+des_SPtrans(%ecx),%ebx - xorl %ebx, %esi - movl 0x400+des_SPtrans(%eax),%ebx - xorl %ebx, %esi - movl 0x500+des_SPtrans(%edx),%ebx - xorl %ebx, %esi -.align ALIGN -.L003end: - - /* Fixup */ - rorl $3, %edi - movl 20(%esp), %eax - rorl $3, %esi - movl %edi, (%eax) - movl %esi, 4(%eax) - popl %edi - popl %esi - popl %ebx - popl %ebp - ret -.des_encrypt2_end: - SIZE(des_encrypt2,.des_encrypt2_end-des_encrypt2) -.ident "desasm.pl" -.text - .align ALIGN -.globl des_encrypt3 - TYPE(des_encrypt3,@function) -des_encrypt3: - pushl %ebp - pushl %ebx - pushl %esi - pushl %edi - - - /* Load the data words */ - movl 20(%esp), %ebx - movl (%ebx), %edi - movl 4(%ebx), %esi - - /* IP */ - roll $4, %edi - movl %edi, %edx - xorl %esi, %edi - andl $0xf0f0f0f0, %edi - xorl %edi, %edx - xorl %edi, %esi - - roll $20, %esi - movl %esi, %edi - xorl %edx, %esi - andl $0xfff0000f, %esi - xorl %esi, %edi - xorl %esi, %edx - - roll $14, %edi - movl %edi, %esi - xorl %edx, %edi - andl $0x33333333, %edi - xorl %edi, %esi - xorl %edi, %edx - - roll $22, %edx - movl %edx, %edi - xorl %esi, %edx - andl $0x03fc03fc, %edx - xorl %edx, %edi - xorl %edx, %esi - - roll $9, %edi - movl %edi, %edx - xorl %esi, %edi - andl $0xaaaaaaaa, %edi - xorl %edi, %edx - xorl %edi, %esi - - rorl $3, %edx - rorl $2, %esi - movl %esi, 4(%ebx) - movl 24(%esp), %eax - movl %edx, (%ebx) - movl 28(%esp), %edi - movl 32(%esp), %esi - pushl $1 - pushl %eax - pushl %ebx - call des_encrypt2 - pushl $0 - pushl %edi - pushl %ebx - call des_encrypt2 - pushl $1 - pushl %esi - pushl %ebx - call des_encrypt2 - movl (%ebx), %edi - addl $36, %esp - movl 4(%ebx), %esi - - /* FP */ - roll $2, %esi - roll $3, %edi - movl %edi, %eax - xorl %esi, %edi - andl $0xaaaaaaaa, %edi - xorl %edi, %eax - xorl %edi, %esi - - roll $23, %eax - movl %eax, %edi - xorl %esi, %eax - andl $0x03fc03fc, %eax - xorl %eax, %edi - xorl %eax, %esi - - roll $10, %edi - movl %edi, %eax - xorl %esi, %edi - andl $0x33333333, %edi - xorl %edi, %eax - xorl %edi, %esi - - roll $18, %esi - movl %esi, %edi - xorl %eax, %esi - andl $0xfff0000f, %esi - xorl %esi, %edi - xorl %esi, %eax - - roll $12, %edi - movl %edi, %esi - xorl %eax, %edi - andl $0xf0f0f0f0, %edi - xorl %edi, %esi - xorl %edi, %eax - - rorl $4, %eax - movl %eax, (%ebx) - movl %esi, 4(%ebx) - popl %edi - popl %esi - popl %ebx - popl %ebp - ret -.des_encrypt3_end: - SIZE(des_encrypt3,.des_encrypt3_end-des_encrypt3) -.ident "desasm.pl" -.text - .align ALIGN -.globl des_decrypt3 - TYPE(des_decrypt3,@function) -des_decrypt3: - pushl %ebp - pushl %ebx - pushl %esi - pushl %edi - - - /* Load the data words */ - movl 20(%esp), %ebx - movl (%ebx), %edi - movl 4(%ebx), %esi - - /* IP */ - roll $4, %edi - movl %edi, %edx - xorl %esi, %edi - andl $0xf0f0f0f0, %edi - xorl %edi, %edx - xorl %edi, %esi - - roll $20, %esi - movl %esi, %edi - xorl %edx, %esi - andl $0xfff0000f, %esi - xorl %esi, %edi - xorl %esi, %edx - - roll $14, %edi - movl %edi, %esi - xorl %edx, %edi - andl $0x33333333, %edi - xorl %edi, %esi - xorl %edi, %edx - - roll $22, %edx - movl %edx, %edi - xorl %esi, %edx - andl $0x03fc03fc, %edx - xorl %edx, %edi - xorl %edx, %esi - - roll $9, %edi - movl %edi, %edx - xorl %esi, %edi - andl $0xaaaaaaaa, %edi - xorl %edi, %edx - xorl %edi, %esi - - rorl $3, %edx - rorl $2, %esi - movl %esi, 4(%ebx) - movl 24(%esp), %esi - movl %edx, (%ebx) - movl 28(%esp), %edi - movl 32(%esp), %eax - pushl $0 - pushl %eax - pushl %ebx - call des_encrypt2 - pushl $1 - pushl %edi - pushl %ebx - call des_encrypt2 - pushl $0 - pushl %esi - pushl %ebx - call des_encrypt2 - movl (%ebx), %edi - addl $36, %esp - movl 4(%ebx), %esi - - /* FP */ - roll $2, %esi - roll $3, %edi - movl %edi, %eax - xorl %esi, %edi - andl $0xaaaaaaaa, %edi - xorl %edi, %eax - xorl %edi, %esi - - roll $23, %eax - movl %eax, %edi - xorl %esi, %eax - andl $0x03fc03fc, %eax - xorl %eax, %edi - xorl %eax, %esi - - roll $10, %edi - movl %edi, %eax - xorl %esi, %edi - andl $0x33333333, %edi - xorl %edi, %eax - xorl %edi, %esi - - roll $18, %esi - movl %esi, %edi - xorl %eax, %esi - andl $0xfff0000f, %esi - xorl %esi, %edi - xorl %esi, %eax - - roll $12, %edi - movl %edi, %esi - xorl %eax, %edi - andl $0xf0f0f0f0, %edi - xorl %edi, %esi - xorl %edi, %eax - - rorl $4, %eax - movl %eax, (%ebx) - movl %esi, 4(%ebx) - popl %edi - popl %esi - popl %ebx - popl %ebp - ret -.des_decrypt3_end: - SIZE(des_decrypt3,.des_decrypt3_end-des_decrypt3) -.ident "desasm.pl" diff --git a/crypto/des/des b/crypto/des/des deleted file mode 100644 index 7ec53b8..0000000 --- a/crypto/des/des +++ /dev/null @@ -1,305 +0,0 @@ -/* 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@mincom.oz.au). - * 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@mincom.oz.au). - * - * 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@mincom.oz.au)" - * 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@mincom.oz.au)" - * - * 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.] - */ - -/* WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING - * - * Always modify des.org since des.h is automatically generated from - * it during SSLeay configuration. - * - * WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING - */ - -#ifndef HEADER_DES_H -#define HEADER_DES_H - -#ifdef __cplusplus -extern "C" { -#endif - -#include <stdio.h> - -/* If this is set to 'unsigned int' on a DEC Alpha, this gives about a - * %20 speed up (longs are 8 bytes, int's are 4). */ -#ifndef DES_LONG -#define DES_LONG unsigned long -#endif - -typedef unsigned char des_cblock[8]; -typedef struct des_ks_struct - { - union { - des_cblock _; - /* make sure things are correct size on machines with - * 8 byte longs */ - DES_LONG pad[2]; - } ks; -#undef _ -#define _ ks._ - } des_key_schedule[16]; - -#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)) - -#define C_Block des_cblock -#define Key_schedule des_key_schedule -#ifdef KERBEROS -#define ENCRYPT DES_ENCRYPT -#define DECRYPT DES_DECRYPT -#endif -#define KEY_SZ DES_KEY_SZ -#define string_to_key des_string_to_key -#define read_pw_string des_read_pw_string -#define random_key des_random_key -#define pcbc_encrypt des_pcbc_encrypt -#define set_key des_set_key -#define key_sched des_key_sched -#define ecb_encrypt des_ecb_encrypt -#define cbc_encrypt des_cbc_encrypt -#define ncbc_encrypt des_ncbc_encrypt -#define xcbc_encrypt des_xcbc_encrypt -#define cbc_cksum des_cbc_cksum -#define quad_cksum des_quad_cksum - -/* For compatibility with the MIT lib - eay 20/05/92 */ -typedef des_key_schedule bit_64; -#define des_fixup_key_parity des_set_odd_parity -#define des_check_key_parity check_parity - -extern int des_check_key; /* defaults to false */ -extern int des_rw_mode; /* defaults to DES_PCBC_MODE */ - -/* The next line is used to disable full ANSI prototypes, if your - * compiler has problems with the prototypes, make sure this line always - * evaluates to true :-) */ -#if defined(MSDOS) || defined(__STDC__) -#undef NOPROTO -#endif -#ifndef NOPROTO -char *des_options(void); -void des_ecb3_encrypt(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(des_cblock *input,des_cblock *output, - long length,des_key_schedule schedule,des_cblock *ivec); -void des_cbc_encrypt(des_cblock *input,des_cblock *output,long length, - des_key_schedule schedule,des_cblock *ivec,int enc); -void des_ncbc_encrypt(des_cblock *input,des_cblock *output,long length, - des_key_schedule schedule,des_cblock *ivec,int enc); -void des_xcbc_encrypt(des_cblock *input,des_cblock *output,long length, - des_key_schedule schedule,des_cblock *ivec, - des_cblock *inw,des_cblock *outw,int enc); -void des_3cbc_encrypt(des_cblock *input,des_cblock *output,long length, - des_key_schedule sk1,des_key_schedule sk2, - des_cblock *ivec1,des_cblock *ivec2,int enc); -void des_cfb_encrypt(unsigned char *in,unsigned char *out,int numbits, - long length,des_key_schedule schedule,des_cblock *ivec,int enc); -void des_ecb_encrypt(des_cblock *input,des_cblock *output, - des_key_schedule ks,int enc); -void des_encrypt(DES_LONG *data,des_key_schedule ks, int enc); -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(des_cblock *input, des_cblock *output, - long length, des_key_schedule ks1, des_key_schedule ks2, - des_key_schedule ks3, des_cblock *ivec, int enc); -void des_ede3_cfb64_encrypt(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_ofb64_encrypt(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); - -void des_xwhite_in2out(des_cblock (*des_key), des_cblock (*in_white), - des_cblock (*out_white)); - -int des_enc_read(int fd,char *buf,int len,des_key_schedule sched, - des_cblock *iv); -int des_enc_write(int fd,char *buf,int len,des_key_schedule sched, - des_cblock *iv); -char *des_fcrypt(const char *buf,const char *salt, char *ret); -#ifdef PERL5 -char *des_crypt(const char *buf,const char *salt); -#else -/* some stupid compilers complain because I have declared char instead - * of const char */ -#ifdef HEADER_DES_LOCL_H -char *crypt(const char *buf,const char *salt); -#else -char *crypt(); -#endif -#endif -void des_ofb_encrypt(unsigned char *in,unsigned char *out, - int numbits,long length,des_key_schedule schedule,des_cblock *ivec); -void des_pcbc_encrypt(des_cblock *input,des_cblock *output,long length, - des_key_schedule schedule,des_cblock *ivec,int enc); -DES_LONG des_quad_cksum(des_cblock *input,des_cblock *output, - long length,int out_count,des_cblock *seed); -void des_random_seed(des_cblock key); -void des_random_key(des_cblock ret); -int des_read_password(des_cblock *key,char *prompt,int verify); -int des_read_2passwords(des_cblock *key1,des_cblock *key2, - char *prompt,int verify); -int des_read_pw_string(char *buf,int length,char *prompt,int verify); -void des_set_odd_parity(des_cblock *key); -int des_is_weak_key(des_cblock *key); -int des_set_key(des_cblock *key,des_key_schedule schedule); -int des_key_sched(des_cblock *key,des_key_schedule schedule); -void des_string_to_key(char *str,des_cblock *key); -void des_string_to_2keys(char *str,des_cblock *key1,des_cblock *key2); -void des_cfb64_encrypt(unsigned char *in, unsigned char *out, long length, - des_key_schedule schedule, des_cblock *ivec, int *num, int enc); -void des_ofb64_encrypt(unsigned char *in, unsigned char *out, long length, - des_key_schedule schedule, des_cblock *ivec, int *num); -int des_read_pw(char *buf, char *buff, int size, char *prompt, int verify); - -/* Extra functions from Mark Murray <mark@grondar.za> */ -void des_cblock_print_file(des_cblock *cb, FILE *fp); -/* The following functions are not in the normal unix build or the - * SSLeay build. When using the SSLeay build, use RAND_seed() - * and RAND_bytes() instead. */ -int des_new_random_key(des_cblock *key); -void des_init_random_number_generator(des_cblock *key); -void des_set_random_generator_seed(des_cblock *key); -void des_set_sequence_number(des_cblock new_sequence_number); -void des_generate_random_block(des_cblock *block); - -#else - -char *des_options(); -void des_ecb3_encrypt(); -DES_LONG des_cbc_cksum(); -void des_cbc_encrypt(); -void des_ncbc_encrypt(); -void des_xcbc_encrypt(); -void des_3cbc_encrypt(); -void des_cfb_encrypt(); -void des_ede3_cfb64_encrypt(); -void des_ede3_ofb64_encrypt(); -void des_ecb_encrypt(); -void des_encrypt(); -void des_encrypt2(); -void des_encrypt3(); -void des_decrypt3(); -void des_ede3_cbc_encrypt(); -int des_enc_read(); -int des_enc_write(); -char *des_fcrypt(); -#ifdef PERL5 -char *des_crypt(); -#else -char *crypt(); -#endif -void des_ofb_encrypt(); -void des_pcbc_encrypt(); -DES_LONG des_quad_cksum(); -void des_random_seed(); -void des_random_key(); -int des_read_password(); -int des_read_2passwords(); -int des_read_pw_string(); -void des_set_odd_parity(); -int des_is_weak_key(); -int des_set_key(); -int des_key_sched(); -void des_string_to_key(); -void des_string_to_2keys(); -void des_cfb64_encrypt(); -void des_ofb64_encrypt(); -int des_read_pw(); -void des_xwhite_in2out(); - -/* Extra functions from Mark Murray <mark@grondar.za> */ -void des_cblock_print_file(); -/* The following functions are not in the normal unix build or the - * SSLeay build. When using the SSLeay build, use RAND_seed() - * and RAND_bytes() instead. */ -#ifdef FreeBSD -int des_new_random_key(); -void des_init_random_number_generator(); -void des_set_random_generator_seed(); -void des_set_sequence_number(); -void des_generate_random_block(); -#endif - -#endif - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/crypto/md/Makefile.ssl b/crypto/md/Makefile.ssl deleted file mode 100644 index 3e9dda7..0000000 --- a/crypto/md/Makefile.ssl +++ /dev/null @@ -1,80 +0,0 @@ -# -# SSLeay/crypto/md/Makefile -# - -DIR= md -TOP= ../.. -CC= cc -INCLUDES= -CFLAG=-g -INSTALLTOP=/usr/local/ssl -MAKE= make -f Makefile.ssl -MAKEDEPEND= makedepend -f Makefile.ssl -MAKEFILE= Makefile.ssl -AR= ar r - -CFLAGS= $(INCLUDES) $(CFLAG) - -GENERAL=Makefile -TEST=md2test.c md5test.c -APPS= - -LIB=$(TOP)/libcrypto.a -LIBSRC=md2_dgst.c md5_dgst.c md2_one.c md5_one.c -LIBOBJ=md2_dgst.o md5_dgst.o md2_one.o md5_one.o - -SRC= $(LIBSRC) - -EXHEADER= md2.h md5.h -HEADER= md5_locl.h $(EXHEADER) - -ALL= $(GENERAL) $(SRC) $(HEADER) - -top: - (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all) - -all: lib - -lib: $(LIBOBJ) - $(AR) $(LIB) $(LIBOBJ) - sh $(TOP)/util/ranlib.sh $(LIB) - @touch lib - -files: - perl $(TOP)/util/files.pl Makefile.ssl >> $(TOP)/MINFO - -links: - /bin/rm -f Makefile - $(TOP)/util/point.sh Makefile.ssl Makefile ; - $(TOP)/util/mklink.sh ../../include $(EXHEADER) - $(TOP)/util/mklink.sh ../../test $(TEST) - $(TOP)/util/mklink.sh ../../apps $(APPS) - -install: - @for i in $(EXHEADER) ; \ - do \ - (cp $$i $(INSTALLTOP)/include/$$i; \ - chmod 644 $(INSTALLTOP)/include/$$i ); \ - done; - -tags: - ctags $(SRC) - -tests: - -lint: - lint -DLINT $(INCLUDES) $(SRC)>fluff - -depend: - $(MAKEDEPEND) $(INCLUDES) $(PROGS) $(LIBSRC) - -dclean: - perl -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new - mv -f Makefile.new $(MAKEFILE) - -clean: - /bin/rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff - -errors: - -# DO NOT DELETE THIS LINE -- make depend depends on it. diff --git a/crypto/md/md2.c b/crypto/md/md2.c deleted file mode 100644 index f3a65b9..0000000 --- a/crypto/md/md2.c +++ /dev/null @@ -1,137 +0,0 @@ -/* crypto/md/md2.c */ -/* 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.] - */ - -#include <stdio.h> -#include "md2.h" - -#define BUFSIZE 1024*16 - -#ifndef NOPROTO -void do_fp(FILE *f); -void pt(unsigned char *md); -int read(int, void *, unsigned int); -void exit(int); -void perror(const char *); -#else -void do_fp(); -void pt(); -int read(); -void exit(); -void perror(); -#endif - -int main(argc, argv) -int argc; -char *argv[]; - { - int i,err=0; - FILE *IN; - - if (argc == 1) - { - do_fp(stdin); - } - else - { - for (i=1; i<argc; i++) - { - IN=fopen(argv[i],"r"); - if (IN == NULL) - { - perror(argv[i]); - err++; - continue; - } - printf("MD2(%s)= ",argv[i]); - do_fp(IN); - fclose(IN); - } - } - exit(err); - return(err); - } - -void do_fp(f) -FILE *f; - { - MD2_CTX c; - unsigned char md[MD2_DIGEST_LENGTH]; - int fd,i; - static unsigned char buf[BUFSIZE]; - - fd=fileno(f); - MD2_Init(&c); - for (;;) - { - i=read(fd,buf,BUFSIZE); - if (i <= 0) break; - MD2_Update(&c,buf,(unsigned long)i); - } - MD2_Final(&(md[0]),&c); - pt(md); - } - -void pt(md) -unsigned char *md; - { - int i; - - for (i=0; i<MD2_DIGEST_LENGTH; i++) - printf("%02x",md[i]); - printf("\n"); - } diff --git a/crypto/md/md2.h b/crypto/md/md2.h deleted file mode 100644 index 9f39933..0000000 --- a/crypto/md/md2.h +++ /dev/null @@ -1,106 +0,0 @@ -/* crypto/md/md2.org */ -/* 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.] - */ - -/* WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING - * - * Always modify md2.org since md2.h is automatically generated from - * it during SSLeay configuration. - * - * WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING - */ - - -#ifndef HEADER_MD2_H -#define HEADER_MD2_H - -#ifdef __cplusplus -extern "C" { -#endif - -#define MD2_DIGEST_LENGTH 16 -#define MD2_BLOCK 16 - -#define MD2_INT unsigned int - -typedef struct MD2state_st - { - int num; - unsigned char data[MD2_BLOCK]; - MD2_INT cksm[MD2_BLOCK]; - MD2_INT state[MD2_BLOCK]; - } MD2_CTX; - -#ifndef NOPROTO -char *MD2_options(void); -void MD2_Init(MD2_CTX *c); -void MD2_Update(MD2_CTX *c, register unsigned char *data, unsigned long len); -void MD2_Final(unsigned char *md, MD2_CTX *c); -unsigned char *MD2(unsigned char *d, unsigned long n,unsigned char *md); -#else -char *MD2_options(); -void MD2_Init(); -void MD2_Update(); -void MD2_Final(); -unsigned char *MD2(); -#endif - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/crypto/md/md2.org b/crypto/md/md2.org deleted file mode 100644 index 9f39933..0000000 --- a/crypto/md/md2.org +++ /dev/null @@ -1,106 +0,0 @@ -/* crypto/md/md2.org */ -/* 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.] - */ - -/* WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING - * - * Always modify md2.org since md2.h is automatically generated from - * it during SSLeay configuration. - * - * WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING - */ - - -#ifndef HEADER_MD2_H -#define HEADER_MD2_H - -#ifdef __cplusplus -extern "C" { -#endif - -#define MD2_DIGEST_LENGTH 16 -#define MD2_BLOCK 16 - -#define MD2_INT unsigned int - -typedef struct MD2state_st - { - int num; - unsigned char data[MD2_BLOCK]; - MD2_INT cksm[MD2_BLOCK]; - MD2_INT state[MD2_BLOCK]; - } MD2_CTX; - -#ifndef NOPROTO -char *MD2_options(void); -void MD2_Init(MD2_CTX *c); -void MD2_Update(MD2_CTX *c, register unsigned char *data, unsigned long len); -void MD2_Final(unsigned char *md, MD2_CTX *c); -unsigned char *MD2(unsigned char *d, unsigned long n,unsigned char *md); -#else -char *MD2_options(); -void MD2_Init(); -void MD2_Update(); -void MD2_Final(); -unsigned char *MD2(); -#endif - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/crypto/md/md2_dgst.c b/crypto/md/md2_dgst.c deleted file mode 100644 index ef70de7..0000000 --- a/crypto/md/md2_dgst.c +++ /dev/null @@ -1,235 +0,0 @@ -/* crypto/md/md2_dgst.c */ -/* 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.] - */ - -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include "md2.h" - -char *MD2_version="MD2 part of SSLeay 0.8.1b 29-Jun-1998"; - -/* Implemented from RFC1319 The MD2 Message-Digest Algorithm - */ - -#define UCHAR unsigned char - -#ifndef NOPROTO -static void md2_block(MD2_CTX *c, unsigned char *d); -#else -static void md2_block(); -#endif - -/* The magic S table - I have converted it to hex since it is - * basicaly just a random byte string. */ -static MD2_INT S[256]={ - 0x29, 0x2E, 0x43, 0xC9, 0xA2, 0xD8, 0x7C, 0x01, - 0x3D, 0x36, 0x54, 0xA1, 0xEC, 0xF0, 0x06, 0x13, - 0x62, 0xA7, 0x05, 0xF3, 0xC0, 0xC7, 0x73, 0x8C, - 0x98, 0x93, 0x2B, 0xD9, 0xBC, 0x4C, 0x82, 0xCA, - 0x1E, 0x9B, 0x57, 0x3C, 0xFD, 0xD4, 0xE0, 0x16, - 0x67, 0x42, 0x6F, 0x18, 0x8A, 0x17, 0xE5, 0x12, - 0xBE, 0x4E, 0xC4, 0xD6, 0xDA, 0x9E, 0xDE, 0x49, - 0xA0, 0xFB, 0xF5, 0x8E, 0xBB, 0x2F, 0xEE, 0x7A, - 0xA9, 0x68, 0x79, 0x91, 0x15, 0xB2, 0x07, 0x3F, - 0x94, 0xC2, 0x10, 0x89, 0x0B, 0x22, 0x5F, 0x21, - 0x80, 0x7F, 0x5D, 0x9A, 0x5A, 0x90, 0x32, 0x27, - 0x35, 0x3E, 0xCC, 0xE7, 0xBF, 0xF7, 0x97, 0x03, - 0xFF, 0x19, 0x30, 0xB3, 0x48, 0xA5, 0xB5, 0xD1, - 0xD7, 0x5E, 0x92, 0x2A, 0xAC, 0x56, 0xAA, 0xC6, - 0x4F, 0xB8, 0x38, 0xD2, 0x96, 0xA4, 0x7D, 0xB6, - 0x76, 0xFC, 0x6B, 0xE2, 0x9C, 0x74, 0x04, 0xF1, - 0x45, 0x9D, 0x70, 0x59, 0x64, 0x71, 0x87, 0x20, - 0x86, 0x5B, 0xCF, 0x65, 0xE6, 0x2D, 0xA8, 0x02, - 0x1B, 0x60, 0x25, 0xAD, 0xAE, 0xB0, 0xB9, 0xF6, - 0x1C, 0x46, 0x61, 0x69, 0x34, 0x40, 0x7E, 0x0F, - 0x55, 0x47, 0xA3, 0x23, 0xDD, 0x51, 0xAF, 0x3A, - 0xC3, 0x5C, 0xF9, 0xCE, 0xBA, 0xC5, 0xEA, 0x26, - 0x2C, 0x53, 0x0D, 0x6E, 0x85, 0x28, 0x84, 0x09, - 0xD3, 0xDF, 0xCD, 0xF4, 0x41, 0x81, 0x4D, 0x52, - 0x6A, 0xDC, 0x37, 0xC8, 0x6C, 0xC1, 0xAB, 0xFA, - 0x24, 0xE1, 0x7B, 0x08, 0x0C, 0xBD, 0xB1, 0x4A, - 0x78, 0x88, 0x95, 0x8B, 0xE3, 0x63, 0xE8, 0x6D, - 0xE9, 0xCB, 0xD5, 0xFE, 0x3B, 0x00, 0x1D, 0x39, - 0xF2, 0xEF, 0xB7, 0x0E, 0x66, 0x58, 0xD0, 0xE4, - 0xA6, 0x77, 0x72, 0xF8, 0xEB, 0x75, 0x4B, 0x0A, - 0x31, 0x44, 0x50, 0xB4, 0x8F, 0xED, 0x1F, 0x1A, - 0xDB, 0x99, 0x8D, 0x33, 0x9F, 0x11, 0x83, 0x14, - }; - -char *MD2_options() - { - if (sizeof(MD2_INT) == 1) - return("md2(char)"); - else - return("md2(int)"); - } - -void MD2_Init(c) -MD2_CTX *c; - { - c->num=0; - memset(c->state,0,MD2_BLOCK*sizeof(MD2_INT)); - memset(c->cksm,0,MD2_BLOCK*sizeof(MD2_INT)); - memset(c->data,0,MD2_BLOCK); - } - -void MD2_Update(c, data, len) -MD2_CTX *c; -register unsigned char *data; -unsigned long len; - { - register UCHAR *p; - - if (len == 0) return; - - p=c->data; - if (c->num != 0) - { - if ((c->num+len) >= MD2_BLOCK) - { - memcpy(&(p[c->num]),data,MD2_BLOCK-c->num); - md2_block(c,c->data); - data+=(MD2_BLOCK - c->num); - len-=(MD2_BLOCK - c->num); - c->num=0; - /* drop through and do the rest */ - } - else - { - memcpy(&(p[c->num]),data,(int)len); - /* data+=len; */ - c->num+=(int)len; - return; - } - } - /* we now can process the input data in blocks of MD2_BLOCK - * chars and save the leftovers to c->data. */ - while (len >= MD2_BLOCK) - { - md2_block(c,data); - data+=MD2_BLOCK; - len-=MD2_BLOCK; - } - memcpy(p,data,(int)len); - c->num=(int)len; - } - -static void md2_block(c, d) -MD2_CTX *c; -unsigned char *d; - { - register MD2_INT t,*sp1,*sp2; - register int i,j; - MD2_INT state[48]; - - sp1=c->state; - sp2=c->cksm; - j=sp2[MD2_BLOCK-1]; - for (i=0; i<16; i++) - { - state[i]=sp1[i]; - state[i+16]=t=d[i]; - state[i+32]=(t^sp1[i]); - j=sp2[i]^=S[t^j]; - } - t=0; - for (i=0; i<18; i++) - { - for (j=0; j<48; j+=8) - { - t= state[j+ 0]^=S[t]; - t= state[j+ 1]^=S[t]; - t= state[j+ 2]^=S[t]; - t= state[j+ 3]^=S[t]; - t= state[j+ 4]^=S[t]; - t= state[j+ 5]^=S[t]; - t= state[j+ 6]^=S[t]; - t= state[j+ 7]^=S[t]; - } - t=(t+i)&0xff; - } - memcpy(sp1,state,16*sizeof(MD2_INT)); - memset(state,0,48*sizeof(MD2_INT)); - } - -void MD2_Final(md, c) -unsigned char *md; -MD2_CTX *c; - { - int i,v; - register UCHAR *cp; - register MD2_INT *p1,*p2; - - cp=c->data; - p1=c->state; - p2=c->cksm; - v=MD2_BLOCK-c->num; - for (i=c->num; i<MD2_BLOCK; i++) - cp[i]=(UCHAR)v; - - md2_block(c,cp); - - for (i=0; i<MD2_BLOCK; i++) - cp[i]=(UCHAR)p2[i]; - md2_block(c,cp); - - for (i=0; i<16; i++) - md[i]=(UCHAR)(p1[i]&0xff); - memset((char *)&c,0,sizeof(c)); - } - diff --git a/crypto/md/md2_one.c b/crypto/md/md2_one.c deleted file mode 100644 index 352484a..0000000 --- a/crypto/md/md2_one.c +++ /dev/null @@ -1,80 +0,0 @@ -/* crypto/md/md2_one.c */ -/* 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.] - */ - -#include <stdio.h> -#include "cryptlib.h" -#include "md2.h" - -/* This is a separate file so that #defines in cryptlib.h can - * map my MD functions to different names */ - -unsigned char *MD2(d, n, md) -unsigned char *d; -unsigned long n; -unsigned char *md; - { - MD2_CTX c; - static unsigned char m[MD2_DIGEST_LENGTH]; - - if (md == NULL) md=m; - MD2_Init(&c); - MD2_Update(&c,d,n); - MD2_Final(md,&c); - memset(&c,0,sizeof(c)); /* Security consideration */ - return(md); - } diff --git a/crypto/md/md2test.c b/crypto/md/md2test.c deleted file mode 100644 index 6e51245..0000000 --- a/crypto/md/md2test.c +++ /dev/null @@ -1,130 +0,0 @@ -/* crypto/md/md2test.c */ -/* 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.] - */ - -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include "md2.h" - -char *test[]={ - "", - "a", - "abc", - "message digest", - "abcdefghijklmnopqrstuvwxyz", - "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789", - "12345678901234567890123456789012345678901234567890123456789012345678901234567890", - NULL, - }; - -char *ret[]={ - "8350e5a3e24c153df2275c9f80692773", - "32ec01ec4a6dac72c0ab96fb34c0b5d1", - "da853b0d3f88d99b30283a69e6ded6bb", - "ab4f496bfb2a530b219ff33031fe06b0", - "4e8ddff3650292ab5a4108c3aa47940b", - "da33def2a42df13975352846c30338cd", - "d5976f79d83d3a0dc9806c3c66f3efd8", - }; - -#ifndef NOPROTO -static char *pt(unsigned char *md); -#else -static char *pt(); -#endif - -int main(argc,argv) -int argc; -char *argv[]; - { - int i,err=0; - char **P,**R; - char *p; - - P=test; - R=ret; - i=1; - while (*P != NULL) - { - p=pt(MD2((unsigned char *)*P,(unsigned long)strlen(*P),NULL)); - if (strcmp(p,*R) != 0) - { - printf("error calculating MD2 on '%s'\n",*P); - printf("got %s instead of %s\n",p,*R); - err++; - } - else - printf("test %d ok\n",i); - i++; - R++; - P++; - } - exit(err); - return(0); - } - -static char *pt(md) -unsigned char *md; - { - int i; - static char buf[80]; - - for (i=0; i<MD2_DIGEST_LENGTH; i++) - sprintf(&(buf[i*2]),"%02x",md[i]); - return(buf); - } diff --git a/crypto/md/md5.c b/crypto/md/md5.c deleted file mode 100644 index 2dd7894..0000000 --- a/crypto/md/md5.c +++ /dev/null @@ -1,135 +0,0 @@ -/* crypto/md/md5.c */ -/* 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.] - */ - -#include <stdio.h> -#include <stdlib.h> -#include "md5.h" - -#define BUFSIZE 1024*16 - -#ifndef NOPROTO -void do_fp(FILE *f); -void pt(unsigned char *md); -int read(int, void *, unsigned int); -#else -void do_fp(); -void pt(); -int read(); -#endif - -int main(argc, argv) -int argc; -char **argv; - { - int i,err=0; - FILE *IN; - - if (argc == 1) - { - do_fp(stdin); - } - else - { - for (i=1; i<argc; i++) - { - IN=fopen(argv[i],"r"); - if (IN == NULL) - { - perror(argv[i]); - err++; - continue; - } - printf("MD5(%s)= ",argv[i]); - do_fp(IN); - fclose(IN); - } - } - exit(err); - } - -void do_fp(f) -FILE *f; - { - MD5_CTX c; - unsigned char md[MD5_DIGEST_LENGTH]; - int fd; - int i; - static unsigned char buf[BUFSIZE]; - - fd=fileno(f); - MD5_Init(&c); - for (;;) - { - i=read(fd,buf,BUFSIZE); - if (i <= 0) break; - MD5_Update(&c,buf,(unsigned long)i); - } - MD5_Final(&(md[0]),&c); - pt(md); - } - -void pt(md) -unsigned char *md; - { - int i; - - for (i=0; i<MD5_DIGEST_LENGTH; i++) - printf("%02x",md[i]); - printf("\n"); - } - diff --git a/crypto/md/md5.h b/crypto/md/md5.h deleted file mode 100644 index 0071db8..0000000 --- a/crypto/md/md5.h +++ /dev/null @@ -1,97 +0,0 @@ -/* crypto/md/md5.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_MD5_H -#define HEADER_MD5_H - -#ifdef __cplusplus -extern "C" { -#endif - -#define MD5_CBLOCK 64 -#define MD5_LBLOCK 16 -#define MD5_BLOCK 16 -#define MD5_LAST_BLOCK 56 -#define MD5_LENGTH_BLOCK 8 -#define MD5_DIGEST_LENGTH 16 - -typedef struct MD5state_st - { - unsigned long A,B,C,D; - unsigned long Nl,Nh; - unsigned long data[MD5_LBLOCK]; - int num; - } MD5_CTX; - -#ifndef NOPROTO -void MD5_Init(MD5_CTX *c); -void MD5_Update(MD5_CTX *c, unsigned char *data, unsigned long len); -void MD5_Final(unsigned char *md, MD5_CTX *c); -unsigned char *MD5(unsigned char *d, unsigned long n, unsigned char *md); -#else -void MD5_Init(); -void MD5_Update(); -void MD5_Final(); -unsigned char *MD5(); -#endif - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/crypto/md/md5_dgst.c b/crypto/md/md5_dgst.c deleted file mode 100644 index b209bb4..0000000 --- a/crypto/md/md5_dgst.c +++ /dev/null @@ -1,366 +0,0 @@ -/* crypto/md/md5_dgst.c */ -/* 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.] - */ - -#include <stdio.h> -#include "md5_locl.h" - -char *MD5_version="MD5 part of SSLeay 0.8.1b 29-Jun-1998"; - -/* Implemented from RFC1321 The MD5 Message-Digest Algorithm - */ - -#define INIT_DATA_A (unsigned long)0x67452301L -#define INIT_DATA_B (unsigned long)0xefcdab89L -#define INIT_DATA_C (unsigned long)0x98badcfeL -#define INIT_DATA_D (unsigned long)0x10325476L - -#ifndef NOPROTO -static void md5_block(MD5_CTX *c, unsigned long *p); -#else -static void md5_block(); -#endif - -void MD5_Init(c) -MD5_CTX *c; - { - c->A=INIT_DATA_A; - c->B=INIT_DATA_B; - c->C=INIT_DATA_C; - c->D=INIT_DATA_D; - c->Nl=0; - c->Nh=0; - c->num=0; - } - -void MD5_Update(c, data, len) -MD5_CTX *c; -register unsigned char *data; -unsigned long len; - { - register ULONG *p; - int sw,sc; - ULONG l; - - if (len == 0) return; - - l=(c->Nl+(len<<3))&0xffffffffL; - /* 95-05-24 eay Fixed a bug with the overflow handling, thanks to - * Wei Dai <weidai@eskimo.com> for pointing it out. */ - if (l < c->Nl) /* overflow */ - c->Nh++; - c->Nh+=(len>>29); - c->Nl=l; - - if (c->num != 0) - { - p=c->data; - sw=c->num>>2; - sc=c->num&0x03; - - if ((c->num+len) >= MD5_CBLOCK) - { - l= p[sw]; - p_c2l(data,l,sc); - p[sw++]=l; - for (; sw<MD5_LBLOCK; sw++) - { - c2l(data,l); - p[sw]=l; - } - len-=(MD5_CBLOCK-c->num); - - md5_block(c,p); - c->num=0; - /* drop through and do the rest */ - } - else - { - int ew,ec; - - c->num+=(int)len; - if ((sc+len) < 4) /* ugly, add char's to a word */ - { - l= p[sw]; - p_c2l_p(data,l,sc,len); - p[sw]=l; - } - else - { - ew=(c->num>>2); - ec=(c->num&0x03); - l= p[sw]; - p_c2l(data,l,sc); - p[sw++]=l; - for (; sw < ew; sw++) - { c2l(data,l); p[sw]=l; } - if (ec) - { - c2l_p(data,l,ec); - p[sw]=l; - } - } - return; - } - } - /* we now can process the input data in blocks of MD5_CBLOCK - * chars and save the leftovers to c->data. */ - p=c->data; - while (len >= MD5_CBLOCK) - { -#if defined(L_ENDIAN) || defined(B_ENDIAN) - memcpy(p,data,MD5_CBLOCK); - data+=MD5_CBLOCK; -#ifdef B_ENDIAN - for (sw=(MD5_LBLOCK/4); sw; sw--) - { - Endian_Reverse32(p[0]); - Endian_Reverse32(p[1]); - Endian_Reverse32(p[2]); - Endian_Reverse32(p[3]); - p+=4; - } -#endif -#else - for (sw=(MD5_LBLOCK/4); sw; sw--) - { - c2l(data,l); *(p++)=l; - c2l(data,l); *(p++)=l; - c2l(data,l); *(p++)=l; - c2l(data,l); *(p++)=l; - } -#endif - p=c->data; - md5_block(c,p); - len-=MD5_CBLOCK; - } - sc=(int)len; - c->num=sc; - if (sc) - { - sw=sc>>2; /* words to copy */ -#ifdef L_ENDIAN - p[sw]=0; - memcpy(p,data,sc); -#else - sc&=0x03; - for ( ; sw; sw--) - { c2l(data,l); *(p++)=l; } - c2l_p(data,l,sc); - *p=l; -#endif - } - } - -static void md5_block(c, X) -MD5_CTX *c; -register ULONG *X; - { - register ULONG A,B,C,D; - - A=c->A; - B=c->B; - C=c->C; - D=c->D; - - /* Round 0 */ - R0(A,B,C,D,X[ 0], 7,0xd76aa478L); - R0(D,A,B,C,X[ 1],12,0xe8c7b756L); - R0(C,D,A,B,X[ 2],17,0x242070dbL); - R0(B,C,D,A,X[ 3],22,0xc1bdceeeL); - R0(A,B,C,D,X[ 4], 7,0xf57c0fafL); - R0(D,A,B,C,X[ 5],12,0x4787c62aL); - R0(C,D,A,B,X[ 6],17,0xa8304613L); - R0(B,C,D,A,X[ 7],22,0xfd469501L); - R0(A,B,C,D,X[ 8], 7,0x698098d8L); - R0(D,A,B,C,X[ 9],12,0x8b44f7afL); - R0(C,D,A,B,X[10],17,0xffff5bb1L); - R0(B,C,D,A,X[11],22,0x895cd7beL); - R0(A,B,C,D,X[12], 7,0x6b901122L); - R0(D,A,B,C,X[13],12,0xfd987193L); - R0(C,D,A,B,X[14],17,0xa679438eL); - R0(B,C,D,A,X[15],22,0x49b40821L); - /* Round 1 */ - R1(A,B,C,D,X[ 1], 5,0xf61e2562L); - R1(D,A,B,C,X[ 6], 9,0xc040b340L); - R1(C,D,A,B,X[11],14,0x265e5a51L); - R1(B,C,D,A,X[ 0],20,0xe9b6c7aaL); - R1(A,B,C,D,X[ 5], 5,0xd62f105dL); - R1(D,A,B,C,X[10], 9,0x02441453L); - R1(C,D,A,B,X[15],14,0xd8a1e681L); - R1(B,C,D,A,X[ 4],20,0xe7d3fbc8L); - R1(A,B,C,D,X[ 9], 5,0x21e1cde6L); - R1(D,A,B,C,X[14], 9,0xc33707d6L); - R1(C,D,A,B,X[ 3],14,0xf4d50d87L); - R1(B,C,D,A,X[ 8],20,0x455a14edL); - R1(A,B,C,D,X[13], 5,0xa9e3e905L); - R1(D,A,B,C,X[ 2], 9,0xfcefa3f8L); - R1(C,D,A,B,X[ 7],14,0x676f02d9L); - R1(B,C,D,A,X[12],20,0x8d2a4c8aL); - /* Round 2 */ - R2(A,B,C,D,X[ 5], 4,0xfffa3942L); - R2(D,A,B,C,X[ 8],11,0x8771f681L); - R2(C,D,A,B,X[11],16,0x6d9d6122L); - R2(B,C,D,A,X[14],23,0xfde5380cL); - R2(A,B,C,D,X[ 1], 4,0xa4beea44L); - R2(D,A,B,C,X[ 4],11,0x4bdecfa9L); - R2(C,D,A,B,X[ 7],16,0xf6bb4b60L); - R2(B,C,D,A,X[10],23,0xbebfbc70L); - R2(A,B,C,D,X[13], 4,0x289b7ec6L); - R2(D,A,B,C,X[ 0],11,0xeaa127faL); - R2(C,D,A,B,X[ 3],16,0xd4ef3085L); - R2(B,C,D,A,X[ 6],23,0x04881d05L); - R2(A,B,C,D,X[ 9], 4,0xd9d4d039L); - R2(D,A,B,C,X[12],11,0xe6db99e5L); - R2(C,D,A,B,X[15],16,0x1fa27cf8L); - R2(B,C,D,A,X[ 2],23,0xc4ac5665L); - /* Round 3 */ - R3(A,B,C,D,X[ 0], 6,0xf4292244L); - R3(D,A,B,C,X[ 7],10,0x432aff97L); - R3(C,D,A,B,X[14],15,0xab9423a7L); - R3(B,C,D,A,X[ 5],21,0xfc93a039L); - R3(A,B,C,D,X[12], 6,0x655b59c3L); - R3(D,A,B,C,X[ 3],10,0x8f0ccc92L); - R3(C,D,A,B,X[10],15,0xffeff47dL); - R3(B,C,D,A,X[ 1],21,0x85845dd1L); - R3(A,B,C,D,X[ 8], 6,0x6fa87e4fL); - R3(D,A,B,C,X[15],10,0xfe2ce6e0L); - R3(C,D,A,B,X[ 6],15,0xa3014314L); - R3(B,C,D,A,X[13],21,0x4e0811a1L); - R3(A,B,C,D,X[ 4], 6,0xf7537e82L); - R3(D,A,B,C,X[11],10,0xbd3af235L); - R3(C,D,A,B,X[ 2],15,0x2ad7d2bbL); - R3(B,C,D,A,X[ 9],21,0xeb86d391L); - - c->A+=A&0xffffffffL; - c->B+=B&0xffffffffL; - c->C+=C&0xffffffffL; - c->D+=D&0xffffffffL; - } - -void MD5_Final(md, c) -unsigned char *md; -MD5_CTX *c; - { - register int i,j; - register ULONG l; - register ULONG *p; - static unsigned char end[4]={0x80,0x00,0x00,0x00}; - unsigned char *cp=end; - - /* c->num should definitly have room for at least one more byte. */ - p=c->data; - j=c->num; - i=j>>2; - - /* purify often complains about the following line as an - * Uninitialized Memory Read. While this can be true, the - * following p_c2l macro will reset l when that case is true. - * This is because j&0x03 contains the number of 'valid' bytes - * already in p[i]. If and only if j&0x03 == 0, the UMR will - * occur but this is also the only time p_c2l will do - * l= *(cp++) instead of l|= *(cp++) - * Many thanks to Alex Tang <altitude@cic.net> for pickup this - * 'potential bug' */ -#ifdef PURIFY - if ((j&0x03) == 0) p[i]=0; -#endif - l=p[i]; - p_c2l(cp,l,j&0x03); - p[i]=l; - i++; - /* i is the next 'undefined word' */ - if (c->num >= MD5_LAST_BLOCK) - { - for (; i<MD5_LBLOCK; i++) - p[i]=0; - md5_block(c,p); - i=0; - } - for (; i<(MD5_LBLOCK-2); i++) - p[i]=0; - p[MD5_LBLOCK-2]=c->Nl; - p[MD5_LBLOCK-1]=c->Nh; - md5_block(c,p); - cp=md; - l=c->A; l2c(l,cp); - l=c->B; l2c(l,cp); - l=c->C; l2c(l,cp); - l=c->D; l2c(l,cp); - - /* clear stuff, md5_block may be leaving some stuff on the stack - * but I'm not worried :-) */ - c->num=0; -/* memset((char *)&c,0,sizeof(c));*/ - } - -#ifdef undef -int printit(l) -unsigned long *l; - { - int i,ii; - - for (i=0; i<2; i++) - { - for (ii=0; ii<8; ii++) - { - fprintf(stderr,"%08lx ",l[i*8+ii]); - } - fprintf(stderr,"\n"); - } - } -#endif diff --git a/crypto/md/md5_locl.h b/crypto/md/md5_locl.h deleted file mode 100644 index b2f0028..0000000 --- a/crypto/md/md5_locl.h +++ /dev/null @@ -1,190 +0,0 @@ -/* crypto/md/md5_locl.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.] - */ - -#include <stdlib.h> -#include <string.h> -#include "md5.h" - -#define ULONG unsigned long -#define UCHAR unsigned char -#define UINT unsigned int - -#if defined(NOCONST) -#define const -#endif - -#undef c2l -#define c2l(c,l) (l = ((unsigned long)(*((c)++))) , \ - l|=(((unsigned long)(*((c)++)))<< 8), \ - l|=(((unsigned long)(*((c)++)))<<16), \ - l|=(((unsigned long)(*((c)++)))<<24)) - -#undef p_c2l -#define p_c2l(c,l,n) { \ - switch (n) { \ - case 0: l =((unsigned long)(*((c)++))); \ - case 1: l|=((unsigned long)(*((c)++)))<< 8; \ - case 2: l|=((unsigned long)(*((c)++)))<<16; \ - case 3: l|=((unsigned long)(*((c)++)))<<24; \ - } \ - } - -/* NOTE the pointer is not incremented at the end of this */ -#undef c2l_p -#define c2l_p(c,l,n) { \ - l=0; \ - (c)+=n; \ - switch (n) { \ - case 3: l =((unsigned long)(*(--(c))))<<16; \ - case 2: l|=((unsigned long)(*(--(c))))<< 8; \ - case 1: l|=((unsigned long)(*(--(c)))) ; \ - } \ - } - -#undef p_c2l_p -#define p_c2l_p(c,l,sc,len) { \ - switch (sc) \ - { \ - case 0: l =((unsigned long)(*((c)++))); \ - if (--len == 0) break; \ - case 1: l|=((unsigned long)(*((c)++)))<< 8; \ - if (--len == 0) break; \ - case 2: l|=((unsigned long)(*((c)++)))<<16; \ - } \ - } - -#undef l2c -#define l2c(l,c) (*((c)++)=(unsigned char)(((l) )&0xff), \ - *((c)++)=(unsigned char)(((l)>> 8)&0xff), \ - *((c)++)=(unsigned char)(((l)>>16)&0xff), \ - *((c)++)=(unsigned char)(((l)>>24)&0xff)) - -/* NOTE - c is not incremented as per l2c */ -#undef l2cn -#define l2cn(l1,l2,c,n) { \ - c+=n; \ - switch (n) { \ - case 8: *(--(c))=(unsigned char)(((l2)>>24)&0xff); \ - case 7: *(--(c))=(unsigned char)(((l2)>>16)&0xff); \ - case 6: *(--(c))=(unsigned char)(((l2)>> 8)&0xff); \ - case 5: *(--(c))=(unsigned char)(((l2) )&0xff); \ - case 4: *(--(c))=(unsigned char)(((l1)>>24)&0xff); \ - case 3: *(--(c))=(unsigned char)(((l1)>>16)&0xff); \ - case 2: *(--(c))=(unsigned char)(((l1)>> 8)&0xff); \ - case 1: *(--(c))=(unsigned char)(((l1) )&0xff); \ - } \ - } - -/* A nice byte order reversal from Wei Dai <weidai@eskimo.com> */ -#if defined(WIN32) -/* 5 instructions with rotate instruction, else 9 */ -#define Endian_Reverse32(a) \ - { \ - unsigned long l=(a); \ - (a)=((ROTATE(l,8)&0x00FF00FF)|(ROTATE(l,24)&0xFF00FF00)); \ - } -#else -/* 6 instructions with rotate instruction, else 8 */ -#define Endian_Reverse32(a) \ - { \ - unsigned long l=(a); \ - l=(((l&0xFF00FF00)>>8L)|((l&0x00FF00FF)<<8L)); \ - (a)=ROTATE(l,16L); \ - } -#endif -/* -#define F(x,y,z) (((x) & (y)) | ((~(x)) & (z))) -#define G(x,y,z) (((x) & (z)) | ((y) & (~(z)))) -*/ - -/* As pointed out by Wei Dai <weidai@eskimo.com>, the above can be - * simplified to the code below. Wei attributes these optimisations - * to Peter Gutmann's SHS code, and he attributes it to Rich Schroeppel. - */ -#define F(x,y,z) ((((y) ^ (z)) & (x)) ^ (z)) -#define G(x,y,z) ((((x) ^ (y)) & (z)) ^ (y)) -#define H(x,y,z) ((x) ^ (y) ^ (z)) -#define I(x,y,z) (((x) | (~(z))) ^ (y)) - -#undef ROTATE -#if defined(WIN32) -#define ROTATE(a,n) _lrotl(a,n) -#else -#define ROTATE(a,n) (((a)<<(n))|(((a)&0xffffffff)>>(32-(n)))) -#endif - - -#define R0(a,b,c,d,k,s,t) { \ - a+=((k)+(t)+F((b),(c),(d))); \ - a=ROTATE(a,s); \ - a+=b; };\ - -#define R1(a,b,c,d,k,s,t) { \ - a+=((k)+(t)+G((b),(c),(d))); \ - a=ROTATE(a,s); \ - a+=b; }; - -#define R2(a,b,c,d,k,s,t) { \ - a+=((k)+(t)+H((b),(c),(d))); \ - a=ROTATE(a,s); \ - a+=b; }; - -#define R3(a,b,c,d,k,s,t) { \ - a+=((k)+(t)+I((b),(c),(d))); \ - a=ROTATE(a,s); \ - a+=b; }; diff --git a/crypto/md/md5_one.c b/crypto/md/md5_one.c deleted file mode 100644 index b23cb28..0000000 --- a/crypto/md/md5_one.c +++ /dev/null @@ -1,78 +0,0 @@ -/* crypto/md/md5_one.c */ -/* 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.] - */ - -#include <stdio.h> -#include "cryptlib.h" -#include "md5_locl.h" - -unsigned char *MD5(d, n, md) -unsigned char *d; -unsigned long n; -unsigned char *md; - { - MD5_CTX c; - static unsigned char m[MD5_DIGEST_LENGTH]; - - if (md == NULL) md=m; - MD5_Init(&c); - MD5_Update(&c,d,n); - MD5_Final(md,&c); - memset(&c,0,sizeof(c)); /* security consideration */ - return(md); - } - diff --git a/crypto/md/md5test.c b/crypto/md/md5test.c deleted file mode 100644 index e5c38cf..0000000 --- a/crypto/md/md5test.c +++ /dev/null @@ -1,130 +0,0 @@ -/* crypto/md/md5test.c */ -/* 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.] - */ - -#include <stdio.h> -#include <string.h> -#include <stdlib.h> -#include "md5.h" - -char *test[]={ - "", - "a", - "abc", - "message digest", - "abcdefghijklmnopqrstuvwxyz", - "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789", - "12345678901234567890123456789012345678901234567890123456789012345678901234567890", - NULL, - }; - -char *ret[]={ - "d41d8cd98f00b204e9800998ecf8427e", - "0cc175b9c0f1b6a831c399e269772661", - "900150983cd24fb0d6963f7d28e17f72", - "f96b697d7cb7938d525a2f31aaf161d0", - "c3fcd3d76192e4007dfb496cca67e13b", - "d174ab98d277d9f5a5611c2c9f419d9f", - "57edf4a22be3c955ac49da2e2107b67a", - }; - -#ifndef NOPROTO -static char *pt(unsigned char *md); -#else -static char *pt(); -#endif - -int main(argc,argv) -int argc; -char *argv[]; - { - int i,err=0; - unsigned char **P,**R; - char *p; - - P=(unsigned char **)test; - R=(unsigned char **)ret; - i=1; - while (*P != NULL) - { - p=pt(MD5(*P,(unsigned long)strlen((char *)*P),NULL)); - if (strcmp(p,(char *)*R) != 0) - { - printf("error calculating MD5 on '%s'\n",*P); - printf("got %s instead of %s\n",p,*R); - err++; - } - else - printf("test %d ok\n",i); - i++; - R++; - P++; - } - exit(err); - return(0); - } - -static char *pt(md) -unsigned char *md; - { - int i; - static char buf[80]; - - for (i=0; i<MD5_DIGEST_LENGTH; i++) - sprintf(&(buf[i*2]),"%02x",md[i]); - return(buf); - } diff --git a/crypto/rc4/rc4_enc.org b/crypto/rc4/rc4_enc.org deleted file mode 100644 index c83b9ac..0000000 --- a/crypto/rc4/rc4_enc.org +++ /dev/null @@ -1,195 +0,0 @@ -/* crypto/rc4/rc4_enc.org */ -/* 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.] - */ - -/* WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING - * - * Always modify rc4_enc.org since rc4_enc.c is automatically generated from - * it during SSLeay configuration. - * WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING - */ - -#include "rc4.h" - -/* if this is defined data[i] is used instead of *data, this is a %20 - * speedup on x86 */ -#define RC4_INDEX - -char *RC4_version="RC4 part of SSLeay 0.8.1b 29-Jun-1998"; - -char *RC4_options() - { -#ifdef RC4_INDEX - if (sizeof(RC4_INT) == 1) - return("rc4(idx,char)"); - else - return("rc4(idx,int)"); -#else - if (sizeof(RC4_INT) == 1) - return("rc4(ptr,char)"); - else - return("rc4(ptr,int)"); -#endif - } - -/* RC4 as implemented from a posting from - * Newsgroups: sci.crypt - * From: sterndark@netcom.com (David Sterndark) - * Subject: RC4 Algorithm revealed. - * Message-ID: <sternCvKL4B.Hyy@netcom.com> - * Date: Wed, 14 Sep 1994 06:35:31 GMT - */ - -void RC4_set_key(key, len, data) -RC4_KEY *key; -int len; -register unsigned char *data; - { - register RC4_INT tmp; - register int id1,id2; - register RC4_INT *d; - unsigned int i; - - d= &(key->data[0]); - for (i=0; i<256; i++) - d[i]=i; - key->x = 0; - key->y = 0; - id1=id2=0; - -#define SK_LOOP(n) { \ - tmp=d[(n)]; \ - id2 = (data[id1] + tmp + id2) & 0xff; \ - if (++id1 == len) id1=0; \ - d[(n)]=d[id2]; \ - d[id2]=tmp; } - - for (i=0; i < 256; i+=4) - { - SK_LOOP(i+0); - SK_LOOP(i+1); - SK_LOOP(i+2); - SK_LOOP(i+3); - } - } - -void RC4(key, len, indata, outdata) -RC4_KEY *key; -unsigned long len; -unsigned char *indata; -unsigned char *outdata; - { - register RC4_INT *d; - register RC4_INT x,y,tx,ty; - int i; - - x=key->x; - y=key->y; - d=key->data; - -#define LOOP(in,out) \ - x=((x+1)&0xff); \ - tx=d[x]; \ - y=(tx+y)&0xff; \ - d[x]=ty=d[y]; \ - d[y]=tx; \ - (out) = d[(tx+ty)&0xff]^ (in); - -#ifndef RC4_INDEX -#define RC4_LOOP(a,b,i) LOOP(*((a)++),*((b)++)) -#else -#define RC4_LOOP(a,b,i) LOOP(a[i],b[i]) -#endif - - i= -(int)len; - i=(int)(len>>3L); - if (i) - { - for (;;) - { - RC4_LOOP(indata,outdata,0); - RC4_LOOP(indata,outdata,1); - RC4_LOOP(indata,outdata,2); - RC4_LOOP(indata,outdata,3); - RC4_LOOP(indata,outdata,4); - RC4_LOOP(indata,outdata,5); - RC4_LOOP(indata,outdata,6); - RC4_LOOP(indata,outdata,7); -#ifdef RC4_INDEX - indata+=8; - outdata+=8; -#endif - if (--i == 0) break; - } - } - i=(int)len&0x07; - if (i) - { - for (;;) - { - RC4_LOOP(indata,outdata,0); if (--i == 0) break; - RC4_LOOP(indata,outdata,1); if (--i == 0) break; - RC4_LOOP(indata,outdata,2); if (--i == 0) break; - RC4_LOOP(indata,outdata,3); if (--i == 0) break; - RC4_LOOP(indata,outdata,4); if (--i == 0) break; - RC4_LOOP(indata,outdata,5); if (--i == 0) break; - RC4_LOOP(indata,outdata,6); if (--i == 0) break; - } - } - key->x=x; - key->y=y; - } diff --git a/crypto/rsa/rsa_enc.c b/crypto/rsa/rsa_enc.c deleted file mode 100644 index c4a4ad5..0000000 --- a/crypto/rsa/rsa_enc.c +++ /dev/null @@ -1,538 +0,0 @@ -/* crypto/rsa/rsa_enc.c */ -/* 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.] - */ - -#include <stdio.h> -#include "cryptlib.h" -#include "bn.h" -#include "rsa.h" -#include "rand.h" - -#ifndef NOPROTO -static int RSA_eay_public_encrypt(int flen, unsigned char *from, - unsigned char *to, RSA *rsa,int padding); -static int RSA_eay_private_encrypt(int flen, unsigned char *from, - unsigned char *to, RSA *rsa,int padding); -static int RSA_eay_public_decrypt(int flen, unsigned char *from, - unsigned char *to, RSA *rsa,int padding); -static int RSA_eay_private_decrypt(int flen, unsigned char *from, - unsigned char *to, RSA *rsa,int padding); -static int RSA_eay_mod_exp(BIGNUM *r0, BIGNUM *i, RSA *rsa); -#else -static int RSA_eay_public_encrypt(); -static int RSA_eay_private_encrypt(); -static int RSA_eay_public_decrypt(); -static int RSA_eay_private_decrypt(); -static int RSA_eay_mod_exp(); -#endif - -static RSA_METHOD rsa_pkcs1_eay_meth={ - "Eric Young's PKCS#1 RSA", - RSA_eay_public_encrypt, - RSA_eay_public_decrypt, - RSA_eay_private_encrypt, - RSA_eay_private_decrypt, - RSA_eay_mod_exp, - BN_mod_exp, - NULL, - NULL, - }; - -RSA_METHOD *RSA_PKCS1_SSLeay() - { - return(&rsa_pkcs1_eay_meth); - } - -static int RSA_eay_public_encrypt(flen, from, to, rsa, padding) -int flen; -unsigned char *from; -unsigned char *to; -RSA *rsa; -int padding; - { - BIGNUM *f=NULL,*ret=NULL; - int i,j,k,num=0,r= -1; - unsigned char *p; - unsigned char *buf=NULL; - BN_CTX *ctx=NULL; - - if ( (padding != RSA_PKCS1_PADDING) && - (padding != RSA_SSLV23_PADDING)) - { - RSAerr(RSA_F_RSA_EAY_PUBLIC_ENCRYPT,RSA_R_UNKNOWN_PADDING_TYPE); - goto err; - } - - ctx=BN_CTX_new(); - if (ctx == NULL) goto err; - - num=BN_num_bytes(rsa->n); - if (flen > (num-11)) - { - RSAerr(RSA_F_RSA_EAY_PUBLIC_ENCRYPT,RSA_R_DATA_TOO_LARGE_FOR_KEY_SIZE); - goto err; - } - - buf=(unsigned char *)Malloc(num); - if (buf == NULL) - { - RSAerr(RSA_F_RSA_EAY_PUBLIC_ENCRYPT,ERR_R_MALLOC_FAILURE); - goto err; - } - p=(unsigned char *)buf; - - *(p++)=0; - *(p++)=2; /* Public Key BT (Block Type) */ - - /* pad out with non-zero random data */ - j=num-3-flen; - - RAND_bytes(p,j); - for (i=0; i<j; i++) - { - if (*p == '\0') - do { - RAND_bytes(p,1); - } while (*p == '\0'); - p++; - } - - if (padding == RSA_SSLV23_PADDING) - memset(&(p[-8]),3,8); - - *(p++)='\0'; - - memcpy(p,from,(unsigned int)flen); - - f=BN_new(); - ret=BN_new(); - if ((f == NULL) || (ret == NULL)) goto err; - - if (BN_bin2bn(buf,num,f) == NULL) goto err; - if (!rsa->meth->bn_mod_exp(ret,f,rsa->e,rsa->n,ctx)) goto err; - - /* put in leading 0 bytes if the number is less than the - * length of the modulus */ - j=BN_num_bytes(ret); - i=BN_bn2bin(ret,&(to[num-j])); - for (k=0; k<(num-i); k++) - to[k]=0; - - r=num; -err: - if (ctx != NULL) BN_CTX_free(ctx); - if (f != NULL) BN_free(f); - if (ret != NULL) BN_free(ret); - if (buf != NULL) - { - memset(buf,0,num); - Free(buf); - } - return(r); - } - -static int RSA_eay_private_encrypt(flen, from, to, rsa, padding) -int flen; -unsigned char *from; -unsigned char *to; -RSA *rsa; -int padding; - { - BIGNUM *f=NULL,*ret=NULL; - int i,j,k,num=0,r= -1; - unsigned char *p; - unsigned char *buf=NULL; - BN_CTX *ctx=NULL; - - if (padding != RSA_PKCS1_PADDING) - { - RSAerr(RSA_F_RSA_EAY_PRIVATE_ENCRYPT,RSA_R_UNKNOWN_PADDING_TYPE); - goto err; - } - - ctx=BN_CTX_new(); - if (ctx == NULL) goto err; - - num=BN_num_bytes(rsa->n); - if (flen > (num-11)) - { - RSAerr(RSA_F_RSA_EAY_PRIVATE_ENCRYPT,RSA_R_DATA_TOO_LARGE_FOR_KEY_SIZE); - goto err; - } - buf=(unsigned char *)Malloc(num); - if (buf == NULL) - { - RSAerr(RSA_F_RSA_EAY_PRIVATE_ENCRYPT,ERR_R_MALLOC_FAILURE); - goto err; - } - p=buf; - - *(p++)=0; - *(p++)=1; /* Private Key BT (Block Type) */ - - /* padd out with 0xff data */ - j=num-3-flen; - for (i=0; i<j; i++) - *(p++)=0xff; - *(p++)='\0'; - memcpy(p,from,(unsigned int)flen); - ret=BN_new(); - f=BN_new(); - if ((ret == NULL) || (f == NULL)) goto err; - if (BN_bin2bn(buf,num,f) == NULL) goto err; - if ( (rsa->p != NULL) && - (rsa->q != NULL) && - (rsa->dmp1 != NULL) && - (rsa->dmq1 != NULL) && - (rsa->iqmp != NULL)) - { if (!rsa->meth->rsa_mod_exp(ret,f,rsa)) goto err; } - else - { if (!rsa->meth->bn_mod_exp(ret,f,rsa->d,rsa->n,ctx)) goto err; } - - p=buf; - BN_bn2bin(ret,p); - - /* put in leading 0 bytes if the number is less than the - * length of the modulus */ - j=BN_num_bytes(ret); - i=BN_bn2bin(ret,&(to[num-j])); - for (k=0; k<(num-i); k++) - to[k]=0; - - r=num; -err: - if (ctx != NULL) BN_CTX_free(ctx); - if (ret != NULL) BN_free(ret); - if (f != NULL) BN_free(f); - if (buf != NULL) - { - memset(buf,0,num); - Free(buf); - } - return(r); - } - -static int RSA_eay_private_decrypt(flen, from, to, rsa,padding) -int flen; -unsigned char *from; -unsigned char *to; -RSA *rsa; -int padding; - { - BIGNUM *f=NULL,*ret=NULL; - int i,j,num=0,r= -1; - unsigned char *p; - unsigned char *buf=NULL; - BN_CTX *ctx=NULL; - - if ((padding != RSA_PKCS1_PADDING) && (padding != RSA_SSLV23_PADDING)) - { - RSAerr(RSA_F_RSA_EAY_PRIVATE_DECRYPT,RSA_R_UNKNOWN_PADDING_TYPE); - goto err; - } - - ctx=BN_CTX_new(); - if (ctx == NULL) goto err; - - num=BN_num_bytes(rsa->n); - - buf=(unsigned char *)Malloc(num); - if (buf == NULL) - { - RSAerr(RSA_F_RSA_EAY_PRIVATE_DECRYPT,ERR_R_MALLOC_FAILURE); - goto err; - } - - /* This check was for equallity but PGP does evil things - * and chops off the top '0' bytes */ - if (flen > num) - { - RSAerr(RSA_F_RSA_EAY_PRIVATE_DECRYPT,RSA_R_DATA_GREATER_THAN_MOD_LEN); - goto err; - } - - /* make data into a big number */ - ret=BN_new(); - f=BN_new(); - if ((ret == NULL) || (f == NULL)) goto err; - if (BN_bin2bn(from,(int)flen,f) == NULL) goto err; - /* do the decrypt */ - if ( (rsa->p != NULL) && - (rsa->q != NULL) && - (rsa->dmp1 != NULL) && - (rsa->dmq1 != NULL) && - (rsa->iqmp != NULL)) - { if (!rsa->meth->rsa_mod_exp(ret,f,rsa)) goto err; } - else - { if (!rsa->meth->bn_mod_exp(ret,f,rsa->d,rsa->n,ctx)) goto err; } - - p=buf; - BN_bn2bin(ret,p); - - /* BT must be 02 */ - if (*(p++) != 02) - { - RSAerr(RSA_F_RSA_EAY_PRIVATE_DECRYPT,RSA_R_BLOCK_TYPE_IS_NOT_02); - goto err; - } - - /* scan over padding data */ - j=num-2; /* one for type and one for the prepended 0. */ - for (i=0; i<j; i++) - if (*(p++) == 0) break; - - if (i == j) - { - RSAerr(RSA_F_RSA_EAY_PRIVATE_DECRYPT,RSA_R_NULL_BEFORE_BLOCK_MISSING); - goto err; - } - - if (i < 8) - { - RSAerr(RSA_F_RSA_EAY_PRIVATE_DECRYPT,RSA_R_BAD_PAD_BYTE_COUNT); - goto err; - } - -#undef RSA_DEBUG -#ifdef RSA_DEBUG - { - int z; - unsigned char *q; - q= &(p[-9]); - fprintf(stderr,"\n"); - for (z=0; z<8; z++) fprintf(stderr,"%02X",q[z]); - fprintf(stderr,"\n"); - } -#endif - - if (padding == RSA_SSLV23_PADDING) - { - int z; - unsigned char *q; - - /* -9 because we have jumped the '\0' */ - q= &(p[-9]); - for (z=0; z<8; z++) - { - if (*(q++) != 0x03) - break; - } - if (z == 8) - { - RSAerr(RSA_F_RSA_EAY_PRIVATE_DECRYPT,RSA_R_SSLV3_ROLLBACK_ATTACK); - goto err; - } - } - - /* skip over the '\0' */ - i++; - j-=i; - - /* output data */ - memcpy(to,p,(unsigned int)j); - r=j; -err: - if (ctx != NULL) BN_CTX_free(ctx); - if (f != NULL) BN_free(f); - if (ret != NULL) BN_free(ret); - if (buf != NULL) - { - memset(buf,0,num); - Free(buf); - } - return(r); - } - -static int RSA_eay_public_decrypt(flen, from, to, rsa, padding) -int flen; -unsigned char *from; -unsigned char *to; -RSA *rsa; -int padding; - { - BIGNUM *f=NULL,*ret=NULL; - int i,j,num=0,r= -1; - unsigned char *p; - unsigned char *buf=NULL; - BN_CTX *ctx=NULL; - - if (padding != RSA_PKCS1_PADDING) - { - RSAerr(RSA_F_RSA_EAY_PUBLIC_DECRYPT,RSA_R_UNKNOWN_PADDING_TYPE); - goto err; - } - - ctx=BN_CTX_new(); - if (ctx == NULL) goto err; - - num=BN_num_bytes(rsa->n); - buf=(unsigned char *)Malloc(num); - if (buf == NULL) - { - RSAerr(RSA_F_RSA_EAY_PUBLIC_DECRYPT,ERR_R_MALLOC_FAILURE); - goto err; - } - - /* This check was for equallity but PGP does evil things - * and chops off the top '0' bytes */ - if (flen > num) - { - RSAerr(RSA_F_RSA_EAY_PUBLIC_DECRYPT,RSA_R_DATA_GREATER_THAN_MOD_LEN); - goto err; - } - - /* make data into a big number */ - f=BN_new(); - ret=BN_new(); - if ((f == NULL) || (ret == NULL)) goto err; - - if (BN_bin2bn(from,flen,f) == NULL) goto err; - /* do the decrypt */ - if (!rsa->meth->bn_mod_exp(ret,f,rsa->e,rsa->n,ctx)) goto err; - - p=buf; - i=BN_bn2bin(ret,p); - - /* BT must be 01 */ - if (*(p++) != 01) - { - RSAerr(RSA_F_RSA_EAY_PUBLIC_DECRYPT,RSA_R_BLOCK_TYPE_IS_NOT_01); - goto err; - } - - /* scan over padding data */ - j=num-2; /* one for type and one for the prepended 0. */ - for (i=0; i<j; i++) - { - if (*p != 0xff) /* should decrypt to 0xff */ - { - if (*p == 0) - { p++; break; } - else { - RSAerr(RSA_F_RSA_EAY_PUBLIC_DECRYPT,RSA_R_BAD_FIXED_HEADER_DECRYPT); - goto err; - } - } - p++; - } - if (i == j) - { - RSAerr(RSA_F_RSA_EAY_PUBLIC_DECRYPT,RSA_R_NULL_BEFORE_BLOCK_MISSING); - goto err; - } - if (i < 8) - { - RSAerr(RSA_F_RSA_EAY_PUBLIC_DECRYPT,RSA_R_BAD_PAD_BYTE_COUNT); - goto err; - } - - /* skip over the '\0' */ - i++; - j-=i; - - /* output data */ - memcpy(to,p,(unsigned int)j); - r=j; -err: - if (ctx != NULL) BN_CTX_free(ctx); - if (f != NULL) BN_free(f); - if (ret != NULL) BN_free(ret); - if (buf != NULL) - { - memset(buf,0,num); - Free(buf); - } - return(r); - } - -static int RSA_eay_mod_exp(r0, I, rsa) -BIGNUM *r0; -BIGNUM *I; -RSA *rsa; - { - BIGNUM *r1=NULL,*m1=NULL; - int ret=0; - BN_CTX *ctx; - - if ((ctx=BN_CTX_new()) == NULL) goto err; - m1=BN_new(); - r1=BN_new(); - if ((m1 == NULL) || (r1 == NULL)) goto err; - - if (!BN_mod(r1,I,rsa->q,ctx)) goto err; - if (!rsa->meth->bn_mod_exp(m1,r1,rsa->dmq1,rsa->q,ctx)) goto err; - - if (!BN_mod(r1,I,rsa->p,ctx)) goto err; - if (!rsa->meth->bn_mod_exp(r0,r1,rsa->dmp1,rsa->p,ctx)) goto err; - - if (!BN_add(r1,r0,rsa->p)) goto err; - if (!BN_sub(r0,r1,m1)) goto err; - - if (!BN_mul(r1,r0,rsa->iqmp)) goto err; - if (!BN_mod(r0,r1,rsa->p,ctx)) goto err; - if (!BN_mul(r1,r0,rsa->q)) goto err; - if (!BN_add(r0,r1,m1)) goto err; - - ret=1; -err: - if (m1 != NULL) BN_free(m1); - if (r1 != NULL) BN_free(r1); - BN_CTX_free(ctx); - return(ret); - } - - diff --git a/crypto/x509/f b/crypto/x509/f deleted file mode 100644 index 6ec986d..0000000 --- a/crypto/x509/f +++ /dev/null @@ -1,465 +0,0 @@ -*** x509name.c Wed Jul 2 09:35:35 1997 ---- /home/eay/play/x Sat Jul 5 01:39:56 1997 -*************** -*** 1,202 **** -! /* crypto/x509/x509name.c */ -! /* 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.] -! */ -! -! #include <stdio.h> -! #include "stack.h" -! #include "cryptlib.h" -! #include "asn1.h" -! #include "objects.h" -! #include "evp.h" -! #include "x509.h" -! -! int X509_NAME_get_text_by_NID(name,nid,buf,len) -! X509_NAME *name; -! int nid; -! char *buf; -! int len; - { - ASN1_OBJECT *obj; - - obj=OBJ_nid2obj(nid); -! if (obj == NULL) return(-1); -! return(X509_NAME_get_text_by_OBJ(name,obj,buf,len)); - } - -- int X509_NAME_get_text_by_OBJ(name,obj,buf,len) -- X509_NAME *name; -- ASN1_OBJECT *obj; -- char *buf; -- int len; -- { -- int i; -- ASN1_STRING *data; - -! i=X509_NAME_get_index_by_OBJ(name,obj,0); -! if (i < 0) return(-1); -! data=X509_NAME_ENTRY_get_data(X509_NAME_get_entry(name,i)); -! i=(data->length > (len-1))?(len-1):data->length; -! if (buf == NULL) return(data->length); -! memcpy(buf,data->data,i); -! buf[i]='\0'; -! return(i); -! } - -! int X509_NAME_entry_count(name) -! X509_NAME *name; - { -! if (name == NULL) return(0); -! return(sk_num(name->entries)); - } - -! int X509_NAME_get_index_by_NID(name,nid,oldpos) -! X509_NAME *name; -! int nid; -! int oldpos; -! { -! ASN1_OBJECT *obj; - -! obj=OBJ_nid2obj(nid); -! if (obj == NULL) return(-2); -! return(X509_NAME_get_index_by_OBJ(name,obj,oldpos)); - } - -- int X509_NAME_get_index_by_OBJ(name,obj,oldpos) -- X509_NAME *name; -- ASN1_OBJECT *obj; -- int oldpos; -- { -- int n; -- X509_NAME_ENTRY *ne; -- STACK *sk; - -! if (name == NULL) return(-1); -! if (oldpos < 0) -! oldpos= -1; -! sk=name->entries; -! n=sk_num(sk); -! for (oldpos++; oldpos < n; oldpos++) - { -! ne=(X509_NAME_ENTRY *)sk_value(sk,oldpos); -! if (OBJ_cmp(ne->object,obj) == 0) -! return(oldpos); - } -! return(-1); - } - -- X509_NAME_ENTRY *X509_NAME_get_entry(name,loc) -- X509_NAME *name; -- int loc; -- { -- if ( (name == NULL) || (sk_num(name->entries) <= loc) || (loc < 0)) -- return(NULL); -- else -- return((X509_NAME_ENTRY *)sk_value(name->entries,loc)); -- } - -! X509_NAME_ENTRY *X509_NAME_delete_entry(name,loc) -! X509_NAME *name; -! int loc; - { -! X509_NAME_ENTRY *ret; -! int i,j,n,set_prev,set_next; -! STACK *sk; -! -! if ((name == NULL) || (sk_num(name->entries) <= loc) || (loc < 0)) -! return(NULL); -! sk=name->entries; -! ret=(X509_NAME_ENTRY *)sk_delete(sk,loc); -! n=sk_num(sk); -! name->modified=1; -! if (loc == n) return(ret); -! -! /* else we need to fixup the set field */ -! if (loc != 0) -! set_prev=((X509_NAME_ENTRY *)sk_value(sk,loc-1))->set; -! else -! set_prev=ret->set-1; -! set_next=((X509_NAME_ENTRY *)sk_value(sk,loc))->set; - -! /* set_prev is the previous set -! * set is the current set -! * set_next is the following -! * prev 1 1 1 1 1 1 1 1 -! * set 1 1 2 2 -! * next 1 1 2 2 2 2 3 2 -! * so basically only if prev and next differ by 2, then -! * re-number down by 1 */ -! if (set_prev+1 < set_next) -! { -! j=set_next-set_prev-1; -! for (i=loc; i<n; i++) -! ((X509_NAME_ENTRY *)sk_value(sk,loc-1))->set-=j; -! } -! return(ret); - } - - /* if set is -1, append to previous set, 0 'a new one', and 1, - * prepend to the guy we are about to stomp on. */ -! int X509_NAME_add_entry(name,ne,loc,set) -! X509_NAME *name; -! X509_NAME_ENTRY *ne; -! int loc; -! int set; - { -! X509_NAME_ENTRY *new_name=NULL; - int n,i,inc; - STACK *sk; - ---- 1,77 ---- -! X509_NAME_ENTRY *X509_NAME_ENTRY_create_by_NID(X509_NAME_ENTRY **ne, int nid, -! int type,unsigned char *bytes, int len) - { - ASN1_OBJECT *obj; - - obj=OBJ_nid2obj(nid); -! if (obj == NULL) -! { -! X509err(X509_F_X509_NAME_ENTRY_CREATE_BY_NID,X509_R_UNKNOWN_NID); -! return(NULL); -! } -! return(X509_NAME_ENTRY_create_by_OBJ(ne,obj,type,bytes,len)); - } - - -! X509_NAME_ENTRY *X509_NAME_ENTRY_create_by_OBJ(X509_NAME_ENTRY **ne, -! ASN1_OBJECT *obj, int type,unsigned char *bytes, -! int len) -! { -! X509_NAME_ENTRY *ret; - -! if ((ne == NULL) || (*ne == NULL)) - { -! if ((ret=X509_NAME_ENTRY_new()) == NULL) -! return(NULL); - } -+ else -+ ret= *ne; - -! if (!X509_NAME_ENTRY_set_object(ret,obj)) -! goto err; -! if (!X509_NAME_ENTRY_set_data(ret,type,bytes,len)) -! goto err; - -! if ((ne != NULL) && (*ne == NULL)) *ne=ret; -! return(ret); -! err: -! if ((ne == NULL) || (ret != *ne)) -! X509_NAME_ENTRY_free(ret); -! return(NULL); - } - - -! int X509_NAME_ENTRY_set_object(X509_NAME_ENTRY *ne, ASN1_OBJECT *obj) -! { -! if ((ne == NULL) || (obj == NULL)) - { -! X509err(X509_F_X509_NAME_ENTRY_SET_OBJECT,ERR_R_PASSED_NULL_PARAMETER); -! return(0); - } -! ASN1_OBJECT_free(ne->object); -! ne->object=OBJ_dup(obj); -! return((ne->object == NULL)?0:1); - } - - -! int X509_NAME_ENTRY_set_data(X509_NAME_ENTRY *ne,int type,unsigned char *bytes,int len) - { -! int i; - -! if ((ne == NULL) || ((bytes == NULL) && (len != 0))) return(0); -! if (len < 0) len=strlen((char *)bytes); -! i=ASN1_STRING_set(ne->value,bytes,len); -! if (!i) return(0); -! ne->value->type=ASN1_PRINTABLE_type(bytes,len); -! return(1); - } - - /* if set is -1, append to previous set, 0 'a new one', and 1, - * prepend to the guy we are about to stomp on. */ -! int X509_NAME_add_entry(X509_NAME *name,X509_NAME_ENTRY *ne,int loc,int set) - { -! /* ERIC: renamed new to nenew for C++ users --tjh */ -! X509_NAME_ENTRY *nenew; - int n,i,inc; - STACK *sk; - -*************** -*** 206,213 **** - if (loc > n) loc=n; - else if (loc < 0) loc=n; - -- name->modified=1; -- - if (set == -1) - { - if (loc == 0) ---- 81,86 ---- -*************** -*** 223,245 **** - } - else /* if (set >= 0) */ - { -- inc=(set == 0)?1:0; - if (loc >= n) - { - if (loc != 0) - set=((X509_NAME_ENTRY *) -! sk_value(sk,n-1))->set+1; - else - set=0; - } - else - set=((X509_NAME_ENTRY *)sk_value(sk,loc))->set; - } - -! if ((new_name=X509_NAME_ENTRY_dup(ne)) == NULL) - goto err; -! new_name->set=set; -! if (!sk_insert(sk,(char *)new_name,loc)) - { - X509err(X509_F_X509_NAME_ADD_ENTRY,ERR_R_MALLOC_FAILURE); - goto err; ---- 96,122 ---- - } - else /* if (set >= 0) */ - { - if (loc >= n) - { - if (loc != 0) - set=((X509_NAME_ENTRY *) -! sk_value(sk,loc-1))->set+1; - else - set=0; - } - else - set=((X509_NAME_ENTRY *)sk_value(sk,loc))->set; -+ inc=(set == 0)?1:0; - } - -! if ((nenew=X509_NAME_ENTRY_dup(ne)) == NULL) - goto err; -! /* eric forgot to put this in when he cut the nice -! * interface so that I don't have to do the icky things -! * that req.c does --tjh :-) -! */ -! nenew->set=set; -! if (!sk_insert(sk,(char *)nenew,loc)) - { - X509err(X509_F_X509_NAME_ADD_ENTRY,ERR_R_MALLOC_FAILURE); - goto err; -*************** -*** 252,357 **** - } - return(1); - err: -! if (new_name != NULL) - X509_NAME_ENTRY_free(ne); - return(0); -- } -- -- X509_NAME_ENTRY *X509_NAME_ENTRY_create_by_NID(ne,nid,type,bytes,len) -- X509_NAME_ENTRY **ne; -- int nid; -- int type; -- unsigned char *bytes; -- int len; -- { -- ASN1_OBJECT *obj; -- -- obj=OBJ_nid2obj(nid); -- if (obj == NULL) -- { -- X509err(X509_F_X509_NAME_ENTRY_CREATE_BY_NID,X509_R_UNKNOWN_NID); -- return(NULL); -- } -- return(X509_NAME_ENTRY_create_by_OBJ(ne,obj,type,bytes,len)); -- } -- -- X509_NAME_ENTRY *X509_NAME_ENTRY_create_by_OBJ(ne,obj,type,bytes,len) -- X509_NAME_ENTRY **ne; -- ASN1_OBJECT *obj; -- int type; -- unsigned char *bytes; -- int len; -- { -- X509_NAME_ENTRY *ret; -- -- if ((ne == NULL) || (*ne == NULL)) -- { -- if ((ret=X509_NAME_ENTRY_new()) == NULL) -- return(NULL); -- } -- else -- ret= *ne; -- -- if (!X509_NAME_ENTRY_set_object(ret,obj)) -- goto err; -- if (!X509_NAME_ENTRY_set_data(ret,type,bytes,len)) -- goto err; -- -- if ((ne != NULL) && (*ne == NULL)) *ne=ret; -- return(ret); -- err: -- if ((ne == NULL) || (ret != *ne)) -- X509_NAME_ENTRY_free(ret); -- return(NULL); -- } -- -- int X509_NAME_ENTRY_set_object(ne,obj) -- X509_NAME_ENTRY *ne; -- ASN1_OBJECT *obj; -- { -- if ((ne == NULL) || (obj == NULL)) -- { -- X509err(X509_F_X509_NAME_ENTRY_SET_OBJECT,ERR_R_PASSED_NULL_PARAMETER); -- return(0); -- } -- ASN1_OBJECT_free(ne->object); -- ne->object=OBJ_dup(obj); -- return((ne->object == NULL)?0:1); -- } -- -- int X509_NAME_ENTRY_set_data(ne,type,bytes,len) -- X509_NAME_ENTRY *ne; -- int type; -- unsigned char *bytes; -- int len; -- { -- int i; -- -- if ((ne == NULL) || ((bytes == NULL) && (len != 0))) return(0); -- if (len < 0) len=strlen((char *)bytes); -- i=ASN1_STRING_set(ne->value,bytes,len); -- if (!i) return(0); -- if (type != V_ASN1_UNDEF) -- { -- if (type == V_ASN1_APP_CHOOSE) -- ne->value->type=ASN1_PRINTABLE_type(bytes,len); -- else -- ne->value->type=type; -- } -- return(1); -- } -- -- ASN1_OBJECT *X509_NAME_ENTRY_get_object(ne) -- X509_NAME_ENTRY *ne; -- { -- if (ne == NULL) return(NULL); -- return(ne->object); -- } -- -- ASN1_STRING *X509_NAME_ENTRY_get_data(ne) -- X509_NAME_ENTRY *ne; -- { -- if (ne == NULL) return(NULL); -- return(ne->value); - } - ---- 129,136 ---- - } - return(1); - err: -! if (nenew != NULL) - X509_NAME_ENTRY_free(ne); - return(0); - } - diff --git a/doc/danger b/doc/danger deleted file mode 100644 index d71b1b7..0000000 --- a/doc/danger +++ /dev/null @@ -1,8 +0,0 @@ -If you specify a SSLv2 cipher, and the mode is SSLv23 and the server -can talk SSLv3, it will claim there is no cipher since you should be -using SSLv3. - -When tracing debug stuff, remember BIO_s_socket() is different to -BIO_s_connect(). - -BSD/OS assember is not working Binary files differdiff --git a/shlib/libcrypto.so.0 b/shlib/libcrypto.so.0 deleted file mode 100644 index e69de29..0000000 --- a/shlib/libcrypto.so.0 +++ /dev/null diff --git a/shlib/libssl.so.0 b/shlib/libssl.so.0 deleted file mode 100644 index e69de29..0000000 --- a/shlib/libssl.so.0 +++ /dev/null diff --git a/ssl/bio_ssl.orig.c b/ssl/bio_ssl.orig.c deleted file mode 100644 index 25147d1..0000000 --- a/ssl/bio_ssl.orig.c +++ /dev/null @@ -1,440 +0,0 @@ -/* ssl/bio_ssl.c */ -/* 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.] - */ - -#include <stdio.h> -#include <string.h> -#include <errno.h> -#include "bio.h" -#include "err.h" -#include "ssl.h" - -#ifndef NOPROTO -static int ssl_write(BIO *h,char *buf,int num); -static int ssl_read(BIO *h,char *buf,int size); -static int ssl_puts(BIO *h,char *str); -static long ssl_ctrl(BIO *h,int cmd,long arg1,char *arg2); -static int ssl_new(BIO *h); -static int ssl_free(BIO *data); -#else -static int ssl_write(); -static int ssl_read(); -static int ssl_puts(); -static long ssl_ctrl(); -static int ssl_new(); -static int ssl_free(); -#endif - -static BIO_METHOD methods_sslp= - { - BIO_TYPE_SSL,"ssl", - ssl_write, - ssl_read, - ssl_puts, - NULL, /* ssl_gets, */ - ssl_ctrl, - ssl_new, - ssl_free, - }; - -BIO_METHOD *BIO_f_ssl() - { - return(&methods_sslp); - } - -static int ssl_new(bi) -BIO *bi; - { - bi->init=0; - bi->ptr=NULL; /* The SSL structure */ - bi->flags=0; - return(1); - } - -static int ssl_free(a) -BIO *a; - { - if (a == NULL) return(0); - if (a->ptr != NULL) SSL_shutdown((SSL *)a->ptr); - if (a->shutdown) - { - if (a->init) SSL_free((SSL *)a->ptr); - a->init=0; - a->flags=0; - a->ptr=NULL; - } - return(1); - } - -static int ssl_read(b,out,outl) -BIO *b; -char *out; -int outl; - { - int ret=1,dr,dw; - int inflags,outflags; - SSL *ssl; - int retry_reason=0; - - if (out == NULL) return(0); - ssl=(SSL *)b->ptr; - - inflags=outflags=b->flags; - - dr=inflags&BIO_FLAGS_PROTOCOL_DELAYED_READ; - dw=inflags&BIO_FLAGS_PROTOCOL_DELAYED_WRITE; - - outflags&= ~(BIO_FLAGS_RWS|BIO_FLAGS_SHOULD_RETRY| - BIO_FLAGS_PROTOCOL_DELAYED_WRITE| - BIO_FLAGS_PROTOCOL_DELAYED_READ); - - if (!SSL_is_init_finished(ssl)) - { - ret=SSL_do_handshake(ssl); -#if 0 - if (ret > 0) - { - outflags=(BIO_FLAGS_READ|BIO_FLAGS_SHOULD_RETRY| - BIO_FLAGS_PROTOCOL_DELAYED_READ|dw); - ret= -1; - goto end; - } -#endif - } - if (ret > 0) - ret=SSL_read(ssl,out,outl); - - switch (SSL_get_error(ssl,ret)) - { - case SSL_ERROR_NONE: - if (ret <= 0) break; - if (dw) - outflags|=(BIO_FLAGS_WRITE|BIO_FLAGS_SHOULD_RETRY); - break; - case SSL_ERROR_WANT_READ: - outflags=(BIO_FLAGS_READ|BIO_FLAGS_SHOULD_RETRY| - BIO_FLAGS_PROTOCOL_DELAYED_READ|dw); - break; - case SSL_ERROR_WANT_WRITE: - outflags=(BIO_FLAGS_WRITE|BIO_FLAGS_SHOULD_RETRY| - BIO_FLAGS_PROTOCOL_DELAYED_READ|dw); - break; - case SSL_ERROR_WANT_X509_LOOKUP: - outflags=(BIO_FLAGS_IO_SPECIAL|BIO_FLAGS_SHOULD_RETRY| - BIO_FLAGS_PROTOCOL_DELAYED_READ|dw); - retry_reason=BIO_RR_SSL_X509_LOOKUP; - break; - case SSL_ERROR_WANT_CONNECT: - outflags=(BIO_FLAGS_IO_SPECIAL|BIO_FLAGS_SHOULD_RETRY| - BIO_FLAGS_PROTOCOL_DELAYED_READ|dw); - retry_reason=BIO_RR_CONNECT; - break; - case SSL_ERROR_SYSCALL: - case SSL_ERROR_SSL: - case SSL_ERROR_ZERO_RETURN: - default: - break; - } - - b->retry_reason=retry_reason; - b->flags=outflags; - return(ret); - } - -static int ssl_write(b,out,outl) -BIO *b; -char *out; -int outl; - { - int ret,dr,dw; - int inflags,outflags,retry_reason=0; - SSL *ssl; - - if (out == NULL) return(0); - ssl=(SSL *)b->ptr; - - inflags=outflags=b->flags; - - dr=inflags&BIO_FLAGS_PROTOCOL_DELAYED_READ; - dw=inflags&BIO_FLAGS_PROTOCOL_DELAYED_WRITE; - - outflags&= ~(BIO_FLAGS_RWS|BIO_FLAGS_SHOULD_RETRY| - BIO_FLAGS_PROTOCOL_DELAYED_WRITE| - BIO_FLAGS_PROTOCOL_DELAYED_READ); - - ret=SSL_do_handshake(ssl); - if (ret > 0) - ret=SSL_write(ssl,out,outl); - - switch (SSL_get_error(ssl,ret)) - { - case SSL_ERROR_NONE: - if (ret <= 0) break; - if (dr) - outflags|=(BIO_FLAGS_READ|BIO_FLAGS_SHOULD_RETRY); - break; - case SSL_ERROR_WANT_WRITE: - outflags=(BIO_FLAGS_WRITE|BIO_FLAGS_SHOULD_RETRY| - BIO_FLAGS_PROTOCOL_DELAYED_WRITE|dr); - break; - case SSL_ERROR_WANT_READ: - outflags=(BIO_FLAGS_READ|BIO_FLAGS_SHOULD_RETRY| - BIO_FLAGS_PROTOCOL_DELAYED_WRITE|dr); - break; - case SSL_ERROR_WANT_X509_LOOKUP: - outflags=(BIO_FLAGS_IO_SPECIAL|BIO_FLAGS_SHOULD_RETRY| - BIO_FLAGS_PROTOCOL_DELAYED_WRITE|dr); - retry_reason=BIO_RR_SSL_X509_LOOKUP; - break; - case SSL_ERROR_WANT_CONNECT: - outflags=(BIO_FLAGS_IO_SPECIAL|BIO_FLAGS_SHOULD_RETRY| - BIO_FLAGS_PROTOCOL_DELAYED_READ|dw); - retry_reason=BIO_RR_CONNECT; - case SSL_ERROR_SYSCALL: - case SSL_ERROR_SSL: - default: - break; - } - - b->retry_reason=retry_reason; - b->flags=outflags; - return(ret); - } - -static long ssl_ctrl(b,cmd,num,ptr) -BIO *b; -int cmd; -long num; -char *ptr; - { - SSL **sslp,*ssl; - BIO *dbio,*bio; - long ret=1; - - ssl=(SSL *)b->ptr; - switch (cmd) - { - case BIO_CTRL_RESET: - SSL_shutdown(ssl); - - if (ssl->handshake_func == ssl->method->ssl_connect) - SSL_set_connect_state(ssl); - else if (ssl->handshake_func == ssl->method->ssl_accept) - SSL_set_accept_state(ssl); - - SSL_clear(ssl); - - if (b->next_bio != NULL) - ret=BIO_ctrl(b->next_bio,cmd,num,ptr); - else if (ssl->rbio != NULL) - ret=BIO_ctrl(ssl->rbio,cmd,num,ptr); - else - ret=1; - break; - case BIO_CTRL_EOF: - case BIO_CTRL_INFO: - ret=0; - break; - case BIO_C_SSL_MODE: - if (num) /* client mode */ - SSL_set_connect_state(ssl); - else - SSL_set_accept_state(ssl); - break; - case BIO_C_SET_SSL: - ssl_free(b); - b->shutdown=(int)num; - b->ptr=ptr; - ssl=(SSL *)ptr; - bio=SSL_get_rbio(ssl); - if (bio != NULL) - { - if (b->next_bio != NULL) - BIO_push(bio,b->next_bio); - b->next_bio=bio; - } - b->init=1; - break; - case BIO_C_GET_SSL: - if (ptr != NULL) - { - sslp=(SSL **)ptr; - *sslp=ssl; - } - break; - case BIO_CTRL_GET_CLOSE: - ret=b->shutdown; - break; - case BIO_CTRL_SET_CLOSE: - b->shutdown=(int)num; - break; - case BIO_CTRL_WPENDING: - ret=BIO_ctrl(ssl->wbio,cmd,num,ptr); - break; - case BIO_CTRL_PENDING: - ret=SSL_pending(ssl); - if (ret == 0) - ret=BIO_pending(ssl->rbio); - break; - case BIO_CTRL_FLUSH: - BIO_clear_retry_flags(b); - ret=BIO_ctrl(ssl->wbio,cmd,num,ptr); - BIO_copy_next_retry(b); - break; - case BIO_CTRL_PUSH: - if (b->next_bio != NULL) - { - SSL_set_bio(ssl,b->next_bio,b->next_bio); - b->next_bio->references++; - } - break; - case BIO_CTRL_POP: - /* ugly bit of a hack */ - if (ssl->rbio != ssl->wbio) /* we are in trouble :-( */ - { - BIO_free_all(ssl->wbio); - } - ssl->wbio=NULL; - ssl->rbio=NULL; - break; - case BIO_C_DO_STATE_MACHINE: - BIO_clear_retry_flags(b); - - b->retry_reason=0; - ret=(int)SSL_do_handshake(ssl); - - switch (SSL_get_error(ssl,ret)) - { - case SSL_ERROR_WANT_READ: - BIO_set_flags(b, - BIO_FLAGS_READ|BIO_FLAGS_SHOULD_RETRY); - break; - case SSL_ERROR_WANT_WRITE: - BIO_set_flags(b, - BIO_FLAGS_WRITE|BIO_FLAGS_SHOULD_RETRY); - break; - case SSL_ERROR_WANT_CONNECT: - BIO_set_flags(b, - BIO_FLAGS_IO_SPECIAL|BIO_FLAGS_SHOULD_RETRY); - b->retry_reason=b->next_bio->retry_reason; - break; - default: - break; - } - break; - case BIO_CTRL_DUP: - dbio=(BIO *)ptr; - if (dbio->ptr != NULL) - SSL_free((SSL *)dbio->ptr); - dbio->ptr=(char *)SSL_dup(ssl); - ret=(dbio->ptr != NULL); - break; - default: - return(0); - break; - } - return(ret); - } - -static int ssl_puts(bp,str) -BIO *bp; -char *str; - { - int n,ret; - - n=strlen(str); - ret=BIO_write(bp,str,n); - return(ret); - } - -BIO *BIO_new_ssl(ctx,client) -SSL_CTX *ctx; -int client; - { - BIO *ret; - SSL *ssl; - - if ((ret=BIO_new(BIO_f_ssl())) == NULL) - return(NULL); - if ((ssl=SSL_new(ctx)) == NULL) - { - BIO_free(ret); - return(NULL); - } - if (client) - SSL_set_connect_state(ssl); - else - SSL_set_accept_state(ssl); - - BIO_set_ssl(ret,ssl,BIO_CLOSE); - return(ret); - } - -int BIO_ssl_copy_session_id(t,f) -BIO *t,*f; - { - t=BIO_find_type(t,BIO_TYPE_SSL); - f=BIO_find_type(f,BIO_TYPE_SSL); - if ((t == NULL) || (f == NULL)) - return(0); - if ((t->ptr == NULL) || (f->ptr == NULL)) - return(0); - SSL_copy_session_id((SSL *)t->ptr,(SSL *)f->ptr); - return(1); - } - - diff --git a/ssl/build b/ssl/build deleted file mode 100644 index d330835..0000000 --- a/ssl/build +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/sh -for i in BUILD_SSLV23 BUILD_SSLV2 BUILD_SSLV3 BUILD_SSL_COMMON BUILD_SSL_BIO BUILD_SSL_OPTIONAL -do -time gcc -D$i -o $i.o -c -I. -I../include -O3 -fomit-frame-pointer ssl.c -done - diff --git a/ssl/changes.ssl b/ssl/changes.ssl deleted file mode 100644 index ab94b95..0000000 --- a/ssl/changes.ssl +++ /dev/null @@ -1,10 +0,0 @@ - -Must do a -SSL_init_eay_ciphers(); -before calls to SSL_CTX_new() - -SSL_CTX *SSL_CTX_new(void ) -> SSL_CTX *SSL_CTX_new(SSL_METHOD *meth); - -SSL_CTX_set_cert_verify_cb -> the callback is now -int callback(char *arg,SSL *s,X509 *xs,STACK *cert_chain); -where the 'cert_chain' has been added. @@ -1,40 +0,0 @@ -/* return the actual cipher being used */ -char *SSL_CIPHER_get_name(c) -SSL_CIPHER *c; - { - if (c != NULL) - return(c->name); - return("UNKNOWN"); - } - -/* number of bits for symetric cipher */ -int SSL_CIPHER_get_bits(c,alg_bits) -SSL_CIPHER *c; -int *alg_bits; - { - int ret=0,a=0; - EVP_CIPHER *enc; - - if (c != NULL) - { - if (!ssl_cipher_get_evp(c,&enc,NULL)) - return(0); - - a=EVP_CIPHER_key_length(enc)*8; - - if (s->session->cipher->algorithms & SSL_EXP) - { - if (c->algorithm2 & SSL2_CF_8_BYTE_ENC) - ret=64; - else - ret=40; - } - else - ret=a; - } - - if (alg_bits != NULL) *alg_bits=a; - - return(ret); - } - @@ -1,402 +0,0 @@ -/* ssl/s23_srvr.c */ -/* 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.] - */ - -#include <stdio.h> -#include "buffer.h" -#include "rand.h" -#include "objects.h" -#include "evp.h" -#include "ssl_locl.h" - -#define BREAK break - -#ifndef NOPROTO -int ssl23_get_client_hello(SSL *s); -#else -int ssl23_get_client_hello(); -#endif - -static SSL_METHOD *ssl23_get_server_method(ver) -int ver; - { - if (ver == 2) - return(SSLv2_server_method()); - else if (ver == 3) - return(SSLv3_server_method()); - else - return(NULL); - } - -SSL_METHOD *SSLv23_server_method() - { - static int init=1; - static SSL_METHOD SSLv23_server_data; - - if (init) - { - init=0; - memcpy((char *)&SSLv23_server_data, - (char *)sslv23_base_method(),sizeof(SSL_METHOD)); - SSLv23_server_data.ssl_accept=ssl23_accept; - SSLv23_server_data.get_ssl_method=ssl23_get_server_method; - } - return(&SSLv23_server_data); - } - -int ssl23_accept(s) -SSL *s; - { - BUF_MEM *buf; - unsigned long Time=time(NULL); - void (*cb)()=NULL; - int ret= -1; - int new_state,state; - - RAND_seed((unsigned char *)&Time,sizeof(Time)); - ERR_clear_error(); - errno=0; - - if (s->info_callback != NULL) - cb=s->info_callback; - else if (s->ctx->info_callback != NULL) - cb=s->ctx->info_callback; - - if (!SSL_in_init(s) || SSL_in_before(s)) SSL_clear(s); - s->in_handshake++; - - for (;;) - { - state=s->state; - - switch(s->state) - { - case SSL_ST_BEFORE: - case SSL_ST_ACCEPT: - case SSL_ST_BEFORE|SSL_ST_ACCEPT: - case SSL_ST_OK|SSL_ST_ACCEPT: - - if (cb != NULL) cb(s,SSL_CB_HANDSHAKE_START,1); - - s->version=3; - s->type=SSL_ST_ACCEPT; - - if (s->init_buf == NULL) - { - if ((buf=BUF_MEM_new()) == NULL) - { - ret= -1; - goto end; - } - if (!BUF_MEM_grow(buf,SSL3_RT_MAX_PLAIN_LENGTH)) - { - ret= -1; - goto end; - } - s->init_buf=buf; - } - - ssl3_init_finished_mac(s); - - s->state=SSL23_ST_SR_CLNT_HELLO_A; - s->ctx->sess_accept++; - s->init_num=0; - break; - - case SSL23_ST_SR_CLNT_HELLO_A: - case SSL23_ST_SR_CLNT_HELLO_B: - - s->shutdown=0; - ret=ssl23_get_client_hello(s); - if (ret >= 0) cb=NULL; - goto end; - break; - - default: - SSLerr(SSL_F_SSL23_ACCEPT,SSL_R_UNKNOWN_STATE); - ret= -1; - goto end; - /* break; */ - } - - if ((cb != NULL) && (s->state != state)) - { - new_state=s->state; - s->state=state; - cb(s,SSL_CB_ACCEPT_LOOP,1); - s->state=new_state; - } - } -end: - if (cb != NULL) - cb(s,SSL_CB_ACCEPT_EXIT,ret); - s->in_handshake--; - return(ret); - } - - -int ssl23_get_client_hello(s) -SSL *s; - { - char buf[8]; - unsigned char *p,*d,*dd; - unsigned int i; - unsigned int csl,sil,cl; - int n=0,j; - BIO *bbio; - int type=0; - - /* read the initial header */ - if (s->state == SSL23_ST_SR_CLNT_HELLO_A) - { - if (!ssl3_setup_buffers(s)) goto err; - - n=ssl23_read_bytes(s,7); - if (n != 7) return(n); - - p=s->packet; - - memcpy(buf,p,n); - - if ((p[0] & 0x80) && (p[2] == SSL2_MT_CLIENT_HELLO)) - { - /* SSLv2 header */ - if ((p[3] == 0x00) && (p[4] == 0x02)) - { - /* SSLv2 */ - type=1; - } - else if ((p[3] == SSL3_VERSION_MAJOR) && - (p[4] == SSL3_VERSION_MINOR)) - { - /* SSLv3 */ - s->state=SSL23_ST_SR_CLNT_HELLO_B; - } - } - else if ((p[0] == SSL3_RT_HANDSHAKE) && - (p[1] == SSL3_VERSION_MAJOR) && - (p[2] == SSL3_VERSION_MINOR) && - (p[5] == SSL3_MT_CLIENT_HELLO)) - { - /* true SSLv3 */ - type=3; - } - } - - if (s->state == SSL23_ST_SR_CLNT_HELLO_B) - { - /* we have a SSLv3 in a SSLv2 header */ - type=2; - p=s->packet; - n=((p[0]&0x7f)<<8)|p[1]; - if (n > (1024*4)) - { - SSLerr(SSL_F_SSL23_GET_CLIENT_HELLO,SSL_R_RECORD_TOO_LARGE); - goto err; - } - - j=ssl23_read_bytes(s,n+2); - if (j <= 0) return(j); - - ssl3_finish_mac(s,&(s->packet[2]),s->packet_length-2); - - p=s->packet; - p+=5; - n2s(p,csl); - n2s(p,sil); - n2s(p,cl); - d=(unsigned char *)s->init_buf->data; - if ((csl+sil+cl+11) != s->packet_length) - { - SSLerr(SSL_F_SSL23_GET_CLIENT_HELLO,SSL_R_RECORD_LENGTH_MISMATCH); - goto err; - } - - *(d++)=SSL3_VERSION_MAJOR; - *(d++)=SSL3_VERSION_MINOR; - - /* lets populate the random area */ - /* get the chalenge_length */ - i=(cl > SSL3_RANDOM_SIZE)?SSL3_RANDOM_SIZE:cl; - memset(d,0,SSL3_RANDOM_SIZE); - memcpy(&(d[SSL3_RANDOM_SIZE-i]),&(p[csl+sil]),i); - d+=SSL3_RANDOM_SIZE; - - /* no session-id reuse */ - *(d++)=0; - - /* ciphers */ - j=0; - dd=d; - d+=2; - for (i=0; i<csl; i+=3) - { - if (p[i] != 0) continue; - *(d++)=p[i+1]; - *(d++)=p[i+2]; - j+=2; - } - s2n(j,dd); - - /* compression */ - *(d++)=1; - *(d++)=0; - - i=(d-(unsigned char *)s->init_buf->data); - - /* get the data reused from the init_buf */ - s->s3->tmp.reuse_message=1; - s->s3->tmp.message_type=SSL3_MT_CLIENT_HELLO; - s->s3->tmp.message_size=i; - } - - if (type == 1) - { - /* we are talking sslv2 */ - /* we need to clean up the SSLv3 setup and put in the - * sslv2 stuff. */ - - if (s->s2 == NULL) - { - if (!ssl2_new(s)) - goto err; - } - else - ssl2_clear(s); - - if (s->s3 != NULL) ssl3_free(s); - - if (!BUF_MEM_grow(s->init_buf, - SSL2_MAX_RECORD_LENGTH_3_BYTE_HEADER)) - { - goto err; - } - - s->state=SSL2_ST_GET_CLIENT_HELLO_A; - if (s->ctx->options & SSL_OP_MSIE_SSLV2_RSA_PADDING) - s->s2->ssl2_rollback=0; - else - s->s2->ssl2_rollback=1; - - /* setup the 5 bytes we have read so we get them from - * the sslv2 buffer */ - s->rstate=SSL_ST_READ_HEADER; - s->packet_length=n; - s->packet= &(s->s2->rbuf[0]); - memcpy(s->packet,buf,n); - s->s2->rbuf_left=n; - s->s2->rbuf_offs=0; - - s->method=SSLv2_server_method(); - s->handshake_func=s->method->ssl_accept; - } - - if ((type == 2) || (type == 3)) - { - /* we have sslv3 */ - - if (s->bbio == NULL) - { - bbio=BIO_new(BIO_f_buffer()); - if (bbio == NULL) - goto err; - s->bbio=bbio; - } - else - bbio=s->bbio; - BIO_reset(bbio); - if (!BIO_set_write_buffer_size(bbio,16*1024)) - goto err; - s->wbio=BIO_push(bbio,s->wbio); - - /* we are in this state */ - s->state=SSL3_ST_SR_CLNT_HELLO_A; - - if (type == 3) - { - /* put the 'n' bytes we have read into the input buffer - * for SSLv3 */ - s->rstate=SSL_ST_READ_HEADER; - s->packet_length=n; - s->packet= &(s->s3->rbuf.buf[0]); - memcpy(s->packet,buf,n); - s->s3->rbuf.left=n; - s->s3->rbuf.offset=0; - } - else - { - s->packet_length=0; - s->s3->rbuf.left=0; - s->s3->rbuf.offset=0; - } - - s->method=SSLv3_server_method(); - s->handshake_func=s->method->ssl_accept; - } - - if ((type < 1) || (type > 3)) - { - /* bad, very bad */ - SSLerr(SSL_F_SSL23_GET_CLIENT_HELLO,SSL_R_UNKNOWN_PROTOCOL); - goto err; - } - s->init_num=0; - return(SSL_accept(s)); -err: - return(-1); - } - diff --git a/test/.rnd b/test/.rnd Binary files differnew file mode 100644 index 0000000..cc5a9cd --- /dev/null +++ b/test/.rnd diff --git a/util/pl/f.mak b/util/pl/f.mak deleted file mode 100644 index e69de29..0000000 --- a/util/pl/f.mak +++ /dev/null |