diff options
Diffstat (limited to 'src/lib/libcrypto')
72 files changed, 1587 insertions, 286 deletions
diff --git a/src/lib/libcrypto/Attic/Makefile b/src/lib/libcrypto/Attic/Makefile index cffaeedc5d..cda9de0ac9 100644 --- a/src/lib/libcrypto/Attic/Makefile +++ b/src/lib/libcrypto/Attic/Makefile | |||
@@ -1,5 +1,5 @@ | |||
1 | # | 1 | # |
2 | # SSLeay/crypto/Makefile | 2 | # OpenSSL/crypto/Makefile |
3 | # | 3 | # |
4 | 4 | ||
5 | DIR= crypto | 5 | DIR= crypto |
diff --git a/src/lib/libcrypto/asn1/Makefile b/src/lib/libcrypto/asn1/Makefile index b11298d621..d1c2d8f490 100644 --- a/src/lib/libcrypto/asn1/Makefile +++ b/src/lib/libcrypto/asn1/Makefile | |||
@@ -1,5 +1,5 @@ | |||
1 | # | 1 | # |
2 | # SSLeay/crypto/asn1/Makefile | 2 | # OpenSSL/crypto/asn1/Makefile |
3 | # | 3 | # |
4 | 4 | ||
5 | DIR= asn1 | 5 | DIR= asn1 |
diff --git a/src/lib/libcrypto/bf/Makefile b/src/lib/libcrypto/bf/Makefile index 0e2121efdc..42e2c050f8 100644 --- a/src/lib/libcrypto/bf/Makefile +++ b/src/lib/libcrypto/bf/Makefile | |||
@@ -1,5 +1,5 @@ | |||
1 | # | 1 | # |
2 | # SSLeay/crypto/blowfish/Makefile | 2 | # OpenSSL/crypto/blowfish/Makefile |
3 | # | 3 | # |
4 | 4 | ||
5 | DIR= bf | 5 | DIR= bf |
@@ -110,7 +110,7 @@ bf_enc.o: ../../include/openssl/opensslconf.h bf_enc.c bf_locl.h | |||
110 | bf_ofb64.o: ../../include/openssl/blowfish.h ../../include/openssl/e_os2.h | 110 | bf_ofb64.o: ../../include/openssl/blowfish.h ../../include/openssl/e_os2.h |
111 | bf_ofb64.o: ../../include/openssl/opensslconf.h bf_locl.h bf_ofb64.c | 111 | bf_ofb64.o: ../../include/openssl/opensslconf.h bf_locl.h bf_ofb64.c |
112 | bf_skey.o: ../../include/openssl/blowfish.h ../../include/openssl/crypto.h | 112 | bf_skey.o: ../../include/openssl/blowfish.h ../../include/openssl/crypto.h |
113 | bf_skey.o: ../../include/openssl/e_os2.h ../../include/openssl/opensslconf.h | 113 | bf_skey.o: ../../include/openssl/e_os2.h ../../include/openssl/fips.h |
114 | bf_skey.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h | 114 | bf_skey.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h |
115 | bf_skey.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h | 115 | bf_skey.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h |
116 | bf_skey.o: bf_locl.h bf_pi.h bf_skey.c | 116 | bf_skey.o: ../../include/openssl/symhacks.h bf_locl.h bf_pi.h bf_skey.c |
diff --git a/src/lib/libcrypto/bio/Makefile b/src/lib/libcrypto/bio/Makefile index 19d9350760..a565154499 100644 --- a/src/lib/libcrypto/bio/Makefile +++ b/src/lib/libcrypto/bio/Makefile | |||
@@ -1,5 +1,5 @@ | |||
1 | # | 1 | # |
2 | # SSLeay/crypto/bio/Makefile | 2 | # OpenSSL/crypto/bio/Makefile |
3 | # | 3 | # |
4 | 4 | ||
5 | DIR= bio | 5 | DIR= bio |
diff --git a/src/lib/libcrypto/bn/Makefile b/src/lib/libcrypto/bn/Makefile index f693d35d87..9969d242cc 100644 --- a/src/lib/libcrypto/bn/Makefile +++ b/src/lib/libcrypto/bn/Makefile | |||
@@ -1,5 +1,5 @@ | |||
1 | # | 1 | # |
2 | # SSLeay/crypto/bn/Makefile | 2 | # OpenSSL/crypto/bn/Makefile |
3 | # | 3 | # |
4 | 4 | ||
5 | DIR= bn | 5 | DIR= bn |
@@ -31,12 +31,12 @@ LIB=$(TOP)/libcrypto.a | |||
31 | LIBSRC= bn_add.c bn_div.c bn_exp.c bn_lib.c bn_ctx.c bn_mul.c bn_mod.c \ | 31 | LIBSRC= bn_add.c bn_div.c bn_exp.c bn_lib.c bn_ctx.c bn_mul.c bn_mod.c \ |
32 | bn_print.c bn_rand.c bn_shift.c bn_word.c bn_blind.c \ | 32 | bn_print.c bn_rand.c bn_shift.c bn_word.c bn_blind.c \ |
33 | bn_kron.c bn_sqrt.c bn_gcd.c bn_prime.c bn_err.c bn_sqr.c bn_asm.c \ | 33 | bn_kron.c bn_sqrt.c bn_gcd.c bn_prime.c bn_err.c bn_sqr.c bn_asm.c \ |
34 | bn_recp.c bn_mont.c bn_mpi.c bn_exp2.c | 34 | bn_recp.c bn_mont.c bn_mpi.c bn_exp2.c bn_x931p.c |
35 | 35 | ||
36 | LIBOBJ= bn_add.o bn_div.o bn_exp.o bn_lib.o bn_ctx.o bn_mul.o bn_mod.o \ | 36 | LIBOBJ= bn_add.o bn_div.o bn_exp.o bn_lib.o bn_ctx.o bn_mul.o bn_mod.o \ |
37 | bn_print.o bn_rand.o bn_shift.o bn_word.o bn_blind.o \ | 37 | bn_print.o bn_rand.o bn_shift.o bn_word.o bn_blind.o \ |
38 | bn_kron.o bn_sqrt.o bn_gcd.o bn_prime.o bn_err.o bn_sqr.o $(BN_ASM) \ | 38 | bn_kron.o bn_sqrt.o bn_gcd.o bn_prime.o bn_err.o bn_sqr.o $(BN_ASM) \ |
39 | bn_recp.o bn_mont.o bn_mpi.o bn_exp2.o | 39 | bn_recp.o bn_mont.o bn_mpi.o bn_exp2.o bn_x931p.o |
40 | 40 | ||
41 | SRC= $(LIBSRC) | 41 | SRC= $(LIBSRC) |
42 | 42 | ||
@@ -329,3 +329,5 @@ bn_word.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h | |||
329 | bn_word.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h | 329 | bn_word.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h |
330 | bn_word.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h | 330 | bn_word.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h |
331 | bn_word.o: ../cryptlib.h bn_lcl.h bn_word.c | 331 | bn_word.o: ../cryptlib.h bn_lcl.h bn_word.c |
332 | bn_x931p.o: ../../include/openssl/bn.h ../../include/openssl/e_os2.h | ||
333 | bn_x931p.o: ../../include/openssl/opensslconf.h bn_x931p.c | ||
diff --git a/src/lib/libcrypto/bn/bntest.c b/src/lib/libcrypto/bn/bntest.c index 28cd3339da..685007d330 100644 --- a/src/lib/libcrypto/bn/bntest.c +++ b/src/lib/libcrypto/bn/bntest.c | |||
@@ -86,6 +86,7 @@ int test_mont(BIO *bp,BN_CTX *ctx); | |||
86 | int test_mod(BIO *bp,BN_CTX *ctx); | 86 | int test_mod(BIO *bp,BN_CTX *ctx); |
87 | int test_mod_mul(BIO *bp,BN_CTX *ctx); | 87 | int test_mod_mul(BIO *bp,BN_CTX *ctx); |
88 | int test_mod_exp(BIO *bp,BN_CTX *ctx); | 88 | int test_mod_exp(BIO *bp,BN_CTX *ctx); |
89 | int test_mod_exp_mont_consttime(BIO *bp,BN_CTX *ctx); | ||
89 | int test_exp(BIO *bp,BN_CTX *ctx); | 90 | int test_exp(BIO *bp,BN_CTX *ctx); |
90 | int test_kron(BIO *bp,BN_CTX *ctx); | 91 | int test_kron(BIO *bp,BN_CTX *ctx); |
91 | int test_sqrt(BIO *bp,BN_CTX *ctx); | 92 | int test_sqrt(BIO *bp,BN_CTX *ctx); |
@@ -213,6 +214,10 @@ int main(int argc, char *argv[]) | |||
213 | if (!test_mod_exp(out,ctx)) goto err; | 214 | if (!test_mod_exp(out,ctx)) goto err; |
214 | BIO_flush(out); | 215 | BIO_flush(out); |
215 | 216 | ||
217 | message(out,"BN_mod_exp_mont_consttime"); | ||
218 | if (!test_mod_exp_mont_consttime(out,ctx)) goto err; | ||
219 | BIO_flush(out); | ||
220 | |||
216 | message(out,"BN_exp"); | 221 | message(out,"BN_exp"); |
217 | if (!test_exp(out,ctx)) goto err; | 222 | if (!test_exp(out,ctx)) goto err; |
218 | BIO_flush(out); | 223 | BIO_flush(out); |
@@ -813,6 +818,57 @@ int test_mod_exp(BIO *bp, BN_CTX *ctx) | |||
813 | return(1); | 818 | return(1); |
814 | } | 819 | } |
815 | 820 | ||
821 | int test_mod_exp_mont_consttime(BIO *bp, BN_CTX *ctx) | ||
822 | { | ||
823 | BIGNUM *a,*b,*c,*d,*e; | ||
824 | int i; | ||
825 | |||
826 | a=BN_new(); | ||
827 | b=BN_new(); | ||
828 | c=BN_new(); | ||
829 | d=BN_new(); | ||
830 | e=BN_new(); | ||
831 | |||
832 | BN_bntest_rand(c,30,0,1); /* must be odd for montgomery */ | ||
833 | for (i=0; i<num2; i++) | ||
834 | { | ||
835 | BN_bntest_rand(a,20+i*5,0,0); /**/ | ||
836 | BN_bntest_rand(b,2+i,0,0); /**/ | ||
837 | |||
838 | if (!BN_mod_exp_mont_consttime(d,a,b,c,ctx,NULL)) | ||
839 | return(00); | ||
840 | |||
841 | if (bp != NULL) | ||
842 | { | ||
843 | if (!results) | ||
844 | { | ||
845 | BN_print(bp,a); | ||
846 | BIO_puts(bp," ^ "); | ||
847 | BN_print(bp,b); | ||
848 | BIO_puts(bp," % "); | ||
849 | BN_print(bp,c); | ||
850 | BIO_puts(bp," - "); | ||
851 | } | ||
852 | BN_print(bp,d); | ||
853 | BIO_puts(bp,"\n"); | ||
854 | } | ||
855 | BN_exp(e,a,b,ctx); | ||
856 | BN_sub(e,e,d); | ||
857 | BN_div(a,b,e,c,ctx); | ||
858 | if(!BN_is_zero(b)) | ||
859 | { | ||
860 | fprintf(stderr,"Modulo exponentiation test failed!\n"); | ||
861 | return 0; | ||
862 | } | ||
863 | } | ||
864 | BN_free(a); | ||
865 | BN_free(b); | ||
866 | BN_free(c); | ||
867 | BN_free(d); | ||
868 | BN_free(e); | ||
869 | return(1); | ||
870 | } | ||
871 | |||
816 | int test_exp(BIO *bp, BN_CTX *ctx) | 872 | int test_exp(BIO *bp, BN_CTX *ctx) |
817 | { | 873 | { |
818 | BIGNUM *a,*b,*d,*e,*one; | 874 | BIGNUM *a,*b,*d,*e,*one; |
diff --git a/src/lib/libcrypto/bn/expspeed.c b/src/lib/libcrypto/bn/expspeed.c index 07a1bcf51c..4d5f221f33 100644 --- a/src/lib/libcrypto/bn/expspeed.c +++ b/src/lib/libcrypto/bn/expspeed.c | |||
@@ -321,7 +321,7 @@ void do_mul_exp(BIGNUM *r, BIGNUM *a, BIGNUM *b, BIGNUM *c, BN_CTX *ctx) | |||
321 | #else /* TEST_SQRT */ | 321 | #else /* TEST_SQRT */ |
322 | "2*sqrt [prime == %d (mod 64)] %4d %4d mod %4d" | 322 | "2*sqrt [prime == %d (mod 64)] %4d %4d mod %4d" |
323 | #endif | 323 | #endif |
324 | " -> %8.3fms %5.1f (%ld)\n", | 324 | " -> %8.6fms %5.1f (%ld)\n", |
325 | #ifdef TEST_SQRT | 325 | #ifdef TEST_SQRT |
326 | P_MOD_64, | 326 | P_MOD_64, |
327 | #endif | 327 | #endif |
diff --git a/src/lib/libcrypto/bn/exptest.c b/src/lib/libcrypto/bn/exptest.c index b09cf88705..28aaac2ac1 100644 --- a/src/lib/libcrypto/bn/exptest.c +++ b/src/lib/libcrypto/bn/exptest.c | |||
@@ -77,7 +77,7 @@ int main(int argc, char *argv[]) | |||
77 | BIO *out=NULL; | 77 | BIO *out=NULL; |
78 | int i,ret; | 78 | int i,ret; |
79 | unsigned char c; | 79 | unsigned char c; |
80 | BIGNUM *r_mont,*r_recp,*r_simple,*a,*b,*m; | 80 | BIGNUM *r_mont,*r_mont_const,*r_recp,*r_simple,*a,*b,*m; |
81 | 81 | ||
82 | RAND_seed(rnd_seed, sizeof rnd_seed); /* or BN_rand may fail, and we don't | 82 | RAND_seed(rnd_seed, sizeof rnd_seed); /* or BN_rand may fail, and we don't |
83 | * even check its return value | 83 | * even check its return value |
@@ -88,6 +88,7 @@ int main(int argc, char *argv[]) | |||
88 | ctx=BN_CTX_new(); | 88 | ctx=BN_CTX_new(); |
89 | if (ctx == NULL) EXIT(1); | 89 | if (ctx == NULL) EXIT(1); |
90 | r_mont=BN_new(); | 90 | r_mont=BN_new(); |
91 | r_mont_const=BN_new(); | ||
91 | r_recp=BN_new(); | 92 | r_recp=BN_new(); |
92 | r_simple=BN_new(); | 93 | r_simple=BN_new(); |
93 | a=BN_new(); | 94 | a=BN_new(); |
@@ -143,8 +144,17 @@ int main(int argc, char *argv[]) | |||
143 | EXIT(1); | 144 | EXIT(1); |
144 | } | 145 | } |
145 | 146 | ||
147 | ret=BN_mod_exp_mont_consttime(r_mont_const,a,b,m,ctx,NULL); | ||
148 | if (ret <= 0) | ||
149 | { | ||
150 | printf("BN_mod_exp_mont_consttime() problems\n"); | ||
151 | ERR_print_errors(out); | ||
152 | EXIT(1); | ||
153 | } | ||
154 | |||
146 | if (BN_cmp(r_simple, r_mont) == 0 | 155 | if (BN_cmp(r_simple, r_mont) == 0 |
147 | && BN_cmp(r_simple,r_recp) == 0) | 156 | && BN_cmp(r_simple,r_recp) == 0 |
157 | && BN_cmp(r_simple,r_mont_const) == 0) | ||
148 | { | 158 | { |
149 | printf("."); | 159 | printf("."); |
150 | fflush(stdout); | 160 | fflush(stdout); |
@@ -153,6 +163,8 @@ int main(int argc, char *argv[]) | |||
153 | { | 163 | { |
154 | if (BN_cmp(r_simple,r_mont) != 0) | 164 | if (BN_cmp(r_simple,r_mont) != 0) |
155 | printf("\nsimple and mont results differ\n"); | 165 | printf("\nsimple and mont results differ\n"); |
166 | if (BN_cmp(r_simple,r_mont) != 0) | ||
167 | printf("\nsimple and mont const time results differ\n"); | ||
156 | if (BN_cmp(r_simple,r_recp) != 0) | 168 | if (BN_cmp(r_simple,r_recp) != 0) |
157 | printf("\nsimple and recp results differ\n"); | 169 | printf("\nsimple and recp results differ\n"); |
158 | 170 | ||
@@ -162,11 +174,13 @@ int main(int argc, char *argv[]) | |||
162 | printf("\nsimple ="); BN_print(out,r_simple); | 174 | printf("\nsimple ="); BN_print(out,r_simple); |
163 | printf("\nrecp ="); BN_print(out,r_recp); | 175 | printf("\nrecp ="); BN_print(out,r_recp); |
164 | printf("\nmont ="); BN_print(out,r_mont); | 176 | printf("\nmont ="); BN_print(out,r_mont); |
177 | printf("\nmont_ct ="); BN_print(out,r_mont_const); | ||
165 | printf("\n"); | 178 | printf("\n"); |
166 | EXIT(1); | 179 | EXIT(1); |
167 | } | 180 | } |
168 | } | 181 | } |
169 | BN_free(r_mont); | 182 | BN_free(r_mont); |
183 | BN_free(r_mont_const); | ||
170 | BN_free(r_recp); | 184 | BN_free(r_recp); |
171 | BN_free(r_simple); | 185 | BN_free(r_simple); |
172 | BN_free(a); | 186 | BN_free(a); |
diff --git a/src/lib/libcrypto/buffer/Makefile b/src/lib/libcrypto/buffer/Makefile index 3911baf513..4b53c595a3 100644 --- a/src/lib/libcrypto/buffer/Makefile +++ b/src/lib/libcrypto/buffer/Makefile | |||
@@ -1,5 +1,5 @@ | |||
1 | # | 1 | # |
2 | # SSLeay/crypto/buffer/Makefile | 2 | # OpenSSL/crypto/buffer/Makefile |
3 | # | 3 | # |
4 | 4 | ||
5 | DIR= buffer | 5 | DIR= buffer |
diff --git a/src/lib/libcrypto/cast/Makefile b/src/lib/libcrypto/cast/Makefile index 8b0d04bb7c..b388f6271c 100644 --- a/src/lib/libcrypto/cast/Makefile +++ b/src/lib/libcrypto/cast/Makefile | |||
@@ -1,5 +1,5 @@ | |||
1 | # | 1 | # |
2 | # SSLeay/crypto/cast/Makefile | 2 | # OpenSSL/crypto/cast/Makefile |
3 | # | 3 | # |
4 | 4 | ||
5 | DIR= cast | 5 | DIR= cast |
@@ -115,6 +115,7 @@ c_ofb64.o: ../../include/openssl/e_os2.h ../../include/openssl/opensslconf.h | |||
115 | c_ofb64.o: c_ofb64.c cast_lcl.h | 115 | c_ofb64.o: c_ofb64.c cast_lcl.h |
116 | c_skey.o: ../../e_os.h ../../include/openssl/cast.h | 116 | c_skey.o: ../../e_os.h ../../include/openssl/cast.h |
117 | c_skey.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h | 117 | c_skey.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h |
118 | c_skey.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h | 118 | c_skey.o: ../../include/openssl/fips.h ../../include/openssl/opensslconf.h |
119 | c_skey.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h | 119 | c_skey.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h |
120 | c_skey.o: ../../include/openssl/symhacks.h c_skey.c cast_lcl.h cast_s.h | 120 | c_skey.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h |
121 | c_skey.o: c_skey.c cast_lcl.h cast_s.h | ||
diff --git a/src/lib/libcrypto/comp/Makefile b/src/lib/libcrypto/comp/Makefile index 68109a8013..df1babec5c 100644 --- a/src/lib/libcrypto/comp/Makefile +++ b/src/lib/libcrypto/comp/Makefile | |||
@@ -1,5 +1,5 @@ | |||
1 | # | 1 | # |
2 | # SSLeay/crypto/comp/Makefile | 2 | # OpenSSL/crypto/comp/Makefile |
3 | # | 3 | # |
4 | 4 | ||
5 | DIR= comp | 5 | DIR= comp |
diff --git a/src/lib/libcrypto/conf/Makefile b/src/lib/libcrypto/conf/Makefile index 6d2f8ffd9a..403d12b28c 100644 --- a/src/lib/libcrypto/conf/Makefile +++ b/src/lib/libcrypto/conf/Makefile | |||
@@ -1,5 +1,5 @@ | |||
1 | # | 1 | # |
2 | # SSLeay/crypto/conf/Makefile | 2 | # OpenSSL/crypto/conf/Makefile |
3 | # | 3 | # |
4 | 4 | ||
5 | DIR= conf | 5 | DIR= conf |
diff --git a/src/lib/libcrypto/crypto-lib.com b/src/lib/libcrypto/crypto-lib.com index c044ce0099..427c321f25 100644 --- a/src/lib/libcrypto/crypto-lib.com +++ b/src/lib/libcrypto/crypto-lib.com | |||
@@ -184,10 +184,10 @@ $ IF F$TRNLNM("OPENSSL_NO_ASM").OR.ARCH.EQS."AXP" THEN LIB_BN_ASM = "bn_asm" | |||
184 | $ LIB_BN = "bn_add,bn_div,bn_exp,bn_lib,bn_ctx,bn_mul,bn_mod,"+ - | 184 | $ LIB_BN = "bn_add,bn_div,bn_exp,bn_lib,bn_ctx,bn_mul,bn_mod,"+ - |
185 | "bn_print,bn_rand,bn_shift,bn_word,bn_blind,"+ - | 185 | "bn_print,bn_rand,bn_shift,bn_word,bn_blind,"+ - |
186 | "bn_kron,bn_sqrt,bn_gcd,bn_prime,bn_err,bn_sqr,"+LIB_BN_ASM+","+ - | 186 | "bn_kron,bn_sqrt,bn_gcd,bn_prime,bn_err,bn_sqr,"+LIB_BN_ASM+","+ - |
187 | "bn_recp,bn_mont,bn_mpi,bn_exp2" | 187 | "bn_recp,bn_mont,bn_mpi,bn_exp2,bn_x931p" |
188 | $ LIB_RSA = "rsa_eay,rsa_gen,rsa_lib,rsa_sign,rsa_saos,rsa_err,"+ - | 188 | $ LIB_RSA = "rsa_eay,rsa_gen,rsa_lib,rsa_sign,rsa_saos,rsa_err,"+ - |
189 | "rsa_pk1,rsa_ssl,rsa_none,rsa_oaep,rsa_chk,rsa_null,"+ - | 189 | "rsa_pk1,rsa_ssl,rsa_none,rsa_oaep,rsa_chk,rsa_null,"+ - |
190 | "rsa_asn1" | 190 | "rsa_pss,rsa_x931,rsa_asn1" |
191 | $ LIB_EC = "ec_lib,ecp_smpl,ecp_mont,ecp_recp,ecp_nist,ec_cvt,ec_mult,"+ - | 191 | $ LIB_EC = "ec_lib,ecp_smpl,ecp_mont,ecp_recp,ecp_nist,ec_cvt,ec_mult,"+ - |
192 | "ec_err" | 192 | "ec_err" |
193 | $ LIB_DSA = "dsa_gen,dsa_key,dsa_lib,dsa_asn1,dsa_vrf,dsa_sign,dsa_err,dsa_ossl" | 193 | $ LIB_DSA = "dsa_gen,dsa_key,dsa_lib,dsa_asn1,dsa_vrf,dsa_sign,dsa_err,dsa_ossl" |
@@ -265,10 +265,15 @@ $ LIB_KRB5 = "krb5_asn" | |||
265 | $! | 265 | $! |
266 | $! Setup exceptional compilations | 266 | $! Setup exceptional compilations |
267 | $! | 267 | $! |
268 | $ ! Add definitions for no threads on OpenVMS 7.1 and higher | ||
268 | $ COMPILEWITH_CC3 = ",bss_rtcp," | 269 | $ COMPILEWITH_CC3 = ",bss_rtcp," |
270 | $ ! Disable the DOLLARID warning | ||
269 | $ COMPILEWITH_CC4 = ",a_utctm,bss_log,o_time," | 271 | $ COMPILEWITH_CC4 = ",a_utctm,bss_log,o_time," |
272 | $ ! Disable disjoint optimization | ||
270 | $ COMPILEWITH_CC5 = ",md2_dgst,md4_dgst,md5_dgst,mdc2dgst," + - | 273 | $ COMPILEWITH_CC5 = ",md2_dgst,md4_dgst,md5_dgst,mdc2dgst," + - |
271 | "sha_dgst,sha1dgst,rmd_dgst,bf_enc," | 274 | "sha_dgst,sha1dgst,rmd_dgst,bf_enc," |
275 | $ ! Disable the MIXLINKAGE warning | ||
276 | $ COMPILEWITH_CC6 = ",enc_read,set_key," | ||
272 | $! | 277 | $! |
273 | $! Figure Out What Other Modules We Are To Build. | 278 | $! Figure Out What Other Modules We Are To Build. |
274 | $! | 279 | $! |
@@ -497,7 +502,12 @@ $ IF COMPILEWITH_CC5 - FILE_NAME0 .NES. COMPILEWITH_CC5 | |||
497 | $ THEN | 502 | $ THEN |
498 | $ CC5/OBJECT='OBJECT_FILE' 'SOURCE_FILE' | 503 | $ CC5/OBJECT='OBJECT_FILE' 'SOURCE_FILE' |
499 | $ ELSE | 504 | $ ELSE |
500 | $ CC/OBJECT='OBJECT_FILE' 'SOURCE_FILE' | 505 | $ IF COMPILEWITH_CC6 - FILE_NAME0 .NES. COMPILEWITH_CC6 |
506 | $ THEN | ||
507 | $ CC6/OBJECT='OBJECT_FILE' 'SOURCE_FILE' | ||
508 | $ ELSE | ||
509 | $ CC/OBJECT='OBJECT_FILE' 'SOURCE_FILE' | ||
510 | $ ENDIF | ||
501 | $ ENDIF | 511 | $ ENDIF |
502 | $ ENDIF | 512 | $ ENDIF |
503 | $ ENDIF | 513 | $ ENDIF |
@@ -960,7 +970,7 @@ $ CCDEFS = "TCPIP_TYPE_''P4',DSO_VMS" | |||
960 | $ IF F$TYPE(USER_CCDEFS) .NES. "" THEN CCDEFS = CCDEFS + "," + USER_CCDEFS | 970 | $ IF F$TYPE(USER_CCDEFS) .NES. "" THEN CCDEFS = CCDEFS + "," + USER_CCDEFS |
961 | $ CCEXTRAFLAGS = "" | 971 | $ CCEXTRAFLAGS = "" |
962 | $ IF F$TYPE(USER_CCFLAGS) .NES. "" THEN CCEXTRAFLAGS = USER_CCFLAGS | 972 | $ IF F$TYPE(USER_CCFLAGS) .NES. "" THEN CCEXTRAFLAGS = USER_CCFLAGS |
963 | $ CCDISABLEWARNINGS = "LONGLONGTYPE,LONGLONGSUFX" | 973 | $ CCDISABLEWARNINGS = "LONGLONGTYPE,LONGLONGSUFX,FOUNDCR" |
964 | $ IF F$TYPE(USER_CCDISABLEWARNINGS) .NES. "" THEN - | 974 | $ IF F$TYPE(USER_CCDISABLEWARNINGS) .NES. "" THEN - |
965 | CCDISABLEWARNINGS = CCDISABLEWARNINGS + "," + USER_CCDISABLEWARNINGS | 975 | CCDISABLEWARNINGS = CCDISABLEWARNINGS + "," + USER_CCDISABLEWARNINGS |
966 | $! | 976 | $! |
@@ -1077,14 +1087,18 @@ $ THEN | |||
1077 | $ IF CCDISABLEWARNINGS .EQS. "" | 1087 | $ IF CCDISABLEWARNINGS .EQS. "" |
1078 | $ THEN | 1088 | $ THEN |
1079 | $ CC4DISABLEWARNINGS = "DOLLARID" | 1089 | $ CC4DISABLEWARNINGS = "DOLLARID" |
1090 | $ CC6DISABLEWARNINGS = "MIXLINKAGE" | ||
1080 | $ ELSE | 1091 | $ ELSE |
1081 | $ CC4DISABLEWARNINGS = CCDISABLEWARNINGS + ",DOLLARID" | 1092 | $ CC4DISABLEWARNINGS = CCDISABLEWARNINGS + ",DOLLARID" |
1093 | $ CC6DISABLEWARNINGS = CCDISABLEWARNINGS + ",MIXLINKAGE" | ||
1082 | $ CCDISABLEWARNINGS = "/WARNING=(DISABLE=(" + CCDISABLEWARNINGS + "))" | 1094 | $ CCDISABLEWARNINGS = "/WARNING=(DISABLE=(" + CCDISABLEWARNINGS + "))" |
1083 | $ ENDIF | 1095 | $ ENDIF |
1084 | $ CC4DISABLEWARNINGS = "/WARNING=(DISABLE=(" + CC4DISABLEWARNINGS + "))" | 1096 | $ CC4DISABLEWARNINGS = "/WARNING=(DISABLE=(" + CC4DISABLEWARNINGS + "))" |
1097 | $ CC6DISABLEWARNINGS = "/WARNING=(DISABLE=(" + CC6DISABLEWARNINGS + "))" | ||
1085 | $ ELSE | 1098 | $ ELSE |
1086 | $ CCDISABLEWARNINGS = "" | 1099 | $ CCDISABLEWARNINGS = "" |
1087 | $ CC4DISABLEWARNINGS = "" | 1100 | $ CC4DISABLEWARNINGS = "" |
1101 | $ CC6DISABLEWARNINGS = "" | ||
1088 | $ ENDIF | 1102 | $ ENDIF |
1089 | $ CC3 = CC + "/DEFINE=(" + CCDEFS + ISSEVEN + ")" + CCDISABLEWARNINGS | 1103 | $ CC3 = CC + "/DEFINE=(" + CCDEFS + ISSEVEN + ")" + CCDISABLEWARNINGS |
1090 | $ CC = CC + "/DEFINE=(" + CCDEFS + ")" + CCDISABLEWARNINGS | 1104 | $ CC = CC + "/DEFINE=(" + CCDEFS + ")" + CCDISABLEWARNINGS |
@@ -1095,6 +1109,7 @@ $ ELSE | |||
1095 | $ CC5 = CC + "/NOOPTIMIZE" | 1109 | $ CC5 = CC + "/NOOPTIMIZE" |
1096 | $ ENDIF | 1110 | $ ENDIF |
1097 | $ CC4 = CC - CCDISABLEWARNINGS + CC4DISABLEWARNINGS | 1111 | $ CC4 = CC - CCDISABLEWARNINGS + CC4DISABLEWARNINGS |
1112 | $ CC6 = CC - CCDISABLEWARNINGS + CC6DISABLEWARNINGS | ||
1098 | $! | 1113 | $! |
1099 | $! Show user the result | 1114 | $! Show user the result |
1100 | $! | 1115 | $! |
diff --git a/src/lib/libcrypto/des/Makefile b/src/lib/libcrypto/des/Makefile index 655f2ea1a8..800af0b123 100644 --- a/src/lib/libcrypto/des/Makefile +++ b/src/lib/libcrypto/des/Makefile | |||
@@ -1,5 +1,5 @@ | |||
1 | # | 1 | # |
2 | # SSLeay/crypto/des/Makefile | 2 | # OpenSSL/crypto/des/Makefile |
3 | # | 3 | # |
4 | 4 | ||
5 | DIR= des | 5 | DIR= des |
diff --git a/src/lib/libcrypto/dh/Makefile b/src/lib/libcrypto/dh/Makefile index c091a8130a..352678b94a 100644 --- a/src/lib/libcrypto/dh/Makefile +++ b/src/lib/libcrypto/dh/Makefile | |||
@@ -1,5 +1,5 @@ | |||
1 | # | 1 | # |
2 | # SSLeay/crypto/dh/Makefile | 2 | # OpenSSL/crypto/dh/Makefile |
3 | # | 3 | # |
4 | 4 | ||
5 | DIR= dh | 5 | DIR= dh |
diff --git a/src/lib/libcrypto/dh/dhtest.c b/src/lib/libcrypto/dh/dhtest.c index d75077f9fa..b76dede771 100644 --- a/src/lib/libcrypto/dh/dhtest.c +++ b/src/lib/libcrypto/dh/dhtest.c | |||
@@ -136,6 +136,10 @@ int main(int argc, char *argv[]) | |||
136 | b->g=BN_dup(a->g); | 136 | b->g=BN_dup(a->g); |
137 | if ((b->p == NULL) || (b->g == NULL)) goto err; | 137 | if ((b->p == NULL) || (b->g == NULL)) goto err; |
138 | 138 | ||
139 | /* Set a to run with normal modexp and b to use constant time */ | ||
140 | a->flags &= ~DH_FLAG_NO_EXP_CONSTTIME; | ||
141 | b->flags |= DH_FLAG_NO_EXP_CONSTTIME; | ||
142 | |||
139 | if (!DH_generate_key(a)) goto err; | 143 | if (!DH_generate_key(a)) goto err; |
140 | BIO_puts(out,"pri 1="); | 144 | BIO_puts(out,"pri 1="); |
141 | BN_print(out,a->priv_key); | 145 | BN_print(out,a->priv_key); |
diff --git a/src/lib/libcrypto/dsa/Makefile b/src/lib/libcrypto/dsa/Makefile index 3a55058973..4f10278039 100644 --- a/src/lib/libcrypto/dsa/Makefile +++ b/src/lib/libcrypto/dsa/Makefile | |||
@@ -1,5 +1,5 @@ | |||
1 | # | 1 | # |
2 | # SSLeay/crypto/dsa/Makefile | 2 | # OpenSSL/crypto/dsa/Makefile |
3 | # | 3 | # |
4 | 4 | ||
5 | DIR= dsa | 5 | DIR= dsa |
diff --git a/src/lib/libcrypto/dsa/dsatest.c b/src/lib/libcrypto/dsa/dsatest.c index 4734ce4af8..55a3756aff 100644 --- a/src/lib/libcrypto/dsa/dsatest.c +++ b/src/lib/libcrypto/dsa/dsatest.c | |||
@@ -194,10 +194,19 @@ int main(int argc, char **argv) | |||
194 | BIO_printf(bio_err,"g value is wrong\n"); | 194 | BIO_printf(bio_err,"g value is wrong\n"); |
195 | goto end; | 195 | goto end; |
196 | } | 196 | } |
197 | |||
198 | dsa->flags |= DSA_FLAG_NO_EXP_CONSTTIME; | ||
197 | DSA_generate_key(dsa); | 199 | DSA_generate_key(dsa); |
198 | DSA_sign(0, str1, 20, sig, &siglen, dsa); | 200 | DSA_sign(0, str1, 20, sig, &siglen, dsa); |
199 | if (DSA_verify(0, str1, 20, sig, siglen, dsa) == 1) | 201 | if (DSA_verify(0, str1, 20, sig, siglen, dsa) == 1) |
200 | ret=1; | 202 | ret=1; |
203 | |||
204 | dsa->flags &= ~DSA_FLAG_NO_EXP_CONSTTIME; | ||
205 | DSA_generate_key(dsa); | ||
206 | DSA_sign(0, str1, 20, sig, &siglen, dsa); | ||
207 | if (DSA_verify(0, str1, 20, sig, siglen, dsa) == 1) | ||
208 | ret=1; | ||
209 | |||
201 | end: | 210 | end: |
202 | if (!ret) | 211 | if (!ret) |
203 | ERR_print_errors(bio_err); | 212 | ERR_print_errors(bio_err); |
diff --git a/src/lib/libcrypto/dso/Makefile b/src/lib/libcrypto/dso/Makefile index 168951bc3e..c16278c3ff 100644 --- a/src/lib/libcrypto/dso/Makefile +++ b/src/lib/libcrypto/dso/Makefile | |||
@@ -1,5 +1,5 @@ | |||
1 | # | 1 | # |
2 | # SSLeay/crypto/dso/Makefile | 2 | # OpenSSL/crypto/dso/Makefile |
3 | # | 3 | # |
4 | 4 | ||
5 | DIR= dso | 5 | DIR= dso |
diff --git a/src/lib/libcrypto/dso/dso_dl.c b/src/lib/libcrypto/dso/dso_dl.c index 79d2cb4d8c..f7b4dfc0c3 100644 --- a/src/lib/libcrypto/dso/dso_dl.c +++ b/src/lib/libcrypto/dso/dso_dl.c | |||
@@ -126,7 +126,8 @@ static int dl_load(DSO *dso) | |||
126 | DSOerr(DSO_F_DL_LOAD,DSO_R_NO_FILENAME); | 126 | DSOerr(DSO_F_DL_LOAD,DSO_R_NO_FILENAME); |
127 | goto err; | 127 | goto err; |
128 | } | 128 | } |
129 | ptr = shl_load(filename, BIND_IMMEDIATE|DYNAMIC_PATH, 0L); | 129 | ptr = shl_load(filename, BIND_IMMEDIATE | |
130 | (dso->flags&DSO_FLAG_NO_NAME_TRANSLATION?0:DYNAMIC_PATH), 0L); | ||
130 | if(ptr == NULL) | 131 | if(ptr == NULL) |
131 | { | 132 | { |
132 | DSOerr(DSO_F_DL_LOAD,DSO_R_LOAD_FAILED); | 133 | DSOerr(DSO_F_DL_LOAD,DSO_R_LOAD_FAILED); |
@@ -281,4 +282,36 @@ static char *dl_name_converter(DSO *dso, const char *filename) | |||
281 | return(translated); | 282 | return(translated); |
282 | } | 283 | } |
283 | 284 | ||
285 | #ifdef OPENSSL_FIPS | ||
286 | static void dl_ref_point(){} | ||
287 | |||
288 | int DSO_pathbyaddr(void *addr,char *path,int sz) | ||
289 | { | ||
290 | struct shl_descriptor inf; | ||
291 | int i,len; | ||
292 | |||
293 | if (addr == NULL) | ||
294 | { | ||
295 | union { void(*f)(); void *p; } t = { dl_ref_point }; | ||
296 | addr = t.p; | ||
297 | } | ||
298 | |||
299 | for (i=-1;shl_get_r(i,&inf)==0;i++) | ||
300 | { | ||
301 | if (((size_t)addr >= inf.tstart && (size_t)addr < inf.tend) || | ||
302 | ((size_t)addr >= inf.dstart && (size_t)addr < inf.dend)) | ||
303 | { | ||
304 | len = (int)strlen(inf.filename); | ||
305 | if (sz <= 0) return len+1; | ||
306 | if (len >= sz) len=sz-1; | ||
307 | memcpy(path,inf.filename,len); | ||
308 | path[len++] = 0; | ||
309 | return len; | ||
310 | } | ||
311 | } | ||
312 | |||
313 | return -1; | ||
314 | } | ||
315 | #endif | ||
316 | |||
284 | #endif /* DSO_DL */ | 317 | #endif /* DSO_DL */ |
diff --git a/src/lib/libcrypto/dso/dso_win32.c b/src/lib/libcrypto/dso/dso_win32.c index 3fa90eb27c..cc4ac68696 100644 --- a/src/lib/libcrypto/dso/dso_win32.c +++ b/src/lib/libcrypto/dso/dso_win32.c | |||
@@ -68,6 +68,25 @@ DSO_METHOD *DSO_METHOD_win32(void) | |||
68 | } | 68 | } |
69 | #else | 69 | #else |
70 | 70 | ||
71 | #ifdef _WIN32_WCE | ||
72 | # if _WIN32_WCE < 300 | ||
73 | static FARPROC GetProcAddressA(HMODULE hModule,LPCSTR lpProcName) | ||
74 | { | ||
75 | WCHAR lpProcNameW[64]; | ||
76 | int i; | ||
77 | |||
78 | for (i=0;lpProcName[i] && i<64;i++) | ||
79 | lpProcNameW[i] = (WCHAR)lpProcName[i]; | ||
80 | if (i==64) return NULL; | ||
81 | lpProcNameW[i] = 0; | ||
82 | |||
83 | return GetProcAddressW(hModule,lpProcNameW); | ||
84 | } | ||
85 | # endif | ||
86 | # undef GetProcAddress | ||
87 | # define GetProcAddress GetProcAddressA | ||
88 | #endif | ||
89 | |||
71 | /* Part of the hack in "win32_load" ... */ | 90 | /* Part of the hack in "win32_load" ... */ |
72 | #define DSO_MAX_TRANSLATED_SIZE 256 | 91 | #define DSO_MAX_TRANSLATED_SIZE 256 |
73 | 92 | ||
@@ -122,7 +141,7 @@ static int win32_load(DSO *dso) | |||
122 | DSOerr(DSO_F_WIN32_LOAD,DSO_R_NO_FILENAME); | 141 | DSOerr(DSO_F_WIN32_LOAD,DSO_R_NO_FILENAME); |
123 | goto err; | 142 | goto err; |
124 | } | 143 | } |
125 | h = LoadLibrary(filename); | 144 | h = LoadLibraryA(filename); |
126 | if(h == NULL) | 145 | if(h == NULL) |
127 | { | 146 | { |
128 | DSOerr(DSO_F_WIN32_LOAD,DSO_R_LOAD_FAILED); | 147 | DSOerr(DSO_F_WIN32_LOAD,DSO_R_LOAD_FAILED); |
diff --git a/src/lib/libcrypto/engine/hw_aep.c b/src/lib/libcrypto/engine/hw_aep.c index 8b8380a582..5f1772ea99 100644 --- a/src/lib/libcrypto/engine/hw_aep.c +++ b/src/lib/libcrypto/engine/hw_aep.c | |||
@@ -474,6 +474,7 @@ static int aep_init(ENGINE *e) | |||
474 | 474 | ||
475 | if(aep_dso) | 475 | if(aep_dso) |
476 | DSO_free(aep_dso); | 476 | DSO_free(aep_dso); |
477 | aep_dso = NULL; | ||
477 | 478 | ||
478 | p_AEP_OpenConnection = NULL; | 479 | p_AEP_OpenConnection = NULL; |
479 | p_AEP_ModExp = NULL; | 480 | p_AEP_ModExp = NULL; |
diff --git a/src/lib/libcrypto/engine/hw_atalla.c b/src/lib/libcrypto/engine/hw_atalla.c index e9eff9fad1..2b8342bbdd 100644 --- a/src/lib/libcrypto/engine/hw_atalla.c +++ b/src/lib/libcrypto/engine/hw_atalla.c | |||
@@ -375,6 +375,7 @@ static int atalla_init(ENGINE *e) | |||
375 | err: | 375 | err: |
376 | if(atalla_dso) | 376 | if(atalla_dso) |
377 | DSO_free(atalla_dso); | 377 | DSO_free(atalla_dso); |
378 | atalla_dso = NULL; | ||
378 | p_Atalla_GetHardwareConfig = NULL; | 379 | p_Atalla_GetHardwareConfig = NULL; |
379 | p_Atalla_RSAPrivateKeyOpFn = NULL; | 380 | p_Atalla_RSAPrivateKeyOpFn = NULL; |
380 | p_Atalla_GetPerformanceStatistics = NULL; | 381 | p_Atalla_GetPerformanceStatistics = NULL; |
diff --git a/src/lib/libcrypto/engine/hw_cswift.c b/src/lib/libcrypto/engine/hw_cswift.c index f128ee5a68..1411fd8333 100644 --- a/src/lib/libcrypto/engine/hw_cswift.c +++ b/src/lib/libcrypto/engine/hw_cswift.c | |||
@@ -90,6 +90,7 @@ static int cswift_destroy(ENGINE *e); | |||
90 | static int cswift_init(ENGINE *e); | 90 | static int cswift_init(ENGINE *e); |
91 | static int cswift_finish(ENGINE *e); | 91 | static int cswift_finish(ENGINE *e); |
92 | static int cswift_ctrl(ENGINE *e, int cmd, long i, void *p, void (*f)()); | 92 | static int cswift_ctrl(ENGINE *e, int cmd, long i, void *p, void (*f)()); |
93 | static int cswift_bn_32copy(SW_LARGENUMBER * out, const BIGNUM * in); | ||
93 | 94 | ||
94 | /* BIGNUM stuff */ | 95 | /* BIGNUM stuff */ |
95 | static int cswift_mod_exp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, | 96 | static int cswift_mod_exp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, |
@@ -403,7 +404,10 @@ static int cswift_init(ENGINE *e) | |||
403 | return 1; | 404 | return 1; |
404 | err: | 405 | err: |
405 | if(cswift_dso) | 406 | if(cswift_dso) |
407 | { | ||
406 | DSO_free(cswift_dso); | 408 | DSO_free(cswift_dso); |
409 | cswift_dso = NULL; | ||
410 | } | ||
407 | p_CSwift_AcquireAccContext = NULL; | 411 | p_CSwift_AcquireAccContext = NULL; |
408 | p_CSwift_AttachKeyParam = NULL; | 412 | p_CSwift_AttachKeyParam = NULL; |
409 | p_CSwift_SimpleRequest = NULL; | 413 | p_CSwift_SimpleRequest = NULL; |
@@ -553,6 +557,29 @@ err: | |||
553 | return to_return; | 557 | return to_return; |
554 | } | 558 | } |
555 | 559 | ||
560 | |||
561 | int cswift_bn_32copy(SW_LARGENUMBER * out, const BIGNUM * in) | ||
562 | { | ||
563 | int mod; | ||
564 | int numbytes = BN_num_bytes(in); | ||
565 | |||
566 | mod = 0; | ||
567 | while( ((out->nbytes = (numbytes+mod)) % 32) ) | ||
568 | { | ||
569 | mod++; | ||
570 | } | ||
571 | out->value = (unsigned char*)OPENSSL_malloc(out->nbytes); | ||
572 | if(!out->value) | ||
573 | { | ||
574 | return 0; | ||
575 | } | ||
576 | BN_bn2bin(in, &out->value[mod]); | ||
577 | if(mod) | ||
578 | memset(out->value, 0, mod); | ||
579 | |||
580 | return 1; | ||
581 | } | ||
582 | |||
556 | /* Un petit mod_exp chinois */ | 583 | /* Un petit mod_exp chinois */ |
557 | static int cswift_mod_exp_crt(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, | 584 | static int cswift_mod_exp_crt(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, |
558 | const BIGNUM *q, const BIGNUM *dmp1, | 585 | const BIGNUM *q, const BIGNUM *dmp1, |
@@ -562,15 +589,16 @@ static int cswift_mod_exp_crt(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, | |||
562 | SW_LARGENUMBER arg, res; | 589 | SW_LARGENUMBER arg, res; |
563 | SW_PARAM sw_param; | 590 | SW_PARAM sw_param; |
564 | SW_CONTEXT_HANDLE hac; | 591 | SW_CONTEXT_HANDLE hac; |
565 | BIGNUM *rsa_p = NULL; | ||
566 | BIGNUM *rsa_q = NULL; | ||
567 | BIGNUM *rsa_dmp1 = NULL; | ||
568 | BIGNUM *rsa_dmq1 = NULL; | ||
569 | BIGNUM *rsa_iqmp = NULL; | ||
570 | BIGNUM *argument = NULL; | ||
571 | BIGNUM *result = NULL; | 592 | BIGNUM *result = NULL; |
593 | BIGNUM *argument = NULL; | ||
572 | int to_return = 0; /* expect failure */ | 594 | int to_return = 0; /* expect failure */ |
573 | int acquired = 0; | 595 | int acquired = 0; |
596 | |||
597 | sw_param.up.crt.p.value = NULL; | ||
598 | sw_param.up.crt.q.value = NULL; | ||
599 | sw_param.up.crt.dmp1.value = NULL; | ||
600 | sw_param.up.crt.dmq1.value = NULL; | ||
601 | sw_param.up.crt.iqmp.value = NULL; | ||
574 | 602 | ||
575 | if(!get_context(&hac)) | 603 | if(!get_context(&hac)) |
576 | { | 604 | { |
@@ -578,44 +606,55 @@ static int cswift_mod_exp_crt(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, | |||
578 | goto err; | 606 | goto err; |
579 | } | 607 | } |
580 | acquired = 1; | 608 | acquired = 1; |
609 | |||
581 | /* Prepare the params */ | 610 | /* Prepare the params */ |
582 | BN_CTX_start(ctx); | 611 | argument = BN_new(); |
583 | rsa_p = BN_CTX_get(ctx); | 612 | result = BN_new(); |
584 | rsa_q = BN_CTX_get(ctx); | 613 | if(!result || !argument) |
585 | rsa_dmp1 = BN_CTX_get(ctx); | ||
586 | rsa_dmq1 = BN_CTX_get(ctx); | ||
587 | rsa_iqmp = BN_CTX_get(ctx); | ||
588 | argument = BN_CTX_get(ctx); | ||
589 | result = BN_CTX_get(ctx); | ||
590 | if(!result) | ||
591 | { | 614 | { |
592 | CSWIFTerr(CSWIFT_F_CSWIFT_MOD_EXP_CRT,CSWIFT_R_BN_CTX_FULL); | 615 | CSWIFTerr(CSWIFT_F_CSWIFT_MOD_EXP_CRT,CSWIFT_R_BN_CTX_FULL); |
593 | goto err; | 616 | goto err; |
594 | } | 617 | } |
595 | if(!bn_wexpand(rsa_p, p->top) || !bn_wexpand(rsa_q, q->top) || | 618 | |
596 | !bn_wexpand(rsa_dmp1, dmp1->top) || | 619 | |
597 | !bn_wexpand(rsa_dmq1, dmq1->top) || | 620 | sw_param.type = SW_ALG_CRT; |
598 | !bn_wexpand(rsa_iqmp, iqmp->top) || | 621 | /************************************************************************/ |
599 | !bn_wexpand(argument, a->top) || | 622 | /* 04/02/2003 */ |
623 | /* Modified by Frederic Giudicelli (deny-all.com) to overcome the */ | ||
624 | /* limitation of cswift with values not a multiple of 32 */ | ||
625 | /************************************************************************/ | ||
626 | if(!cswift_bn_32copy(&sw_param.up.crt.p, p)) | ||
627 | { | ||
628 | CSWIFTerr(CSWIFT_F_CSWIFT_MOD_EXP_CRT,CSWIFT_R_BN_EXPAND_FAIL); | ||
629 | goto err; | ||
630 | } | ||
631 | if(!cswift_bn_32copy(&sw_param.up.crt.q, q)) | ||
632 | { | ||
633 | CSWIFTerr(CSWIFT_F_CSWIFT_MOD_EXP_CRT,CSWIFT_R_BN_EXPAND_FAIL); | ||
634 | goto err; | ||
635 | } | ||
636 | if(!cswift_bn_32copy(&sw_param.up.crt.dmp1, dmp1)) | ||
637 | { | ||
638 | CSWIFTerr(CSWIFT_F_CSWIFT_MOD_EXP_CRT,CSWIFT_R_BN_EXPAND_FAIL); | ||
639 | goto err; | ||
640 | } | ||
641 | if(!cswift_bn_32copy(&sw_param.up.crt.dmq1, dmq1)) | ||
642 | { | ||
643 | CSWIFTerr(CSWIFT_F_CSWIFT_MOD_EXP_CRT,CSWIFT_R_BN_EXPAND_FAIL); | ||
644 | goto err; | ||
645 | } | ||
646 | if(!cswift_bn_32copy(&sw_param.up.crt.iqmp, iqmp)) | ||
647 | { | ||
648 | CSWIFTerr(CSWIFT_F_CSWIFT_MOD_EXP_CRT,CSWIFT_R_BN_EXPAND_FAIL); | ||
649 | goto err; | ||
650 | } | ||
651 | if( !bn_wexpand(argument, a->top) || | ||
600 | !bn_wexpand(result, p->top + q->top)) | 652 | !bn_wexpand(result, p->top + q->top)) |
601 | { | 653 | { |
602 | CSWIFTerr(CSWIFT_F_CSWIFT_MOD_EXP_CRT,CSWIFT_R_BN_EXPAND_FAIL); | 654 | CSWIFTerr(CSWIFT_F_CSWIFT_MOD_EXP_CRT,CSWIFT_R_BN_EXPAND_FAIL); |
603 | goto err; | 655 | goto err; |
604 | } | 656 | } |
605 | sw_param.type = SW_ALG_CRT; | 657 | |
606 | sw_param.up.crt.p.nbytes = BN_bn2bin(p, (unsigned char *)rsa_p->d); | ||
607 | sw_param.up.crt.p.value = (unsigned char *)rsa_p->d; | ||
608 | sw_param.up.crt.q.nbytes = BN_bn2bin(q, (unsigned char *)rsa_q->d); | ||
609 | sw_param.up.crt.q.value = (unsigned char *)rsa_q->d; | ||
610 | sw_param.up.crt.dmp1.nbytes = BN_bn2bin(dmp1, | ||
611 | (unsigned char *)rsa_dmp1->d); | ||
612 | sw_param.up.crt.dmp1.value = (unsigned char *)rsa_dmp1->d; | ||
613 | sw_param.up.crt.dmq1.nbytes = BN_bn2bin(dmq1, | ||
614 | (unsigned char *)rsa_dmq1->d); | ||
615 | sw_param.up.crt.dmq1.value = (unsigned char *)rsa_dmq1->d; | ||
616 | sw_param.up.crt.iqmp.nbytes = BN_bn2bin(iqmp, | ||
617 | (unsigned char *)rsa_iqmp->d); | ||
618 | sw_param.up.crt.iqmp.value = (unsigned char *)rsa_iqmp->d; | ||
619 | /* Attach the key params */ | 658 | /* Attach the key params */ |
620 | sw_status = p_CSwift_AttachKeyParam(hac, &sw_param); | 659 | sw_status = p_CSwift_AttachKeyParam(hac, &sw_param); |
621 | switch(sw_status) | 660 | switch(sw_status) |
@@ -654,9 +693,22 @@ static int cswift_mod_exp_crt(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, | |||
654 | BN_bin2bn((unsigned char *)result->d, res.nbytes, r); | 693 | BN_bin2bn((unsigned char *)result->d, res.nbytes, r); |
655 | to_return = 1; | 694 | to_return = 1; |
656 | err: | 695 | err: |
696 | if(sw_param.up.crt.p.value) | ||
697 | OPENSSL_free(sw_param.up.crt.p.value); | ||
698 | if(sw_param.up.crt.q.value) | ||
699 | OPENSSL_free(sw_param.up.crt.q.value); | ||
700 | if(sw_param.up.crt.dmp1.value) | ||
701 | OPENSSL_free(sw_param.up.crt.dmp1.value); | ||
702 | if(sw_param.up.crt.dmq1.value) | ||
703 | OPENSSL_free(sw_param.up.crt.dmq1.value); | ||
704 | if(sw_param.up.crt.iqmp.value) | ||
705 | OPENSSL_free(sw_param.up.crt.iqmp.value); | ||
706 | if(result) | ||
707 | BN_free(result); | ||
708 | if(argument) | ||
709 | BN_free(argument); | ||
657 | if(acquired) | 710 | if(acquired) |
658 | release_context(hac); | 711 | release_context(hac); |
659 | BN_CTX_end(ctx); | ||
660 | return to_return; | 712 | return to_return; |
661 | } | 713 | } |
662 | 714 | ||
@@ -665,6 +717,27 @@ static int cswift_rsa_mod_exp(BIGNUM *r0, const BIGNUM *I, RSA *rsa) | |||
665 | { | 717 | { |
666 | BN_CTX *ctx; | 718 | BN_CTX *ctx; |
667 | int to_return = 0; | 719 | int to_return = 0; |
720 | const RSA_METHOD * def_rsa_method; | ||
721 | |||
722 | /* Try the limits of RSA (2048 bits) */ | ||
723 | if(BN_num_bytes(rsa->p) > 128 || | ||
724 | BN_num_bytes(rsa->q) > 128 || | ||
725 | BN_num_bytes(rsa->dmp1) > 128 || | ||
726 | BN_num_bytes(rsa->dmq1) > 128 || | ||
727 | BN_num_bytes(rsa->iqmp) > 128) | ||
728 | { | ||
729 | #ifdef RSA_NULL | ||
730 | def_rsa_method=RSA_null_method(); | ||
731 | #else | ||
732 | #if 0 | ||
733 | def_rsa_method=RSA_PKCS1_RSAref(); | ||
734 | #else | ||
735 | def_rsa_method=RSA_PKCS1_SSLeay(); | ||
736 | #endif | ||
737 | #endif | ||
738 | if(def_rsa_method) | ||
739 | return def_rsa_method->rsa_mod_exp(r0, I, rsa); | ||
740 | } | ||
668 | 741 | ||
669 | if((ctx = BN_CTX_new()) == NULL) | 742 | if((ctx = BN_CTX_new()) == NULL) |
670 | goto err; | 743 | goto err; |
@@ -686,6 +759,26 @@ err: | |||
686 | static int cswift_mod_exp_mont(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, | 759 | static int cswift_mod_exp_mont(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, |
687 | const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *m_ctx) | 760 | const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *m_ctx) |
688 | { | 761 | { |
762 | const RSA_METHOD * def_rsa_method; | ||
763 | |||
764 | /* Try the limits of RSA (2048 bits) */ | ||
765 | if(BN_num_bytes(r) > 256 || | ||
766 | BN_num_bytes(a) > 256 || | ||
767 | BN_num_bytes(m) > 256) | ||
768 | { | ||
769 | #ifdef RSA_NULL | ||
770 | def_rsa_method=RSA_null_method(); | ||
771 | #else | ||
772 | #if 0 | ||
773 | def_rsa_method=RSA_PKCS1_RSAref(); | ||
774 | #else | ||
775 | def_rsa_method=RSA_PKCS1_SSLeay(); | ||
776 | #endif | ||
777 | #endif | ||
778 | if(def_rsa_method) | ||
779 | return def_rsa_method->bn_mod_exp(r, a, p, m, ctx, m_ctx); | ||
780 | } | ||
781 | |||
689 | return cswift_mod_exp(r, a, p, m, ctx); | 782 | return cswift_mod_exp(r, a, p, m, ctx); |
690 | } | 783 | } |
691 | 784 | ||
@@ -930,9 +1023,10 @@ static int cswift_rand_bytes(unsigned char *buf, int num) | |||
930 | SW_CONTEXT_HANDLE hac; | 1023 | SW_CONTEXT_HANDLE hac; |
931 | SW_STATUS swrc; | 1024 | SW_STATUS swrc; |
932 | SW_LARGENUMBER largenum; | 1025 | SW_LARGENUMBER largenum; |
933 | size_t nbytes = 0; | ||
934 | int acquired = 0; | 1026 | int acquired = 0; |
935 | int to_return = 0; /* assume failure */ | 1027 | int to_return = 0; /* assume failure */ |
1028 | unsigned char buf32[1024]; | ||
1029 | |||
936 | 1030 | ||
937 | if (!get_context(&hac)) | 1031 | if (!get_context(&hac)) |
938 | { | 1032 | { |
@@ -941,17 +1035,19 @@ static int cswift_rand_bytes(unsigned char *buf, int num) | |||
941 | } | 1035 | } |
942 | acquired = 1; | 1036 | acquired = 1; |
943 | 1037 | ||
944 | while (nbytes < (size_t)num) | 1038 | /************************************************************************/ |
1039 | /* 04/02/2003 */ | ||
1040 | /* Modified by Frederic Giudicelli (deny-all.com) to overcome the */ | ||
1041 | /* limitation of cswift with values not a multiple of 32 */ | ||
1042 | /************************************************************************/ | ||
1043 | |||
1044 | while(num >= sizeof(buf32)) | ||
945 | { | 1045 | { |
1046 | largenum.value = buf; | ||
1047 | largenum.nbytes = sizeof(buf32); | ||
946 | /* tell CryptoSwift how many bytes we want and where we want it. | 1048 | /* tell CryptoSwift how many bytes we want and where we want it. |
947 | * Note: - CryptoSwift cannot do more than 4096 bytes at a time. | 1049 | * Note: - CryptoSwift cannot do more than 4096 bytes at a time. |
948 | * - CryptoSwift can only do multiple of 32-bits. */ | 1050 | * - CryptoSwift can only do multiple of 32-bits. */ |
949 | largenum.value = (SW_BYTE *) buf + nbytes; | ||
950 | if (4096 > num - nbytes) | ||
951 | largenum.nbytes = num - nbytes; | ||
952 | else | ||
953 | largenum.nbytes = 4096; | ||
954 | |||
955 | swrc = p_CSwift_SimpleRequest(hac, SW_CMD_RAND, NULL, 0, &largenum, 1); | 1051 | swrc = p_CSwift_SimpleRequest(hac, SW_CMD_RAND, NULL, 0, &largenum, 1); |
956 | if (swrc != SW_OK) | 1052 | if (swrc != SW_OK) |
957 | { | 1053 | { |
@@ -961,14 +1057,30 @@ static int cswift_rand_bytes(unsigned char *buf, int num) | |||
961 | ERR_add_error_data(2, "CryptoSwift error number is ", tmpbuf); | 1057 | ERR_add_error_data(2, "CryptoSwift error number is ", tmpbuf); |
962 | goto err; | 1058 | goto err; |
963 | } | 1059 | } |
964 | 1060 | buf += sizeof(buf32); | |
965 | nbytes += largenum.nbytes; | 1061 | num -= sizeof(buf32); |
1062 | } | ||
1063 | if(num) | ||
1064 | { | ||
1065 | largenum.nbytes = sizeof(buf32); | ||
1066 | largenum.value = buf32; | ||
1067 | swrc = p_CSwift_SimpleRequest(hac, SW_CMD_RAND, NULL, 0, &largenum, 1); | ||
1068 | if (swrc != SW_OK) | ||
1069 | { | ||
1070 | char tmpbuf[20]; | ||
1071 | CSWIFTerr(CSWIFT_F_CSWIFT_CTRL, CSWIFT_R_REQUEST_FAILED); | ||
1072 | sprintf(tmpbuf, "%ld", swrc); | ||
1073 | ERR_add_error_data(2, "CryptoSwift error number is ", tmpbuf); | ||
1074 | goto err; | ||
1075 | } | ||
1076 | memcpy(buf, largenum.value, num); | ||
966 | } | 1077 | } |
967 | to_return = 1; /* success */ | ||
968 | 1078 | ||
1079 | to_return = 1; /* success */ | ||
969 | err: | 1080 | err: |
970 | if (acquired) | 1081 | if (acquired) |
971 | release_context(hac); | 1082 | release_context(hac); |
1083 | |||
972 | return to_return; | 1084 | return to_return; |
973 | } | 1085 | } |
974 | 1086 | ||
diff --git a/src/lib/libcrypto/engine/hw_ubsec.c b/src/lib/libcrypto/engine/hw_ubsec.c index 5234a08a07..8fb834af31 100644 --- a/src/lib/libcrypto/engine/hw_ubsec.c +++ b/src/lib/libcrypto/engine/hw_ubsec.c | |||
@@ -454,6 +454,7 @@ static int ubsec_init(ENGINE *e) | |||
454 | err: | 454 | err: |
455 | if(ubsec_dso) | 455 | if(ubsec_dso) |
456 | DSO_free(ubsec_dso); | 456 | DSO_free(ubsec_dso); |
457 | ubsec_dso = NULL; | ||
457 | p_UBSEC_ubsec_bytes_to_bits = NULL; | 458 | p_UBSEC_ubsec_bytes_to_bits = NULL; |
458 | p_UBSEC_ubsec_bits_to_bytes = NULL; | 459 | p_UBSEC_ubsec_bits_to_bytes = NULL; |
459 | p_UBSEC_ubsec_open = NULL; | 460 | p_UBSEC_ubsec_open = NULL; |
diff --git a/src/lib/libcrypto/err/Makefile b/src/lib/libcrypto/err/Makefile index 149f3e0eb9..4adec55302 100644 --- a/src/lib/libcrypto/err/Makefile +++ b/src/lib/libcrypto/err/Makefile | |||
@@ -1,5 +1,5 @@ | |||
1 | # | 1 | # |
2 | # SSLeay/crypto/err/Makefile | 2 | # OpenSSL/crypto/err/Makefile |
3 | # | 3 | # |
4 | 4 | ||
5 | DIR= err | 5 | DIR= err |
diff --git a/src/lib/libcrypto/evp/Makefile b/src/lib/libcrypto/evp/Makefile index 5027a3855a..d1c2a272bb 100644 --- a/src/lib/libcrypto/evp/Makefile +++ b/src/lib/libcrypto/evp/Makefile | |||
@@ -1,5 +1,5 @@ | |||
1 | # | 1 | # |
2 | # SSLeay/crypto/evp/Makefile | 2 | # OpenSSL/crypto/evp/Makefile |
3 | # | 3 | # |
4 | 4 | ||
5 | DIR= evp | 5 | DIR= evp |
diff --git a/src/lib/libcrypto/evp/c_alld.c b/src/lib/libcrypto/evp/c_alld.c index aae7bf7482..929ea56a3e 100644 --- a/src/lib/libcrypto/evp/c_alld.c +++ b/src/lib/libcrypto/evp/c_alld.c | |||
@@ -100,4 +100,14 @@ void OpenSSL_add_all_digests(void) | |||
100 | EVP_add_digest_alias(SN_ripemd160,"ripemd"); | 100 | EVP_add_digest_alias(SN_ripemd160,"ripemd"); |
101 | EVP_add_digest_alias(SN_ripemd160,"rmd160"); | 101 | EVP_add_digest_alias(SN_ripemd160,"rmd160"); |
102 | #endif | 102 | #endif |
103 | #ifdef OPENSSL_FIPS | ||
104 | #ifndef OPENSSL_NO_SHA256 | ||
105 | EVP_add_digest(EVP_sha224()); | ||
106 | EVP_add_digest(EVP_sha256()); | ||
107 | #endif | ||
108 | #ifndef OPENSSL_NO_SHA512 | ||
109 | EVP_add_digest(EVP_sha384()); | ||
110 | EVP_add_digest(EVP_sha512()); | ||
111 | #endif | ||
112 | #endif | ||
103 | } | 113 | } |
diff --git a/src/lib/libcrypto/evp/m_sha.c b/src/lib/libcrypto/evp/m_sha.c index d1785e5f74..ed54909b16 100644 --- a/src/lib/libcrypto/evp/m_sha.c +++ b/src/lib/libcrypto/evp/m_sha.c | |||
@@ -59,6 +59,9 @@ | |||
59 | #if !defined(OPENSSL_NO_SHA) && !defined(OPENSSL_NO_SHA0) | 59 | #if !defined(OPENSSL_NO_SHA) && !defined(OPENSSL_NO_SHA0) |
60 | #include <stdio.h> | 60 | #include <stdio.h> |
61 | #include "cryptlib.h" | 61 | #include "cryptlib.h" |
62 | /* Including sha.h prior evp.h masks FIPS SHA declarations, but that's | ||
63 | * exactly what we want to achieve here... */ | ||
64 | #include <openssl/sha.h> | ||
62 | #include <openssl/evp.h> | 65 | #include <openssl/evp.h> |
63 | #include "evp_locl.h" | 66 | #include "evp_locl.h" |
64 | #include <openssl/objects.h> | 67 | #include <openssl/objects.h> |
diff --git a/src/lib/libcrypto/hmac/Makefile b/src/lib/libcrypto/hmac/Makefile index f634dab79d..3d53d8240f 100644 --- a/src/lib/libcrypto/hmac/Makefile +++ b/src/lib/libcrypto/hmac/Makefile | |||
@@ -1,5 +1,5 @@ | |||
1 | # | 1 | # |
2 | # SSLeay/crypto/md/Makefile | 2 | # OpenSSL/crypto/md/Makefile |
3 | # | 3 | # |
4 | 4 | ||
5 | DIR= hmac | 5 | DIR= hmac |
diff --git a/src/lib/libcrypto/idea/Makefile b/src/lib/libcrypto/idea/Makefile index f652783027..6b8e530d9d 100644 --- a/src/lib/libcrypto/idea/Makefile +++ b/src/lib/libcrypto/idea/Makefile | |||
@@ -1,5 +1,5 @@ | |||
1 | # | 1 | # |
2 | # SSLeay/crypto/idea/Makefile | 2 | # OpenSSL/crypto/idea/Makefile |
3 | # | 3 | # |
4 | 4 | ||
5 | DIR= idea | 5 | DIR= idea |
@@ -86,7 +86,7 @@ i_ecb.o: ../../include/openssl/opensslv.h i_ecb.c idea_lcl.h | |||
86 | i_ofb64.o: ../../include/openssl/idea.h ../../include/openssl/opensslconf.h | 86 | i_ofb64.o: ../../include/openssl/idea.h ../../include/openssl/opensslconf.h |
87 | i_ofb64.o: i_ofb64.c idea_lcl.h | 87 | i_ofb64.o: i_ofb64.c idea_lcl.h |
88 | i_skey.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h | 88 | i_skey.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h |
89 | i_skey.o: ../../include/openssl/idea.h ../../include/openssl/opensslconf.h | 89 | i_skey.o: ../../include/openssl/fips.h ../../include/openssl/idea.h |
90 | i_skey.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h | 90 | i_skey.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h |
91 | i_skey.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h | 91 | i_skey.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h |
92 | i_skey.o: i_skey.c idea_lcl.h | 92 | i_skey.o: ../../include/openssl/symhacks.h i_skey.c idea_lcl.h |
diff --git a/src/lib/libcrypto/lhash/Makefile b/src/lib/libcrypto/lhash/Makefile index d325a1644d..cdb0e77fad 100644 --- a/src/lib/libcrypto/lhash/Makefile +++ b/src/lib/libcrypto/lhash/Makefile | |||
@@ -1,5 +1,5 @@ | |||
1 | # | 1 | # |
2 | # SSLeay/crypto/lhash/Makefile | 2 | # OpenSSL/crypto/lhash/Makefile |
3 | # | 3 | # |
4 | 4 | ||
5 | DIR= lhash | 5 | DIR= lhash |
diff --git a/src/lib/libcrypto/md2/Makefile b/src/lib/libcrypto/md2/Makefile index 90628511da..9d0351bb2f 100644 --- a/src/lib/libcrypto/md2/Makefile +++ b/src/lib/libcrypto/md2/Makefile | |||
@@ -1,5 +1,5 @@ | |||
1 | # | 1 | # |
2 | # SSLeay/crypto/md/Makefile | 2 | # OpenSSL/crypto/md/Makefile |
3 | # | 3 | # |
4 | 4 | ||
5 | DIR= md2 | 5 | DIR= md2 |
diff --git a/src/lib/libcrypto/md2/md2_one.c b/src/lib/libcrypto/md2/md2_one.c index 835160ef56..8c36ba5779 100644 --- a/src/lib/libcrypto/md2/md2_one.c +++ b/src/lib/libcrypto/md2/md2_one.c | |||
@@ -69,7 +69,8 @@ unsigned char *MD2(const unsigned char *d, unsigned long n, unsigned char *md) | |||
69 | static unsigned char m[MD2_DIGEST_LENGTH]; | 69 | static unsigned char m[MD2_DIGEST_LENGTH]; |
70 | 70 | ||
71 | if (md == NULL) md=m; | 71 | if (md == NULL) md=m; |
72 | MD2_Init(&c); | 72 | if (!MD2_Init(&c)) |
73 | return NULL; | ||
73 | #ifndef CHARSET_EBCDIC | 74 | #ifndef CHARSET_EBCDIC |
74 | MD2_Update(&c,d,n); | 75 | MD2_Update(&c,d,n); |
75 | #else | 76 | #else |
diff --git a/src/lib/libcrypto/md4/Makefile b/src/lib/libcrypto/md4/Makefile index 0b7c8d7ad8..eeb457f20f 100644 --- a/src/lib/libcrypto/md4/Makefile +++ b/src/lib/libcrypto/md4/Makefile | |||
@@ -1,5 +1,5 @@ | |||
1 | # | 1 | # |
2 | # SSLeay/crypto/md4/Makefile | 2 | # OpenSSL/crypto/md4/Makefile |
3 | # | 3 | # |
4 | 4 | ||
5 | DIR= md4 | 5 | DIR= md4 |
diff --git a/src/lib/libcrypto/md5/Makefile b/src/lib/libcrypto/md5/Makefile index 832446fff2..1ed018526f 100644 --- a/src/lib/libcrypto/md5/Makefile +++ b/src/lib/libcrypto/md5/Makefile | |||
@@ -1,5 +1,5 @@ | |||
1 | # | 1 | # |
2 | # SSLeay/crypto/md5/Makefile | 2 | # OpenSSL/crypto/md5/Makefile |
3 | # | 3 | # |
4 | 4 | ||
5 | DIR= md5 | 5 | DIR= md5 |
diff --git a/src/lib/libcrypto/mdc2/Makefile b/src/lib/libcrypto/mdc2/Makefile index 38c785bf95..b8e9a9a4fa 100644 --- a/src/lib/libcrypto/mdc2/Makefile +++ b/src/lib/libcrypto/mdc2/Makefile | |||
@@ -1,5 +1,5 @@ | |||
1 | # | 1 | # |
2 | # SSLeay/crypto/mdc2/Makefile | 2 | # OpenSSL/crypto/mdc2/Makefile |
3 | # | 3 | # |
4 | 4 | ||
5 | DIR= mdc2 | 5 | DIR= mdc2 |
diff --git a/src/lib/libcrypto/objects/Makefile b/src/lib/libcrypto/objects/Makefile index e449147129..23b2a69e6d 100644 --- a/src/lib/libcrypto/objects/Makefile +++ b/src/lib/libcrypto/objects/Makefile | |||
@@ -1,5 +1,5 @@ | |||
1 | # | 1 | # |
2 | # SSLeay/crypto/objects/Makefile | 2 | # OpenSSL/crypto/objects/Makefile |
3 | # | 3 | # |
4 | 4 | ||
5 | DIR= objects | 5 | DIR= objects |
diff --git a/src/lib/libcrypto/objects/obj_dat.h b/src/lib/libcrypto/objects/obj_dat.h index 8785127055..cc22152682 100644 --- a/src/lib/libcrypto/objects/obj_dat.h +++ b/src/lib/libcrypto/objects/obj_dat.h | |||
@@ -62,12 +62,12 @@ | |||
62 | * [including the GNU Public Licence.] | 62 | * [including the GNU Public Licence.] |
63 | */ | 63 | */ |
64 | 64 | ||
65 | #define NUM_NID 668 | 65 | #define NUM_NID 676 |
66 | #define NUM_SN 660 | 66 | #define NUM_SN 669 |
67 | #define NUM_LN 660 | 67 | #define NUM_LN 669 |
68 | #define NUM_OBJ 624 | 68 | #define NUM_OBJ 633 |
69 | 69 | ||
70 | static unsigned char lvalues[4500]={ | 70 | static unsigned char lvalues[4575]={ |
71 | 0x00, /* [ 0] OBJ_undef */ | 71 | 0x00, /* [ 0] OBJ_undef */ |
72 | 0x2A,0x86,0x48,0x86,0xF7,0x0D, /* [ 1] OBJ_rsadsi */ | 72 | 0x2A,0x86,0x48,0x86,0xF7,0x0D, /* [ 1] OBJ_rsadsi */ |
73 | 0x2A,0x86,0x48,0x86,0xF7,0x0D,0x01, /* [ 7] OBJ_pkcs */ | 73 | 0x2A,0x86,0x48,0x86,0xF7,0x0D,0x01, /* [ 7] OBJ_pkcs */ |
@@ -330,9 +330,9 @@ static unsigned char lvalues[4500]={ | |||
330 | 0x2B,0x06,0x01,0x05,0x05,0x07,0x01,0x04, /* [2092] OBJ_ac_auditEntity */ | 330 | 0x2B,0x06,0x01,0x05,0x05,0x07,0x01,0x04, /* [2092] OBJ_ac_auditEntity */ |
331 | 0x2B,0x06,0x01,0x05,0x05,0x07,0x01,0x05, /* [2100] OBJ_ac_targeting */ | 331 | 0x2B,0x06,0x01,0x05,0x05,0x07,0x01,0x05, /* [2100] OBJ_ac_targeting */ |
332 | 0x2B,0x06,0x01,0x05,0x05,0x07,0x01,0x06, /* [2108] OBJ_aaControls */ | 332 | 0x2B,0x06,0x01,0x05,0x05,0x07,0x01,0x06, /* [2108] OBJ_aaControls */ |
333 | 0x2B,0x06,0x01,0x05,0x05,0x07,0x01,0x07, /* [2116] OBJ_sbqp_ipAddrBlock */ | 333 | 0x2B,0x06,0x01,0x05,0x05,0x07,0x01,0x07, /* [2116] OBJ_sbgp_ipAddrBlock */ |
334 | 0x2B,0x06,0x01,0x05,0x05,0x07,0x01,0x08, /* [2124] OBJ_sbqp_autonomousSysNum */ | 334 | 0x2B,0x06,0x01,0x05,0x05,0x07,0x01,0x08, /* [2124] OBJ_sbgp_autonomousSysNum */ |
335 | 0x2B,0x06,0x01,0x05,0x05,0x07,0x01,0x09, /* [2132] OBJ_sbqp_routerIdentifier */ | 335 | 0x2B,0x06,0x01,0x05,0x05,0x07,0x01,0x09, /* [2132] OBJ_sbgp_routerIdentifier */ |
336 | 0x2B,0x06,0x01,0x05,0x05,0x07,0x02,0x03, /* [2140] OBJ_textNotice */ | 336 | 0x2B,0x06,0x01,0x05,0x05,0x07,0x02,0x03, /* [2140] OBJ_textNotice */ |
337 | 0x2B,0x06,0x01,0x05,0x05,0x07,0x03,0x05, /* [2148] OBJ_ipsecEndSystem */ | 337 | 0x2B,0x06,0x01,0x05,0x05,0x07,0x03,0x05, /* [2148] OBJ_ipsecEndSystem */ |
338 | 0x2B,0x06,0x01,0x05,0x05,0x07,0x03,0x06, /* [2156] OBJ_ipsecTunnel */ | 338 | 0x2B,0x06,0x01,0x05,0x05,0x07,0x03,0x06, /* [2156] OBJ_ipsecTunnel */ |
@@ -691,7 +691,16 @@ static unsigned char lvalues[4500]={ | |||
691 | 0x2B,0x06,0x01,0x05,0x05,0x07,0x01,0x0E, /* [4467] OBJ_proxyCertInfo */ | 691 | 0x2B,0x06,0x01,0x05,0x05,0x07,0x01,0x0E, /* [4467] OBJ_proxyCertInfo */ |
692 | 0x2B,0x06,0x01,0x05,0x05,0x07,0x15,0x00, /* [4475] OBJ_id_ppl_anyLanguage */ | 692 | 0x2B,0x06,0x01,0x05,0x05,0x07,0x15,0x00, /* [4475] OBJ_id_ppl_anyLanguage */ |
693 | 0x2B,0x06,0x01,0x05,0x05,0x07,0x15,0x01, /* [4483] OBJ_id_ppl_inheritAll */ | 693 | 0x2B,0x06,0x01,0x05,0x05,0x07,0x15,0x01, /* [4483] OBJ_id_ppl_inheritAll */ |
694 | 0x2B,0x06,0x01,0x05,0x05,0x07,0x15,0x02, /* [4491] OBJ_Independent */ | 694 | 0x55,0x1D,0x1E, /* [4491] OBJ_name_constraints */ |
695 | 0x2B,0x06,0x01,0x05,0x05,0x07,0x15,0x02, /* [4494] OBJ_Independent */ | ||
696 | 0x2A,0x86,0x48,0x86,0xF7,0x0D,0x01,0x01,0x0B,/* [4502] OBJ_sha256WithRSAEncryption */ | ||
697 | 0x2A,0x86,0x48,0x86,0xF7,0x0D,0x01,0x01,0x0C,/* [4511] OBJ_sha384WithRSAEncryption */ | ||
698 | 0x2A,0x86,0x48,0x86,0xF7,0x0D,0x01,0x01,0x0D,/* [4520] OBJ_sha512WithRSAEncryption */ | ||
699 | 0x2A,0x86,0x48,0x86,0xF7,0x0D,0x01,0x01,0x0E,/* [4529] OBJ_sha224WithRSAEncryption */ | ||
700 | 0x60,0x86,0x48,0x01,0x65,0x03,0x04,0x02,0x01,/* [4538] OBJ_sha256 */ | ||
701 | 0x60,0x86,0x48,0x01,0x65,0x03,0x04,0x02,0x02,/* [4547] OBJ_sha384 */ | ||
702 | 0x60,0x86,0x48,0x01,0x65,0x03,0x04,0x02,0x03,/* [4556] OBJ_sha512 */ | ||
703 | 0x60,0x86,0x48,0x01,0x65,0x03,0x04,0x02,0x04,/* [4565] OBJ_sha224 */ | ||
695 | }; | 704 | }; |
696 | 705 | ||
697 | static ASN1_OBJECT nid_objs[NUM_NID]={ | 706 | static ASN1_OBJECT nid_objs[NUM_NID]={ |
@@ -1134,12 +1143,12 @@ static ASN1_OBJECT nid_objs[NUM_NID]={ | |||
1134 | &(lvalues[2092]),0}, | 1143 | &(lvalues[2092]),0}, |
1135 | {"ac-targeting","ac-targeting",NID_ac_targeting,8,&(lvalues[2100]),0}, | 1144 | {"ac-targeting","ac-targeting",NID_ac_targeting,8,&(lvalues[2100]),0}, |
1136 | {"aaControls","aaControls",NID_aaControls,8,&(lvalues[2108]),0}, | 1145 | {"aaControls","aaControls",NID_aaControls,8,&(lvalues[2108]),0}, |
1137 | {"sbqp-ipAddrBlock","sbqp-ipAddrBlock",NID_sbqp_ipAddrBlock,8, | 1146 | {"sbgp-ipAddrBlock","sbgp-ipAddrBlock",NID_sbgp_ipAddrBlock,8, |
1138 | &(lvalues[2116]),0}, | 1147 | &(lvalues[2116]),0}, |
1139 | {"sbqp-autonomousSysNum","sbqp-autonomousSysNum", | 1148 | {"sbgp-autonomousSysNum","sbgp-autonomousSysNum", |
1140 | NID_sbqp_autonomousSysNum,8,&(lvalues[2124]),0}, | 1149 | NID_sbgp_autonomousSysNum,8,&(lvalues[2124]),0}, |
1141 | {"sbqp-routerIdentifier","sbqp-routerIdentifier", | 1150 | {"sbgp-routerIdentifier","sbgp-routerIdentifier", |
1142 | NID_sbqp_routerIdentifier,8,&(lvalues[2132]),0}, | 1151 | NID_sbgp_routerIdentifier,8,&(lvalues[2132]),0}, |
1143 | {"textNotice","textNotice",NID_textNotice,8,&(lvalues[2140]),0}, | 1152 | {"textNotice","textNotice",NID_textNotice,8,&(lvalues[2140]),0}, |
1144 | {"ipsecEndSystem","IPSec End System",NID_ipsecEndSystem,8, | 1153 | {"ipsecEndSystem","IPSec End System",NID_ipsecEndSystem,8, |
1145 | &(lvalues[2148]),0}, | 1154 | &(lvalues[2148]),0}, |
@@ -1754,8 +1763,21 @@ static ASN1_OBJECT nid_objs[NUM_NID]={ | |||
1754 | &(lvalues[4475]),0}, | 1763 | &(lvalues[4475]),0}, |
1755 | {"id-ppl-inheritAll","Inherit all",NID_id_ppl_inheritAll,8, | 1764 | {"id-ppl-inheritAll","Inherit all",NID_id_ppl_inheritAll,8, |
1756 | &(lvalues[4483]),0}, | 1765 | &(lvalues[4483]),0}, |
1757 | {NULL,NULL,NID_undef,0,NULL}, | 1766 | {"nameConstraints","X509v3 Name Constraints",NID_name_constraints,3, |
1758 | {"id-ppl-independent","Independent",NID_Independent,8,&(lvalues[4491]),0}, | 1767 | &(lvalues[4491]),0}, |
1768 | {"id-ppl-independent","Independent",NID_Independent,8,&(lvalues[4494]),0}, | ||
1769 | {"RSA-SHA256","sha256WithRSAEncryption",NID_sha256WithRSAEncryption,9, | ||
1770 | &(lvalues[4502]),0}, | ||
1771 | {"RSA-SHA384","sha384WithRSAEncryption",NID_sha384WithRSAEncryption,9, | ||
1772 | &(lvalues[4511]),0}, | ||
1773 | {"RSA-SHA512","sha512WithRSAEncryption",NID_sha512WithRSAEncryption,9, | ||
1774 | &(lvalues[4520]),0}, | ||
1775 | {"RSA-SHA224","sha224WithRSAEncryption",NID_sha224WithRSAEncryption,9, | ||
1776 | &(lvalues[4529]),0}, | ||
1777 | {"SHA256","sha256",NID_sha256,9,&(lvalues[4538]),0}, | ||
1778 | {"SHA384","sha384",NID_sha384,9,&(lvalues[4547]),0}, | ||
1779 | {"SHA512","sha512",NID_sha512,9,&(lvalues[4556]),0}, | ||
1780 | {"SHA224","sha224",NID_sha224,9,&(lvalues[4565]),0}, | ||
1759 | }; | 1781 | }; |
1760 | 1782 | ||
1761 | static ASN1_OBJECT *sn_objs[NUM_SN]={ | 1783 | static ASN1_OBJECT *sn_objs[NUM_SN]={ |
@@ -1881,8 +1903,16 @@ static ASN1_OBJECT *sn_objs[NUM_SN]={ | |||
1881 | &(nid_objs[42]),/* "RSA-SHA" */ | 1903 | &(nid_objs[42]),/* "RSA-SHA" */ |
1882 | &(nid_objs[65]),/* "RSA-SHA1" */ | 1904 | &(nid_objs[65]),/* "RSA-SHA1" */ |
1883 | &(nid_objs[115]),/* "RSA-SHA1-2" */ | 1905 | &(nid_objs[115]),/* "RSA-SHA1-2" */ |
1906 | &(nid_objs[671]),/* "RSA-SHA224" */ | ||
1907 | &(nid_objs[668]),/* "RSA-SHA256" */ | ||
1908 | &(nid_objs[669]),/* "RSA-SHA384" */ | ||
1909 | &(nid_objs[670]),/* "RSA-SHA512" */ | ||
1884 | &(nid_objs[41]),/* "SHA" */ | 1910 | &(nid_objs[41]),/* "SHA" */ |
1885 | &(nid_objs[64]),/* "SHA1" */ | 1911 | &(nid_objs[64]),/* "SHA1" */ |
1912 | &(nid_objs[675]),/* "SHA224" */ | ||
1913 | &(nid_objs[672]),/* "SHA256" */ | ||
1914 | &(nid_objs[673]),/* "SHA384" */ | ||
1915 | &(nid_objs[674]),/* "SHA512" */ | ||
1886 | &(nid_objs[188]),/* "SMIME" */ | 1916 | &(nid_objs[188]),/* "SMIME" */ |
1887 | &(nid_objs[167]),/* "SMIME-CAPS" */ | 1917 | &(nid_objs[167]),/* "SMIME-CAPS" */ |
1888 | &(nid_objs[100]),/* "SN" */ | 1918 | &(nid_objs[100]),/* "SN" */ |
@@ -2182,6 +2212,7 @@ static ASN1_OBJECT *sn_objs[NUM_SN]={ | |||
2182 | &(nid_objs[649]),/* "msUPN" */ | 2212 | &(nid_objs[649]),/* "msUPN" */ |
2183 | &(nid_objs[481]),/* "nSRecord" */ | 2213 | &(nid_objs[481]),/* "nSRecord" */ |
2184 | &(nid_objs[173]),/* "name" */ | 2214 | &(nid_objs[173]),/* "name" */ |
2215 | &(nid_objs[666]),/* "nameConstraints" */ | ||
2185 | &(nid_objs[369]),/* "noCheck" */ | 2216 | &(nid_objs[369]),/* "noCheck" */ |
2186 | &(nid_objs[403]),/* "noRevAvail" */ | 2217 | &(nid_objs[403]),/* "noRevAvail" */ |
2187 | &(nid_objs[72]),/* "nsBaseUrl" */ | 2218 | &(nid_objs[72]),/* "nsBaseUrl" */ |
@@ -2254,9 +2285,9 @@ static ASN1_OBJECT *sn_objs[NUM_SN]={ | |||
2254 | &(nid_objs[ 1]),/* "rsadsi" */ | 2285 | &(nid_objs[ 1]),/* "rsadsi" */ |
2255 | &(nid_objs[482]),/* "sOARecord" */ | 2286 | &(nid_objs[482]),/* "sOARecord" */ |
2256 | &(nid_objs[155]),/* "safeContentsBag" */ | 2287 | &(nid_objs[155]),/* "safeContentsBag" */ |
2257 | &(nid_objs[291]),/* "sbqp-autonomousSysNum" */ | 2288 | &(nid_objs[291]),/* "sbgp-autonomousSysNum" */ |
2258 | &(nid_objs[290]),/* "sbqp-ipAddrBlock" */ | 2289 | &(nid_objs[290]),/* "sbgp-ipAddrBlock" */ |
2259 | &(nid_objs[292]),/* "sbqp-routerIdentifier" */ | 2290 | &(nid_objs[292]),/* "sbgp-routerIdentifier" */ |
2260 | &(nid_objs[159]),/* "sdsiCertificate" */ | 2291 | &(nid_objs[159]),/* "sdsiCertificate" */ |
2261 | &(nid_objs[154]),/* "secretBag" */ | 2292 | &(nid_objs[154]),/* "secretBag" */ |
2262 | &(nid_objs[474]),/* "secretary" */ | 2293 | &(nid_objs[474]),/* "secretary" */ |
@@ -2517,6 +2548,7 @@ static ASN1_OBJECT *ln_objs[NUM_LN]={ | |||
2517 | &(nid_objs[126]),/* "X509v3 Extended Key Usage" */ | 2548 | &(nid_objs[126]),/* "X509v3 Extended Key Usage" */ |
2518 | &(nid_objs[86]),/* "X509v3 Issuer Alternative Name" */ | 2549 | &(nid_objs[86]),/* "X509v3 Issuer Alternative Name" */ |
2519 | &(nid_objs[83]),/* "X509v3 Key Usage" */ | 2550 | &(nid_objs[83]),/* "X509v3 Key Usage" */ |
2551 | &(nid_objs[666]),/* "X509v3 Name Constraints" */ | ||
2520 | &(nid_objs[403]),/* "X509v3 No Revocation Available" */ | 2552 | &(nid_objs[403]),/* "X509v3 No Revocation Available" */ |
2521 | &(nid_objs[401]),/* "X509v3 Policy Constraints" */ | 2553 | &(nid_objs[401]),/* "X509v3 Policy Constraints" */ |
2522 | &(nid_objs[84]),/* "X509v3 Private Key Usage Period" */ | 2554 | &(nid_objs[84]),/* "X509v3 Private Key Usage Period" */ |
@@ -2930,9 +2962,9 @@ static ASN1_OBJECT *ln_objs[NUM_LN]={ | |||
2930 | &(nid_objs[124]),/* "run length compression" */ | 2962 | &(nid_objs[124]),/* "run length compression" */ |
2931 | &(nid_objs[482]),/* "sOARecord" */ | 2963 | &(nid_objs[482]),/* "sOARecord" */ |
2932 | &(nid_objs[155]),/* "safeContentsBag" */ | 2964 | &(nid_objs[155]),/* "safeContentsBag" */ |
2933 | &(nid_objs[291]),/* "sbqp-autonomousSysNum" */ | 2965 | &(nid_objs[291]),/* "sbgp-autonomousSysNum" */ |
2934 | &(nid_objs[290]),/* "sbqp-ipAddrBlock" */ | 2966 | &(nid_objs[290]),/* "sbgp-ipAddrBlock" */ |
2935 | &(nid_objs[292]),/* "sbqp-routerIdentifier" */ | 2967 | &(nid_objs[292]),/* "sbgp-routerIdentifier" */ |
2936 | &(nid_objs[159]),/* "sdsiCertificate" */ | 2968 | &(nid_objs[159]),/* "sdsiCertificate" */ |
2937 | &(nid_objs[154]),/* "secretBag" */ | 2969 | &(nid_objs[154]),/* "secretBag" */ |
2938 | &(nid_objs[474]),/* "secretary" */ | 2970 | &(nid_objs[474]),/* "secretary" */ |
@@ -3059,6 +3091,14 @@ static ASN1_OBJECT *ln_objs[NUM_LN]={ | |||
3059 | &(nid_objs[64]),/* "sha1" */ | 3091 | &(nid_objs[64]),/* "sha1" */ |
3060 | &(nid_objs[115]),/* "sha1WithRSA" */ | 3092 | &(nid_objs[115]),/* "sha1WithRSA" */ |
3061 | &(nid_objs[65]),/* "sha1WithRSAEncryption" */ | 3093 | &(nid_objs[65]),/* "sha1WithRSAEncryption" */ |
3094 | &(nid_objs[675]),/* "sha224" */ | ||
3095 | &(nid_objs[671]),/* "sha224WithRSAEncryption" */ | ||
3096 | &(nid_objs[672]),/* "sha256" */ | ||
3097 | &(nid_objs[668]),/* "sha256WithRSAEncryption" */ | ||
3098 | &(nid_objs[673]),/* "sha384" */ | ||
3099 | &(nid_objs[669]),/* "sha384WithRSAEncryption" */ | ||
3100 | &(nid_objs[674]),/* "sha512" */ | ||
3101 | &(nid_objs[670]),/* "sha512WithRSAEncryption" */ | ||
3062 | &(nid_objs[42]),/* "shaWithRSAEncryption" */ | 3102 | &(nid_objs[42]),/* "shaWithRSAEncryption" */ |
3063 | &(nid_objs[52]),/* "signingTime" */ | 3103 | &(nid_objs[52]),/* "signingTime" */ |
3064 | &(nid_objs[454]),/* "simpleSecurityObject" */ | 3104 | &(nid_objs[454]),/* "simpleSecurityObject" */ |
@@ -3133,6 +3173,7 @@ static ASN1_OBJECT *obj_objs[NUM_OBJ]={ | |||
3133 | &(nid_objs[430]),/* OBJ_hold_instruction_code 2 5 29 23 */ | 3173 | &(nid_objs[430]),/* OBJ_hold_instruction_code 2 5 29 23 */ |
3134 | &(nid_objs[142]),/* OBJ_invalidity_date 2 5 29 24 */ | 3174 | &(nid_objs[142]),/* OBJ_invalidity_date 2 5 29 24 */ |
3135 | &(nid_objs[140]),/* OBJ_delta_crl 2 5 29 27 */ | 3175 | &(nid_objs[140]),/* OBJ_delta_crl 2 5 29 27 */ |
3176 | &(nid_objs[666]),/* OBJ_name_constraints 2 5 29 30 */ | ||
3136 | &(nid_objs[103]),/* OBJ_crl_distribution_points 2 5 29 31 */ | 3177 | &(nid_objs[103]),/* OBJ_crl_distribution_points 2 5 29 31 */ |
3137 | &(nid_objs[89]),/* OBJ_certificate_policies 2 5 29 32 */ | 3178 | &(nid_objs[89]),/* OBJ_certificate_policies 2 5 29 32 */ |
3138 | &(nid_objs[90]),/* OBJ_authority_key_identifier 2 5 29 35 */ | 3179 | &(nid_objs[90]),/* OBJ_authority_key_identifier 2 5 29 35 */ |
@@ -3383,9 +3424,9 @@ static ASN1_OBJECT *obj_objs[NUM_OBJ]={ | |||
3383 | &(nid_objs[287]),/* OBJ_ac_auditEntity 1 3 6 1 5 5 7 1 4 */ | 3424 | &(nid_objs[287]),/* OBJ_ac_auditEntity 1 3 6 1 5 5 7 1 4 */ |
3384 | &(nid_objs[288]),/* OBJ_ac_targeting 1 3 6 1 5 5 7 1 5 */ | 3425 | &(nid_objs[288]),/* OBJ_ac_targeting 1 3 6 1 5 5 7 1 5 */ |
3385 | &(nid_objs[289]),/* OBJ_aaControls 1 3 6 1 5 5 7 1 6 */ | 3426 | &(nid_objs[289]),/* OBJ_aaControls 1 3 6 1 5 5 7 1 6 */ |
3386 | &(nid_objs[290]),/* OBJ_sbqp_ipAddrBlock 1 3 6 1 5 5 7 1 7 */ | 3427 | &(nid_objs[290]),/* OBJ_sbgp_ipAddrBlock 1 3 6 1 5 5 7 1 7 */ |
3387 | &(nid_objs[291]),/* OBJ_sbqp_autonomousSysNum 1 3 6 1 5 5 7 1 8 */ | 3428 | &(nid_objs[291]),/* OBJ_sbgp_autonomousSysNum 1 3 6 1 5 5 7 1 8 */ |
3388 | &(nid_objs[292]),/* OBJ_sbqp_routerIdentifier 1 3 6 1 5 5 7 1 9 */ | 3429 | &(nid_objs[292]),/* OBJ_sbgp_routerIdentifier 1 3 6 1 5 5 7 1 9 */ |
3389 | &(nid_objs[397]),/* OBJ_ac_proxying 1 3 6 1 5 5 7 1 10 */ | 3430 | &(nid_objs[397]),/* OBJ_ac_proxying 1 3 6 1 5 5 7 1 10 */ |
3390 | &(nid_objs[398]),/* OBJ_sinfo_access 1 3 6 1 5 5 7 1 11 */ | 3431 | &(nid_objs[398]),/* OBJ_sinfo_access 1 3 6 1 5 5 7 1 11 */ |
3391 | &(nid_objs[663]),/* OBJ_proxyCertInfo 1 3 6 1 5 5 7 1 14 */ | 3432 | &(nid_objs[663]),/* OBJ_proxyCertInfo 1 3 6 1 5 5 7 1 14 */ |
@@ -3480,6 +3521,10 @@ static ASN1_OBJECT *obj_objs[NUM_OBJ]={ | |||
3480 | &(nid_objs[ 8]),/* OBJ_md5WithRSAEncryption 1 2 840 113549 1 1 4 */ | 3521 | &(nid_objs[ 8]),/* OBJ_md5WithRSAEncryption 1 2 840 113549 1 1 4 */ |
3481 | &(nid_objs[65]),/* OBJ_sha1WithRSAEncryption 1 2 840 113549 1 1 5 */ | 3522 | &(nid_objs[65]),/* OBJ_sha1WithRSAEncryption 1 2 840 113549 1 1 5 */ |
3482 | &(nid_objs[644]),/* OBJ_rsaOAEPEncryptionSET 1 2 840 113549 1 1 6 */ | 3523 | &(nid_objs[644]),/* OBJ_rsaOAEPEncryptionSET 1 2 840 113549 1 1 6 */ |
3524 | &(nid_objs[668]),/* OBJ_sha256WithRSAEncryption 1 2 840 113549 1 1 11 */ | ||
3525 | &(nid_objs[669]),/* OBJ_sha384WithRSAEncryption 1 2 840 113549 1 1 12 */ | ||
3526 | &(nid_objs[670]),/* OBJ_sha512WithRSAEncryption 1 2 840 113549 1 1 13 */ | ||
3527 | &(nid_objs[671]),/* OBJ_sha224WithRSAEncryption 1 2 840 113549 1 1 14 */ | ||
3483 | &(nid_objs[28]),/* OBJ_dhKeyAgreement 1 2 840 113549 1 3 1 */ | 3528 | &(nid_objs[28]),/* OBJ_dhKeyAgreement 1 2 840 113549 1 3 1 */ |
3484 | &(nid_objs[ 9]),/* OBJ_pbeWithMD2AndDES_CBC 1 2 840 113549 1 5 1 */ | 3529 | &(nid_objs[ 9]),/* OBJ_pbeWithMD2AndDES_CBC 1 2 840 113549 1 5 1 */ |
3485 | &(nid_objs[10]),/* OBJ_pbeWithMD5AndDES_CBC 1 2 840 113549 1 5 3 */ | 3530 | &(nid_objs[10]),/* OBJ_pbeWithMD5AndDES_CBC 1 2 840 113549 1 5 3 */ |
@@ -3544,6 +3589,10 @@ static ASN1_OBJECT *obj_objs[NUM_OBJ]={ | |||
3544 | &(nid_objs[427]),/* OBJ_aes_256_cbc 2 16 840 1 101 3 4 1 42 */ | 3589 | &(nid_objs[427]),/* OBJ_aes_256_cbc 2 16 840 1 101 3 4 1 42 */ |
3545 | &(nid_objs[428]),/* OBJ_aes_256_ofb128 2 16 840 1 101 3 4 1 43 */ | 3590 | &(nid_objs[428]),/* OBJ_aes_256_ofb128 2 16 840 1 101 3 4 1 43 */ |
3546 | &(nid_objs[429]),/* OBJ_aes_256_cfb128 2 16 840 1 101 3 4 1 44 */ | 3591 | &(nid_objs[429]),/* OBJ_aes_256_cfb128 2 16 840 1 101 3 4 1 44 */ |
3592 | &(nid_objs[672]),/* OBJ_sha256 2 16 840 1 101 3 4 2 1 */ | ||
3593 | &(nid_objs[673]),/* OBJ_sha384 2 16 840 1 101 3 4 2 2 */ | ||
3594 | &(nid_objs[674]),/* OBJ_sha512 2 16 840 1 101 3 4 2 3 */ | ||
3595 | &(nid_objs[675]),/* OBJ_sha224 2 16 840 1 101 3 4 2 4 */ | ||
3547 | &(nid_objs[71]),/* OBJ_netscape_cert_type 2 16 840 1 113730 1 1 */ | 3596 | &(nid_objs[71]),/* OBJ_netscape_cert_type 2 16 840 1 113730 1 1 */ |
3548 | &(nid_objs[72]),/* OBJ_netscape_base_url 2 16 840 1 113730 1 2 */ | 3597 | &(nid_objs[72]),/* OBJ_netscape_base_url 2 16 840 1 113730 1 2 */ |
3549 | &(nid_objs[73]),/* OBJ_netscape_revocation_url 2 16 840 1 113730 1 3 */ | 3598 | &(nid_objs[73]),/* OBJ_netscape_revocation_url 2 16 840 1 113730 1 3 */ |
diff --git a/src/lib/libcrypto/objects/obj_mac.h b/src/lib/libcrypto/objects/obj_mac.h index d28894cf41..51bb50047f 100644 --- a/src/lib/libcrypto/objects/obj_mac.h +++ b/src/lib/libcrypto/objects/obj_mac.h | |||
@@ -241,6 +241,26 @@ | |||
241 | #define NID_sha1WithRSAEncryption 65 | 241 | #define NID_sha1WithRSAEncryption 65 |
242 | #define OBJ_sha1WithRSAEncryption OBJ_pkcs1,5L | 242 | #define OBJ_sha1WithRSAEncryption OBJ_pkcs1,5L |
243 | 243 | ||
244 | #define SN_sha256WithRSAEncryption "RSA-SHA256" | ||
245 | #define LN_sha256WithRSAEncryption "sha256WithRSAEncryption" | ||
246 | #define NID_sha256WithRSAEncryption 668 | ||
247 | #define OBJ_sha256WithRSAEncryption OBJ_pkcs1,11L | ||
248 | |||
249 | #define SN_sha384WithRSAEncryption "RSA-SHA384" | ||
250 | #define LN_sha384WithRSAEncryption "sha384WithRSAEncryption" | ||
251 | #define NID_sha384WithRSAEncryption 669 | ||
252 | #define OBJ_sha384WithRSAEncryption OBJ_pkcs1,12L | ||
253 | |||
254 | #define SN_sha512WithRSAEncryption "RSA-SHA512" | ||
255 | #define LN_sha512WithRSAEncryption "sha512WithRSAEncryption" | ||
256 | #define NID_sha512WithRSAEncryption 670 | ||
257 | #define OBJ_sha512WithRSAEncryption OBJ_pkcs1,13L | ||
258 | |||
259 | #define SN_sha224WithRSAEncryption "RSA-SHA224" | ||
260 | #define LN_sha224WithRSAEncryption "sha224WithRSAEncryption" | ||
261 | #define NID_sha224WithRSAEncryption 671 | ||
262 | #define OBJ_sha224WithRSAEncryption OBJ_pkcs1,14L | ||
263 | |||
244 | #define SN_pkcs3 "pkcs3" | 264 | #define SN_pkcs3 "pkcs3" |
245 | #define NID_pkcs3 27 | 265 | #define NID_pkcs3 27 |
246 | #define OBJ_pkcs3 OBJ_pkcs,3L | 266 | #define OBJ_pkcs3 OBJ_pkcs,3L |
@@ -1048,17 +1068,17 @@ | |||
1048 | #define NID_aaControls 289 | 1068 | #define NID_aaControls 289 |
1049 | #define OBJ_aaControls OBJ_id_pe,6L | 1069 | #define OBJ_aaControls OBJ_id_pe,6L |
1050 | 1070 | ||
1051 | #define SN_sbqp_ipAddrBlock "sbqp-ipAddrBlock" | 1071 | #define SN_sbgp_ipAddrBlock "sbgp-ipAddrBlock" |
1052 | #define NID_sbqp_ipAddrBlock 290 | 1072 | #define NID_sbgp_ipAddrBlock 290 |
1053 | #define OBJ_sbqp_ipAddrBlock OBJ_id_pe,7L | 1073 | #define OBJ_sbgp_ipAddrBlock OBJ_id_pe,7L |
1054 | 1074 | ||
1055 | #define SN_sbqp_autonomousSysNum "sbqp-autonomousSysNum" | 1075 | #define SN_sbgp_autonomousSysNum "sbgp-autonomousSysNum" |
1056 | #define NID_sbqp_autonomousSysNum 291 | 1076 | #define NID_sbgp_autonomousSysNum 291 |
1057 | #define OBJ_sbqp_autonomousSysNum OBJ_id_pe,8L | 1077 | #define OBJ_sbgp_autonomousSysNum OBJ_id_pe,8L |
1058 | 1078 | ||
1059 | #define SN_sbqp_routerIdentifier "sbqp-routerIdentifier" | 1079 | #define SN_sbgp_routerIdentifier "sbgp-routerIdentifier" |
1060 | #define NID_sbqp_routerIdentifier 292 | 1080 | #define NID_sbgp_routerIdentifier 292 |
1061 | #define OBJ_sbqp_routerIdentifier OBJ_id_pe,9L | 1081 | #define OBJ_sbgp_routerIdentifier OBJ_id_pe,9L |
1062 | 1082 | ||
1063 | #define SN_ac_proxying "ac-proxying" | 1083 | #define SN_ac_proxying "ac-proxying" |
1064 | #define NID_ac_proxying 397 | 1084 | #define NID_ac_proxying 397 |
@@ -1779,6 +1799,11 @@ | |||
1779 | #define NID_delta_crl 140 | 1799 | #define NID_delta_crl 140 |
1780 | #define OBJ_delta_crl OBJ_id_ce,27L | 1800 | #define OBJ_delta_crl OBJ_id_ce,27L |
1781 | 1801 | ||
1802 | #define SN_name_constraints "nameConstraints" | ||
1803 | #define LN_name_constraints "X509v3 Name Constraints" | ||
1804 | #define NID_name_constraints 666 | ||
1805 | #define OBJ_name_constraints OBJ_id_ce,30L | ||
1806 | |||
1782 | #define SN_crl_distribution_points "crlDistributionPoints" | 1807 | #define SN_crl_distribution_points "crlDistributionPoints" |
1783 | #define LN_crl_distribution_points "X509v3 CRL Distribution Points" | 1808 | #define LN_crl_distribution_points "X509v3 CRL Distribution Points" |
1784 | #define NID_crl_distribution_points 103 | 1809 | #define NID_crl_distribution_points 103 |
@@ -2081,6 +2106,28 @@ | |||
2081 | #define LN_des_ede3_cfb8 "des-ede3-cfb8" | 2106 | #define LN_des_ede3_cfb8 "des-ede3-cfb8" |
2082 | #define NID_des_ede3_cfb8 659 | 2107 | #define NID_des_ede3_cfb8 659 |
2083 | 2108 | ||
2109 | #define OBJ_nist_hashalgs OBJ_nistAlgorithms,2L | ||
2110 | |||
2111 | #define SN_sha256 "SHA256" | ||
2112 | #define LN_sha256 "sha256" | ||
2113 | #define NID_sha256 672 | ||
2114 | #define OBJ_sha256 OBJ_nist_hashalgs,1L | ||
2115 | |||
2116 | #define SN_sha384 "SHA384" | ||
2117 | #define LN_sha384 "sha384" | ||
2118 | #define NID_sha384 673 | ||
2119 | #define OBJ_sha384 OBJ_nist_hashalgs,2L | ||
2120 | |||
2121 | #define SN_sha512 "SHA512" | ||
2122 | #define LN_sha512 "sha512" | ||
2123 | #define NID_sha512 674 | ||
2124 | #define OBJ_sha512 OBJ_nist_hashalgs,3L | ||
2125 | |||
2126 | #define SN_sha224 "SHA224" | ||
2127 | #define LN_sha224 "sha224" | ||
2128 | #define NID_sha224 675 | ||
2129 | #define OBJ_sha224 OBJ_nist_hashalgs,4L | ||
2130 | |||
2084 | #define SN_hold_instruction_code "holdInstructionCode" | 2131 | #define SN_hold_instruction_code "holdInstructionCode" |
2085 | #define LN_hold_instruction_code "Hold Instruction Code" | 2132 | #define LN_hold_instruction_code "Hold Instruction Code" |
2086 | #define NID_hold_instruction_code 430 | 2133 | #define NID_hold_instruction_code 430 |
diff --git a/src/lib/libcrypto/pem/Makefile b/src/lib/libcrypto/pem/Makefile index f3dfea2ac8..fbc2b5d056 100644 --- a/src/lib/libcrypto/pem/Makefile +++ b/src/lib/libcrypto/pem/Makefile | |||
@@ -1,5 +1,5 @@ | |||
1 | # | 1 | # |
2 | # SSLeay/crypto/pem/Makefile | 2 | # OpenSSL/crypto/pem/Makefile |
3 | # | 3 | # |
4 | 4 | ||
5 | DIR= pem | 5 | DIR= pem |
diff --git a/src/lib/libcrypto/perlasm/x86nasm.pl b/src/lib/libcrypto/perlasm/x86nasm.pl index 5009acb4b3..4bdb3fe180 100644 --- a/src/lib/libcrypto/perlasm/x86nasm.pl +++ b/src/lib/libcrypto/perlasm/x86nasm.pl | |||
@@ -221,7 +221,15 @@ sub using486 | |||
221 | 221 | ||
222 | sub main'file | 222 | sub main'file |
223 | { | 223 | { |
224 | push(@out, "segment .text use32\n"); | 224 | local $tmp; |
225 | $tmp=<<___; | ||
226 | %ifdef __omf__ | ||
227 | section code use32 class=code | ||
228 | %else | ||
229 | section .text | ||
230 | %endif | ||
231 | ___ | ||
232 | push(@out,$tmp); | ||
225 | } | 233 | } |
226 | 234 | ||
227 | sub main'function_begin | 235 | sub main'function_begin |
diff --git a/src/lib/libcrypto/pkcs12/Makefile b/src/lib/libcrypto/pkcs12/Makefile index 854b641f7c..bef4f27912 100644 --- a/src/lib/libcrypto/pkcs12/Makefile +++ b/src/lib/libcrypto/pkcs12/Makefile | |||
@@ -1,5 +1,5 @@ | |||
1 | # | 1 | # |
2 | # SSLeay/crypto/pkcs12/Makefile | 2 | # OpenSSL/crypto/pkcs12/Makefile |
3 | # | 3 | # |
4 | 4 | ||
5 | DIR= pkcs12 | 5 | DIR= pkcs12 |
diff --git a/src/lib/libcrypto/pkcs7/Makefile b/src/lib/libcrypto/pkcs7/Makefile index f15c65f690..a213ae2227 100644 --- a/src/lib/libcrypto/pkcs7/Makefile +++ b/src/lib/libcrypto/pkcs7/Makefile | |||
@@ -1,5 +1,5 @@ | |||
1 | # | 1 | # |
2 | # SSLeay/crypto/pkcs7/Makefile | 2 | # OpenSSL/crypto/pkcs7/Makefile |
3 | # | 3 | # |
4 | 4 | ||
5 | DIR= pkcs7 | 5 | DIR= pkcs7 |
diff --git a/src/lib/libcrypto/rand/Makefile b/src/lib/libcrypto/rand/Makefile index 665eaa18e5..b1d1a75f98 100644 --- a/src/lib/libcrypto/rand/Makefile +++ b/src/lib/libcrypto/rand/Makefile | |||
@@ -1,5 +1,5 @@ | |||
1 | # | 1 | # |
2 | # SSLeay/crypto/rand/Makefile | 2 | # OpenSSL/crypto/rand/Makefile |
3 | # | 3 | # |
4 | 4 | ||
5 | DIR= rand | 5 | DIR= rand |
diff --git a/src/lib/libcrypto/rc2/Makefile b/src/lib/libcrypto/rc2/Makefile index 18edaca6c6..34080ab741 100644 --- a/src/lib/libcrypto/rc2/Makefile +++ b/src/lib/libcrypto/rc2/Makefile | |||
@@ -1,5 +1,5 @@ | |||
1 | # | 1 | # |
2 | # SSLeay/crypto/rc2/Makefile | 2 | # OpenSSL/crypto/rc2/Makefile |
3 | # | 3 | # |
4 | 4 | ||
5 | DIR= rc2 | 5 | DIR= rc2 |
@@ -82,7 +82,7 @@ rc2_cbc.o: rc2_cbc.c rc2_locl.h | |||
82 | rc2_ecb.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h | 82 | rc2_ecb.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h |
83 | rc2_ecb.o: ../../include/openssl/rc2.h rc2_ecb.c rc2_locl.h | 83 | rc2_ecb.o: ../../include/openssl/rc2.h rc2_ecb.c rc2_locl.h |
84 | rc2_skey.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h | 84 | rc2_skey.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h |
85 | rc2_skey.o: ../../include/openssl/opensslconf.h | 85 | rc2_skey.o: ../../include/openssl/fips.h ../../include/openssl/opensslconf.h |
86 | rc2_skey.o: ../../include/openssl/opensslv.h ../../include/openssl/rc2.h | 86 | rc2_skey.o: ../../include/openssl/opensslv.h ../../include/openssl/rc2.h |
87 | rc2_skey.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h | 87 | rc2_skey.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h |
88 | rc2_skey.o: ../../include/openssl/symhacks.h rc2_locl.h rc2_skey.c | 88 | rc2_skey.o: ../../include/openssl/symhacks.h rc2_locl.h rc2_skey.c |
diff --git a/src/lib/libcrypto/rc2/rc2speed.c b/src/lib/libcrypto/rc2/rc2speed.c index 47d34b444e..4d0e1242ea 100644 --- a/src/lib/libcrypto/rc2/rc2speed.c +++ b/src/lib/libcrypto/rc2/rc2speed.c | |||
@@ -102,10 +102,10 @@ OPENSSL_DECLARE_EXIT | |||
102 | #ifndef HZ | 102 | #ifndef HZ |
103 | #ifndef CLK_TCK | 103 | #ifndef CLK_TCK |
104 | #define HZ 100.0 | 104 | #define HZ 100.0 |
105 | #endif | 105 | #else /* CLK_TCK */ |
106 | #else /* CLK_TCK */ | ||
107 | #define HZ ((double)CLK_TCK) | 106 | #define HZ ((double)CLK_TCK) |
108 | #endif | 107 | #endif /* CLK_TCK */ |
108 | #endif /* HZ */ | ||
109 | 109 | ||
110 | #define BUFSIZE ((long)1024) | 110 | #define BUFSIZE ((long)1024) |
111 | long run=0; | 111 | long run=0; |
diff --git a/src/lib/libcrypto/rc4/Makefile b/src/lib/libcrypto/rc4/Makefile index 64e06924f4..20d078ec87 100644 --- a/src/lib/libcrypto/rc4/Makefile +++ b/src/lib/libcrypto/rc4/Makefile | |||
@@ -1,5 +1,5 @@ | |||
1 | # | 1 | # |
2 | # SSLeay/crypto/rc4/Makefile | 2 | # OpenSSL/crypto/rc4/Makefile |
3 | # | 3 | # |
4 | 4 | ||
5 | DIR= rc4 | 5 | DIR= rc4 |
@@ -66,10 +66,14 @@ asm/rx86bsdi.o: asm/rx86unix.cpp | |||
66 | asm/rx86unix.cpp: asm/rc4-586.pl ../perlasm/x86asm.pl | 66 | asm/rx86unix.cpp: asm/rc4-586.pl ../perlasm/x86asm.pl |
67 | (cd asm; $(PERL) rc4-586.pl cpp >rx86unix.cpp) | 67 | (cd asm; $(PERL) rc4-586.pl cpp >rx86unix.cpp) |
68 | 68 | ||
69 | asm/rc4-amd64.s: asm/rc4-amd64.pl; $(PERL) asm/rc4-amd64.pl $@ | 69 | asm/rc4-x86_64.s: asm/rc4-x86_64.pl; $(PERL) asm/rc4-x86_64.pl $@ |
70 | 70 | ||
71 | asm/rc4-ia64.s: asm/rc4-ia64.S | 71 | asm/rc4-ia64.s: asm/rc4-ia64.S |
72 | $(CC) $(CFLAGS) -E asm/rc4-ia64.S > $@ | 72 | @case `awk '/^#define RC4_INT/{print$$NF}' $(TOP)/include/openssl/opensslconf.h` in \ |
73 | int) set -x; $(CC) $(CFLAGS) -DSZ=4 -E asm/rc4-ia64.S > $@ ;; \ | ||
74 | char) set -x; $(CC) $(CFLAGS) -DSZ=1 -E asm/rc4-ia64.S > $@ ;; \ | ||
75 | *) exit 1 ;; \ | ||
76 | esac | ||
73 | 77 | ||
74 | files: | 78 | files: |
75 | $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO | 79 | $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO |
@@ -116,7 +120,8 @@ rc4_enc.o: ../../include/openssl/symhacks.h ../cryptlib.h rc4_enc.c rc4_locl.h | |||
116 | rc4_skey.o: ../../e_os.h ../../include/openssl/bio.h | 120 | rc4_skey.o: ../../e_os.h ../../include/openssl/bio.h |
117 | rc4_skey.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h | 121 | rc4_skey.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h |
118 | rc4_skey.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h | 122 | rc4_skey.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h |
119 | rc4_skey.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h | 123 | rc4_skey.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h |
124 | rc4_skey.o: ../../include/openssl/opensslconf.h | ||
120 | rc4_skey.o: ../../include/openssl/opensslv.h ../../include/openssl/rc4.h | 125 | rc4_skey.o: ../../include/openssl/opensslv.h ../../include/openssl/rc4.h |
121 | rc4_skey.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h | 126 | rc4_skey.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h |
122 | rc4_skey.o: ../../include/openssl/symhacks.h ../cryptlib.h rc4_locl.h | 127 | rc4_skey.o: ../../include/openssl/symhacks.h ../cryptlib.h rc4_locl.h |
diff --git a/src/lib/libcrypto/rc4/asm/rc4-ia64.S b/src/lib/libcrypto/rc4/asm/rc4-ia64.S index b517d2e88f..a322d0c718 100644 --- a/src/lib/libcrypto/rc4/asm/rc4-ia64.S +++ b/src/lib/libcrypto/rc4/asm/rc4-ia64.S | |||
@@ -7,7 +7,7 @@ | |||
7 | // disclaimed. | 7 | // disclaimed. |
8 | // ==================================================================== | 8 | // ==================================================================== |
9 | 9 | ||
10 | .ident "rc4-ia64.S, Version 1.1" | 10 | .ident "rc4-ia64.S, Version 2.0" |
11 | .ident "IA-64 ISA artwork by Andy Polyakov <appro@fy.chalmers.se>" | 11 | .ident "IA-64 ISA artwork by Andy Polyakov <appro@fy.chalmers.se>" |
12 | 12 | ||
13 | // What's wrong with compiler generated code? Because of the nature of | 13 | // What's wrong with compiler generated code? Because of the nature of |
@@ -27,17 +27,10 @@ | |||
27 | // Legitimate "collisions" do occur within every 256^2 bytes window. | 27 | // Legitimate "collisions" do occur within every 256^2 bytes window. |
28 | // Fortunately there're enough free instruction slots to keep prior | 28 | // Fortunately there're enough free instruction slots to keep prior |
29 | // reference to key[x+1], detect "collision" and compensate for it. | 29 | // reference to key[x+1], detect "collision" and compensate for it. |
30 | // All this without sacrificing a single clock cycle:-) | 30 | // All this without sacrificing a single clock cycle:-) Throughput is |
31 | // Furthermore. In order to compress loop body to the minimum, I chose | 31 | // ~210MBps on 900MHz CPU, which is is >3x faster than gcc generated |
32 | // to deploy deposit instruction, which substitutes for the whole | 32 | // code and +30% - if compared to HP-UX C. Unrolling loop below should |
33 | // key->data+((x&255)<<log2(sizeof(key->data[0]))). This unfortunately | 33 | // give >30% on top of that... |
34 | // requires key->data to be aligned at sizeof(key->data) boundary. | ||
35 | // This is why you'll find "RC4_INT pad[512-256-2];" addenum to RC4_KEY | ||
36 | // and "d=(RC4_INT *)(((size_t)(d+255))&~(sizeof(key->data)-1));" in | ||
37 | // rc4_skey.c [and rc4_enc.c, where it's retained for debugging | ||
38 | // purposes]. Throughput is ~210MBps on 900MHz CPU, which is is >3x | ||
39 | // faster than gcc generated code and +30% - if compared to HP-UX C. | ||
40 | // Unrolling loop below should give >30% on top of that... | ||
41 | 34 | ||
42 | .text | 35 | .text |
43 | .explicit | 36 | .explicit |
@@ -48,7 +41,9 @@ | |||
48 | # define ADDP add | 41 | # define ADDP add |
49 | #endif | 42 | #endif |
50 | 43 | ||
44 | #ifndef SZ | ||
51 | #define SZ 4 // this is set to sizeof(RC4_INT) | 45 | #define SZ 4 // this is set to sizeof(RC4_INT) |
46 | #endif | ||
52 | // SZ==4 seems to be optimal. At least SZ==8 is not any faster, not for | 47 | // SZ==4 seems to be optimal. At least SZ==8 is not any faster, not for |
53 | // assembler implementation, while SZ==1 code is ~30% slower. | 48 | // assembler implementation, while SZ==1 code is ~30% slower. |
54 | #if SZ==1 // RC4_INT is unsigned char | 49 | #if SZ==1 // RC4_INT is unsigned char |
@@ -101,45 +96,53 @@ RC4: | |||
101 | ADDP out=0,in3 | 96 | ADDP out=0,in3 |
102 | brp.loop.imp .Ltop,.Lexit-16 };; | 97 | brp.loop.imp .Ltop,.Lexit-16 };; |
103 | { .mmi; LDKEY yy=[key] // load key->y | 98 | { .mmi; LDKEY yy=[key] // load key->y |
104 | add ksch=(255+1)*SZ,key // as ksch will be used with | 99 | add ksch=SZ,key |
105 | // deposit instruction only, | ||
106 | // I don't have to &~255... | ||
107 | mov ar.lc=in1 } | 100 | mov ar.lc=in1 } |
108 | { .mmi; mov key_y[1]=r0 // guarantee inequality | 101 | { .mmi; mov key_y[1]=r0 // guarantee inequality |
109 | // in first iteration | 102 | // in first iteration |
110 | add xx=1,xx | 103 | add xx=1,xx |
111 | mov pr.rot=1<<16 };; | 104 | mov pr.rot=1<<16 };; |
112 | { .mii; nop.m 0 | 105 | { .mii; nop.m 0 |
113 | dep key_x[1]=xx,ksch,OFF,8 | 106 | dep key_x[1]=xx,r0,OFF,8 |
114 | mov ar.ec=3 };; // note that epilogue counter | 107 | mov ar.ec=3 };; // note that epilogue counter |
115 | // is off by 1. I compensate | 108 | // is off by 1. I compensate |
116 | // for this at exit... | 109 | // for this at exit... |
117 | .Ltop: | 110 | .Ltop: |
118 | // The loop is scheduled for 3*(n+2) spin-rate on Itanium 2, which | 111 | // The loop is scheduled for 4*(n+2) spin-rate on Itanium 2, which |
119 | // theoretically gives asymptotic performance of clock frequency | 112 | // theoretically gives asymptotic performance of clock frequency |
120 | // divided by 3 bytes per seconds, or 500MBps on 1.5GHz CPU. Measured | 113 | // divided by 4 bytes per seconds, or 400MBps on 1.6GHz CPU. This is |
121 | // performance however is distinctly lower than 1/4:-( The culplrit | 114 | // for sizeof(RC4_INT)==4. For smaller RC4_INT STKEY inadvertently |
122 | // seems to be *(out++)=dat, which inadvertently splits the bundle, | 115 | // splits the last bundle and you end up with 5*n spin-rate:-( |
123 | // even though there is M-port available... Unrolling is due... | 116 | // Originally the loop was scheduled for 3*n and relied on key |
124 | // Unrolled loop should collect output with variable shift instruction | 117 | // schedule to be aligned at 256*sizeof(RC4_INT) boundary. But |
125 | // in order to avoid starvation for integer shifter... It should be | 118 | // *(out++)=dat, which maps to st1, had same effect [inadvertent |
126 | // possible to get pretty close to theoretical peak... | 119 | // bundle split] and holded the loop back. Rescheduling for 4*n |
127 | { .mmi; (p16) LDKEY tx[0]=[key_x[1]] // tx=key[xx] | 120 | // made it possible to eliminate dependence on specific alignment |
128 | (p17) LDKEY ty[0]=[key_y[1]] // ty=key[yy] | 121 | // and allow OpenSSH keep "abusing" our API. Reaching for 3*n would |
129 | (p18) dep rnd[1]=rnd[1],ksch,OFF,8} // &key[(tx+ty)&255] | 122 | // require unrolling, sticking to variable shift instruction for |
123 | // collecting output [to avoid starvation for integer shifter] and | ||
124 | // copying of key schedule to controlled place in stack [so that | ||
125 | // deposit instruction can serve as substitute for whole | ||
126 | // key->data+((x&255)<<log2(sizeof(key->data[0])))]... | ||
130 | { .mmi; (p19) st1 [out]=dat[3],1 // *(out++)=dat | 127 | { .mmi; (p19) st1 [out]=dat[3],1 // *(out++)=dat |
131 | (p16) add xx=1,xx // x++ | 128 | (p16) add xx=1,xx // x++ |
132 | (p16) cmp.ne.unc p20,p21=key_x[1],key_y[1] };; | 129 | (p18) dep rnd[1]=rnd[1],r0,OFF,8 } // ((tx+ty)&255)<<OFF |
130 | { .mmi; (p16) add key_x[1]=ksch,key_x[1] // &key[xx&255] | ||
131 | (p17) add key_y[1]=ksch,key_y[1] };; // &key[yy&255] | ||
132 | { .mmi; (p16) LDKEY tx[0]=[key_x[1]] // tx=key[xx] | ||
133 | (p17) LDKEY ty[0]=[key_y[1]] // ty=key[yy] | ||
134 | (p16) dep key_x[0]=xx,r0,OFF,8 } // (xx&255)<<OFF | ||
135 | { .mmi; (p18) add rnd[1]=ksch,rnd[1] // &key[(tx+ty)&255] | ||
136 | (p16) cmp.ne.unc p20,p21=key_x[1],key_y[1] };; | ||
133 | { .mmi; (p18) LDKEY rnd[1]=[rnd[1]] // rnd=key[(tx+ty)&255] | 137 | { .mmi; (p18) LDKEY rnd[1]=[rnd[1]] // rnd=key[(tx+ty)&255] |
134 | (p16) ld1 dat[0]=[inp],1 // dat=*(inp++) | 138 | (p16) ld1 dat[0]=[inp],1 } // dat=*(inp++) |
135 | (p16) dep key_x[0]=xx,ksch,OFF,8 } // &key[xx&255] | ||
136 | .pred.rel "mutex",p20,p21 | 139 | .pred.rel "mutex",p20,p21 |
137 | { .mmi; (p21) add yy=yy,tx[1] // (p16) | 140 | { .mmi; (p21) add yy=yy,tx[1] // (p16) |
138 | (p20) add yy=yy,tx[0] // (p16) y+=tx | 141 | (p20) add yy=yy,tx[0] // (p16) y+=tx |
139 | (p21) mov tx[0]=tx[1] };; // (p16) | 142 | (p21) mov tx[0]=tx[1] };; // (p16) |
140 | { .mmi; (p17) STKEY [key_y[1]]=tx[1] // key[yy]=tx | 143 | { .mmi; (p17) STKEY [key_y[1]]=tx[1] // key[yy]=tx |
141 | (p17) STKEY [key_x[2]]=ty[0] // key[xx]=ty | 144 | (p17) STKEY [key_x[2]]=ty[0] // key[xx]=ty |
142 | (p16) dep key_y[0]=yy,ksch,OFF,8 } // &key[yy&255] | 145 | (p16) dep key_y[0]=yy,r0,OFF,8 } // &key[yy&255] |
143 | { .mmb; (p17) add rnd[0]=tx[1],ty[0] // tx+=ty | 146 | { .mmb; (p17) add rnd[0]=tx[1],ty[0] // tx+=ty |
144 | (p18) xor dat[2]=dat[2],rnd[1] // dat^=rnd | 147 | (p18) xor dat[2]=dat[2],rnd[1] // dat^=rnd |
145 | br.ctop.sptk .Ltop };; | 148 | br.ctop.sptk .Ltop };; |
diff --git a/src/lib/libcrypto/rc5/Makefile b/src/lib/libcrypto/rc5/Makefile index 3a8d309b29..16e6a60017 100644 --- a/src/lib/libcrypto/rc5/Makefile +++ b/src/lib/libcrypto/rc5/Makefile | |||
@@ -1,5 +1,5 @@ | |||
1 | # | 1 | # |
2 | # SSLeay/crypto/rc5/Makefile | 2 | # OpenSSL/crypto/rc5/Makefile |
3 | # | 3 | # |
4 | 4 | ||
5 | DIR= rc5 | 5 | DIR= rc5 |
@@ -102,7 +102,7 @@ rc5_ecb.o: ../../include/openssl/opensslv.h ../../include/openssl/rc5.h | |||
102 | rc5_ecb.o: rc5_ecb.c rc5_locl.h | 102 | rc5_ecb.o: rc5_ecb.c rc5_locl.h |
103 | rc5_enc.o: ../../include/openssl/rc5.h rc5_enc.c rc5_locl.h | 103 | rc5_enc.o: ../../include/openssl/rc5.h rc5_enc.c rc5_locl.h |
104 | rc5_skey.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h | 104 | rc5_skey.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h |
105 | rc5_skey.o: ../../include/openssl/opensslconf.h | 105 | rc5_skey.o: ../../include/openssl/fips.h ../../include/openssl/opensslconf.h |
106 | rc5_skey.o: ../../include/openssl/opensslv.h ../../include/openssl/rc5.h | 106 | rc5_skey.o: ../../include/openssl/opensslv.h ../../include/openssl/rc5.h |
107 | rc5_skey.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h | 107 | rc5_skey.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h |
108 | rc5_skey.o: ../../include/openssl/symhacks.h rc5_locl.h rc5_skey.c | 108 | rc5_skey.o: ../../include/openssl/symhacks.h rc5_locl.h rc5_skey.c |
diff --git a/src/lib/libcrypto/ripemd/Makefile b/src/lib/libcrypto/ripemd/Makefile index dc086e3434..20c8b4d8db 100644 --- a/src/lib/libcrypto/ripemd/Makefile +++ b/src/lib/libcrypto/ripemd/Makefile | |||
@@ -1,5 +1,5 @@ | |||
1 | # | 1 | # |
2 | # SSLeay/crypto/ripemd/Makefile | 2 | # OpenSSL/crypto/ripemd/Makefile |
3 | # | 3 | # |
4 | 4 | ||
5 | DIR= ripemd | 5 | DIR= ripemd |
diff --git a/src/lib/libcrypto/rsa/Makefile b/src/lib/libcrypto/rsa/Makefile index 5748b0d3d0..8851825250 100644 --- a/src/lib/libcrypto/rsa/Makefile +++ b/src/lib/libcrypto/rsa/Makefile | |||
@@ -1,5 +1,5 @@ | |||
1 | # | 1 | # |
2 | # SSLeay/crypto/rsa/Makefile | 2 | # OpenSSL/crypto/rsa/Makefile |
3 | # | 3 | # |
4 | 4 | ||
5 | DIR= rsa | 5 | DIR= rsa |
@@ -24,10 +24,10 @@ APPS= | |||
24 | LIB=$(TOP)/libcrypto.a | 24 | LIB=$(TOP)/libcrypto.a |
25 | LIBSRC= rsa_eay.c rsa_gen.c rsa_lib.c rsa_sign.c rsa_saos.c rsa_err.c \ | 25 | LIBSRC= rsa_eay.c rsa_gen.c rsa_lib.c rsa_sign.c rsa_saos.c rsa_err.c \ |
26 | rsa_pk1.c rsa_ssl.c rsa_none.c rsa_oaep.c rsa_chk.c rsa_null.c \ | 26 | rsa_pk1.c rsa_ssl.c rsa_none.c rsa_oaep.c rsa_chk.c rsa_null.c \ |
27 | rsa_asn1.c | 27 | rsa_pss.c rsa_x931.c rsa_asn1.c |
28 | LIBOBJ= rsa_eay.o rsa_gen.o rsa_lib.o rsa_sign.o rsa_saos.o rsa_err.o \ | 28 | LIBOBJ= rsa_eay.o rsa_gen.o rsa_lib.o rsa_sign.o rsa_saos.o rsa_err.o \ |
29 | rsa_pk1.o rsa_ssl.o rsa_none.o rsa_oaep.o rsa_chk.o rsa_null.o \ | 29 | rsa_pk1.o rsa_ssl.o rsa_none.o rsa_oaep.o rsa_chk.o rsa_null.o \ |
30 | rsa_asn1.o | 30 | rsa_pss.o rsa_x931.o rsa_asn1.o |
31 | 31 | ||
32 | SRC= $(LIBSRC) | 32 | SRC= $(LIBSRC) |
33 | 33 | ||
@@ -184,6 +184,26 @@ rsa_pk1.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h | |||
184 | rsa_pk1.o: ../../include/openssl/rand.h ../../include/openssl/rsa.h | 184 | rsa_pk1.o: ../../include/openssl/rand.h ../../include/openssl/rsa.h |
185 | rsa_pk1.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h | 185 | rsa_pk1.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h |
186 | rsa_pk1.o: ../../include/openssl/symhacks.h ../cryptlib.h rsa_pk1.c | 186 | rsa_pk1.o: ../../include/openssl/symhacks.h ../cryptlib.h rsa_pk1.c |
187 | rsa_pss.o: ../../e_os.h ../../include/openssl/aes.h | ||
188 | rsa_pss.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h | ||
189 | rsa_pss.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h | ||
190 | rsa_pss.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h | ||
191 | rsa_pss.o: ../../include/openssl/crypto.h ../../include/openssl/des.h | ||
192 | rsa_pss.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h | ||
193 | rsa_pss.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h | ||
194 | rsa_pss.o: ../../include/openssl/err.h ../../include/openssl/evp.h | ||
195 | rsa_pss.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h | ||
196 | rsa_pss.o: ../../include/openssl/md2.h ../../include/openssl/md4.h | ||
197 | rsa_pss.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h | ||
198 | rsa_pss.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h | ||
199 | rsa_pss.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h | ||
200 | rsa_pss.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rand.h | ||
201 | rsa_pss.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h | ||
202 | rsa_pss.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h | ||
203 | rsa_pss.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h | ||
204 | rsa_pss.o: ../../include/openssl/sha.h ../../include/openssl/stack.h | ||
205 | rsa_pss.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h | ||
206 | rsa_pss.o: ../../include/openssl/ui_compat.h ../cryptlib.h rsa_pss.c | ||
187 | rsa_saos.o: ../../e_os.h ../../include/openssl/aes.h | 207 | rsa_saos.o: ../../e_os.h ../../include/openssl/aes.h |
188 | rsa_saos.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h | 208 | rsa_saos.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h |
189 | rsa_saos.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h | 209 | rsa_saos.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h |
@@ -237,3 +257,13 @@ rsa_ssl.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h | |||
237 | rsa_ssl.o: ../../include/openssl/rand.h ../../include/openssl/rsa.h | 257 | rsa_ssl.o: ../../include/openssl/rand.h ../../include/openssl/rsa.h |
238 | rsa_ssl.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h | 258 | rsa_ssl.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h |
239 | rsa_ssl.o: ../../include/openssl/symhacks.h ../cryptlib.h rsa_ssl.c | 259 | rsa_ssl.o: ../../include/openssl/symhacks.h ../cryptlib.h rsa_ssl.c |
260 | rsa_x931.o: ../../e_os.h ../../include/openssl/asn1.h | ||
261 | rsa_x931.o: ../../include/openssl/bio.h ../../include/openssl/bn.h | ||
262 | rsa_x931.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h | ||
263 | rsa_x931.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h | ||
264 | rsa_x931.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h | ||
265 | rsa_x931.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h | ||
266 | rsa_x931.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h | ||
267 | rsa_x931.o: ../../include/openssl/rand.h ../../include/openssl/rsa.h | ||
268 | rsa_x931.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h | ||
269 | rsa_x931.o: ../../include/openssl/symhacks.h ../cryptlib.h rsa_x931.c | ||
diff --git a/src/lib/libcrypto/rsa/rsa_test.c b/src/lib/libcrypto/rsa/rsa_test.c index 924e9ad1f6..218bb2a39b 100644 --- a/src/lib/libcrypto/rsa/rsa_test.c +++ b/src/lib/libcrypto/rsa/rsa_test.c | |||
@@ -227,10 +227,10 @@ int main(int argc, char *argv[]) | |||
227 | 227 | ||
228 | plen = sizeof(ptext_ex) - 1; | 228 | plen = sizeof(ptext_ex) - 1; |
229 | 229 | ||
230 | for (v = 0; v < 3; v++) | 230 | for (v = 0; v < 6; v++) |
231 | { | 231 | { |
232 | key = RSA_new(); | 232 | key = RSA_new(); |
233 | switch (v) { | 233 | switch (v%3) { |
234 | case 0: | 234 | case 0: |
235 | clen = key1(key, ctext_ex); | 235 | clen = key1(key, ctext_ex); |
236 | break; | 236 | break; |
@@ -241,6 +241,7 @@ int main(int argc, char *argv[]) | |||
241 | clen = key3(key, ctext_ex); | 241 | clen = key3(key, ctext_ex); |
242 | break; | 242 | break; |
243 | } | 243 | } |
244 | if (v/3 > 1) key->flags |= RSA_FLAG_NO_EXP_CONSTTIME; | ||
244 | 245 | ||
245 | num = RSA_public_encrypt(plen, ptext_ex, ctext, key, | 246 | num = RSA_public_encrypt(plen, ptext_ex, ctext, key, |
246 | RSA_PKCS1_PADDING); | 247 | RSA_PKCS1_PADDING); |
diff --git a/src/lib/libcrypto/sha/Makefile b/src/lib/libcrypto/sha/Makefile index 0426786aa0..46103bbc83 100644 --- a/src/lib/libcrypto/sha/Makefile +++ b/src/lib/libcrypto/sha/Makefile | |||
@@ -1,5 +1,5 @@ | |||
1 | # | 1 | # |
2 | # SSLeay/crypto/sha/Makefile | 2 | # OpenSSL/crypto/sha/Makefile |
3 | # | 3 | # |
4 | 4 | ||
5 | DIR= sha | 5 | DIR= sha |
diff --git a/src/lib/libcrypto/sha/sha_one.c b/src/lib/libcrypto/sha/sha_one.c index e61c63f3e9..d4f4d344df 100644 --- a/src/lib/libcrypto/sha/sha_one.c +++ b/src/lib/libcrypto/sha/sha_one.c | |||
@@ -68,7 +68,8 @@ unsigned char *SHA(const unsigned char *d, unsigned long n, unsigned char *md) | |||
68 | static unsigned char m[SHA_DIGEST_LENGTH]; | 68 | static unsigned char m[SHA_DIGEST_LENGTH]; |
69 | 69 | ||
70 | if (md == NULL) md=m; | 70 | if (md == NULL) md=m; |
71 | SHA_Init(&c); | 71 | if (!SHA_Init(&c)) |
72 | return NULL; | ||
72 | SHA_Update(&c,d,n); | 73 | SHA_Update(&c,d,n); |
73 | SHA_Final(md,&c); | 74 | SHA_Final(md,&c); |
74 | OPENSSL_cleanse(&c,sizeof(c)); | 75 | OPENSSL_cleanse(&c,sizeof(c)); |
diff --git a/src/lib/libcrypto/stack/Makefile b/src/lib/libcrypto/stack/Makefile index 4d5199a000..711b16832a 100644 --- a/src/lib/libcrypto/stack/Makefile +++ b/src/lib/libcrypto/stack/Makefile | |||
@@ -1,5 +1,5 @@ | |||
1 | # | 1 | # |
2 | # SSLeay/crypto/stack/Makefile | 2 | # OpenSSL/crypto/stack/Makefile |
3 | # | 3 | # |
4 | 4 | ||
5 | DIR= stack | 5 | DIR= stack |
diff --git a/src/lib/libcrypto/txt_db/Makefile b/src/lib/libcrypto/txt_db/Makefile index f91a08f006..3cb550a795 100644 --- a/src/lib/libcrypto/txt_db/Makefile +++ b/src/lib/libcrypto/txt_db/Makefile | |||
@@ -1,5 +1,5 @@ | |||
1 | # | 1 | # |
2 | # SSLeay/crypto/txt_db/Makefile | 2 | # OpenSSL/crypto/txt_db/Makefile |
3 | # | 3 | # |
4 | 4 | ||
5 | DIR= txt_db | 5 | DIR= txt_db |
diff --git a/src/lib/libcrypto/util/checkhash.pl b/src/lib/libcrypto/util/checkhash.pl new file mode 100644 index 0000000000..c61fa72178 --- /dev/null +++ b/src/lib/libcrypto/util/checkhash.pl | |||
@@ -0,0 +1,222 @@ | |||
1 | #!/usr/bin/env perl -w | ||
2 | |||
3 | my $package = caller; | ||
4 | |||
5 | if (!(defined $package)) | ||
6 | { | ||
7 | my $retval = check_hashes(@ARGV); | ||
8 | exit $retval; | ||
9 | } | ||
10 | |||
11 | 1; | ||
12 | |||
13 | sub check_hashes | ||
14 | { | ||
15 | |||
16 | my @args = @_; | ||
17 | |||
18 | my $change_dir = ""; | ||
19 | my $check_program = "sha/fips_standalone_sha1"; | ||
20 | |||
21 | my $verbose = 0; | ||
22 | my $badfiles = 0; | ||
23 | my $rebuild = 0; | ||
24 | my $force_rewrite = 0; | ||
25 | my $hash_file = "fipshashes.c"; | ||
26 | my $recurse = 0; | ||
27 | |||
28 | my @fingerprint_files; | ||
29 | |||
30 | while (@args) | ||
31 | { | ||
32 | my $arg = $args[0]; | ||
33 | if ($arg eq "-chdir") | ||
34 | { | ||
35 | shift @args; | ||
36 | $change_dir = shift @args; | ||
37 | } | ||
38 | elsif ($arg eq "-rebuild") | ||
39 | { | ||
40 | shift @args; | ||
41 | $rebuild = 1; | ||
42 | } | ||
43 | elsif ($arg eq "-verbose") | ||
44 | { | ||
45 | shift @args; | ||
46 | $verbose = 1; | ||
47 | } | ||
48 | elsif ($arg eq "-force-rewrite") | ||
49 | { | ||
50 | shift @args; | ||
51 | $force_rewrite = 1; | ||
52 | } | ||
53 | elsif ($arg eq "-hash_file") | ||
54 | { | ||
55 | shift @args; | ||
56 | $hash_file = shift @args; | ||
57 | } | ||
58 | elsif ($arg eq "-recurse") | ||
59 | { | ||
60 | shift @args; | ||
61 | $recurse = 1; | ||
62 | } | ||
63 | elsif ($arg eq "-program_path") | ||
64 | { | ||
65 | shift @args; | ||
66 | $check_program = shift @args; | ||
67 | } | ||
68 | else | ||
69 | { | ||
70 | print STDERR "Unknown Option $arg"; | ||
71 | return 1; | ||
72 | } | ||
73 | |||
74 | } | ||
75 | |||
76 | chdir $change_dir if $change_dir ne ""; | ||
77 | |||
78 | if ($recurse) | ||
79 | { | ||
80 | @fingerprint_files = ("fingerprint.sha1", | ||
81 | <*/fingerprint.sha1>); | ||
82 | } | ||
83 | else | ||
84 | { | ||
85 | push @fingerprint_files, $hash_file; | ||
86 | } | ||
87 | |||
88 | foreach $fp (@fingerprint_files) | ||
89 | { | ||
90 | if (!open(IN, "$fp")) | ||
91 | { | ||
92 | print STDERR "Can't open file $fp"; | ||
93 | return 1; | ||
94 | } | ||
95 | print STDERR "Opening Fingerprint file $fp\n" if $verbose; | ||
96 | my $dir = $fp; | ||
97 | $dir =~ s/[^\/]*$//; | ||
98 | while (<IN>) | ||
99 | { | ||
100 | chomp; | ||
101 | if (!(($file, $hash) = /^\"HMAC-SHA1\((.*)\)\s*=\s*(\w*)\",$/)) | ||
102 | { | ||
103 | /^\"/ || next; | ||
104 | print STDERR "FATAL: Invalid syntax in file $fp\n"; | ||
105 | print STDERR "Line:\n$_\n"; | ||
106 | fatal_error(); | ||
107 | return 1; | ||
108 | } | ||
109 | if (!$rebuild && length($hash) != 40) | ||
110 | { | ||
111 | print STDERR "FATAL: Invalid hash length in $fp for file $file\n"; | ||
112 | fatal_error(); | ||
113 | return 1; | ||
114 | } | ||
115 | push @hashed_files, "$dir$file"; | ||
116 | if (exists $hashes{"$dir$file"}) | ||
117 | { | ||
118 | print STDERR "FATAL: Duplicate Hash file $dir$file\n"; | ||
119 | fatal_error(); | ||
120 | return 1; | ||
121 | } | ||
122 | if (! -r "$dir$file") | ||
123 | { | ||
124 | print STDERR "FATAL: Can't access $dir$file\n"; | ||
125 | fatal_error(); | ||
126 | return 1; | ||
127 | } | ||
128 | $hashes{"$dir$file"} = $hash; | ||
129 | } | ||
130 | close IN; | ||
131 | } | ||
132 | |||
133 | @checked_hashes = `$check_program @hashed_files`; | ||
134 | |||
135 | if ($? != 0) | ||
136 | { | ||
137 | print STDERR "Error running hash program $check_program\n"; | ||
138 | fatal_error(); | ||
139 | return 1; | ||
140 | } | ||
141 | |||
142 | if (@checked_hashes != @hashed_files) | ||
143 | { | ||
144 | print STDERR "FATAL: hash count incorrect\n"; | ||
145 | fatal_error(); | ||
146 | return 1; | ||
147 | } | ||
148 | |||
149 | foreach (@checked_hashes) | ||
150 | { | ||
151 | chomp; | ||
152 | if (!(($file, $hash) = /^HMAC-SHA1\((.*)\)\s*=\s*(\w*)$/)) | ||
153 | { | ||
154 | print STDERR "FATAL: Invalid syntax in file $fp\n"; | ||
155 | print STDERR "Line:\n$_\n"; | ||
156 | fatal_error(); | ||
157 | return 1; | ||
158 | } | ||
159 | if (length($hash) != 40) | ||
160 | { | ||
161 | print STDERR "FATAL: Invalid hash length for file $file\n"; | ||
162 | fatal_error(); | ||
163 | return 1; | ||
164 | } | ||
165 | if ($hash ne $hashes{$file}) | ||
166 | { | ||
167 | if ($rebuild) | ||
168 | { | ||
169 | print STDERR "Updating hash on file $file\n"; | ||
170 | $hashes{$file} = $hash; | ||
171 | } | ||
172 | else | ||
173 | { | ||
174 | print STDERR "Hash check failed for file $file\n"; | ||
175 | } | ||
176 | $badfiles++; | ||
177 | } | ||
178 | elsif ($verbose) | ||
179 | { print "Hash Check OK for $file\n";} | ||
180 | } | ||
181 | |||
182 | |||
183 | if ($badfiles && !$rebuild) | ||
184 | { | ||
185 | print STDERR "FATAL: hash mismatch on $badfiles files\n"; | ||
186 | fatal_error(); | ||
187 | return 1; | ||
188 | } | ||
189 | |||
190 | if ($badfiles || $force_rewrite) | ||
191 | { | ||
192 | print "Updating Hash file $hash_file\n"; | ||
193 | if (!open(OUT, ">$hash_file")) | ||
194 | { | ||
195 | print STDERR "Error rewriting $hash_file"; | ||
196 | return 1; | ||
197 | } | ||
198 | print OUT "const char * const FIPS_source_hashes[] = {\n"; | ||
199 | foreach (@hashed_files) | ||
200 | { | ||
201 | print OUT "\"HMAC-SHA1($_)= $hashes{$_}\",\n"; | ||
202 | } | ||
203 | print OUT "};\n"; | ||
204 | close OUT; | ||
205 | } | ||
206 | |||
207 | if (!$badfiles) | ||
208 | { | ||
209 | print "FIPS hash check successful\n"; | ||
210 | } | ||
211 | |||
212 | return 0; | ||
213 | |||
214 | } | ||
215 | |||
216 | |||
217 | sub fatal_error | ||
218 | { | ||
219 | print STDERR "*** Your source code does not match the FIPS validated source ***\n"; | ||
220 | } | ||
221 | |||
222 | |||
diff --git a/src/lib/libcrypto/util/fipslink.pl b/src/lib/libcrypto/util/fipslink.pl new file mode 100644 index 0000000000..a893833c5c --- /dev/null +++ b/src/lib/libcrypto/util/fipslink.pl | |||
@@ -0,0 +1,78 @@ | |||
1 | #!/usr/bin/perl | ||
2 | |||
3 | sub check_env | ||
4 | { | ||
5 | my @ret; | ||
6 | foreach (@_) | ||
7 | { | ||
8 | die "Environment variable $_ not defined!\n" unless exists $ENV{$_}; | ||
9 | push @ret, $ENV{$_}; | ||
10 | } | ||
11 | return @ret; | ||
12 | } | ||
13 | |||
14 | |||
15 | my ($fips_cc,$fips_cc_args, $fips_link,$fips_target, $fips_libdir, $sha1_exe) | ||
16 | = check_env("FIPS_CC", "FIPS_CC_ARGS", "FIPS_LINK", "FIPS_TARGET", | ||
17 | "FIPSLIB_D", "FIPS_SHA1_EXE"); | ||
18 | |||
19 | |||
20 | |||
21 | if (exists $ENV{"PREMAIN_DSO_EXE"}) | ||
22 | { | ||
23 | $fips_premain_dso = $ENV{"PREMAIN_DSO_EXE"}; | ||
24 | } | ||
25 | else | ||
26 | { | ||
27 | $fips_premain_dso = ""; | ||
28 | } | ||
29 | |||
30 | check_hash($sha1_exe, "fips_premain.c"); | ||
31 | check_hash($sha1_exe, "fipscanister.o"); | ||
32 | |||
33 | |||
34 | print "Integrity check OK\n"; | ||
35 | |||
36 | print "$fips_cc $fips_cc_args $fips_libdir/fips_premain.c\n"; | ||
37 | system "$fips_cc $fips_cc_args $fips_libdir/fips_premain.c"; | ||
38 | die "First stage Compile failure" if $? != 0; | ||
39 | |||
40 | print "$fips_link @ARGV\n"; | ||
41 | system "$fips_link @ARGV"; | ||
42 | die "First stage Link failure" if $? != 0; | ||
43 | |||
44 | |||
45 | print "$fips_premain_dso $fips_target\n"; | ||
46 | $fips_hash=`$fips_premain_dso $fips_target`; | ||
47 | chomp $fips_hash; | ||
48 | die "Get hash failure" if $? != 0; | ||
49 | |||
50 | |||
51 | print "$fips_cc -DHMAC_SHA1_SIG=\\\"$fips_hash\\\" $fips_cc_args $fips_libdir/fips_premain.c\n"; | ||
52 | system "$fips_cc -DHMAC_SHA1_SIG=\\\"$fips_hash\\\" $fips_cc_args $fips_libdir/fips_premain.c"; | ||
53 | die "Second stage Compile failure" if $? != 0; | ||
54 | |||
55 | |||
56 | print "$fips_link @ARGV\n"; | ||
57 | system "$fips_link @ARGV"; | ||
58 | die "Second stage Link failure" if $? != 0; | ||
59 | |||
60 | sub check_hash | ||
61 | { | ||
62 | my ($sha1_exe, $filename) = @_; | ||
63 | my ($hashfile, $hashval); | ||
64 | |||
65 | open(IN, "${fips_libdir}/${filename}.sha1") || die "Cannot open file hash file ${fips_libdir}/${filename}.sha1"; | ||
66 | $hashfile = <IN>; | ||
67 | close IN; | ||
68 | $hashval = `$sha1_exe ${fips_libdir}/$filename`; | ||
69 | chomp $hashfile; | ||
70 | chomp $hashval; | ||
71 | $hashfile =~ s/^.*=\s+//; | ||
72 | $hashval =~ s/^.*=\s+//; | ||
73 | die "Invalid hash syntax in file" if (length($hashfile) != 40); | ||
74 | die "Invalid hash received for file" if (length($hashval) != 40); | ||
75 | die "***HASH VALUE MISMATCH FOR FILE $filename ***" if ($hashval ne $hashfile); | ||
76 | } | ||
77 | |||
78 | |||
diff --git a/src/lib/libcrypto/util/libeay.num b/src/lib/libcrypto/util/libeay.num index 56fb7446e0..4222bef6d6 100644 --- a/src/lib/libcrypto/util/libeay.num +++ b/src/lib/libcrypto/util/libeay.num | |||
@@ -2811,7 +2811,7 @@ EVP_aes_192_cfb8 3252 EXIST::FUNCTION:AES | |||
2811 | FIPS_mode_set 3253 EXIST:OPENSSL_FIPS:FUNCTION: | 2811 | FIPS_mode_set 3253 EXIST:OPENSSL_FIPS:FUNCTION: |
2812 | FIPS_selftest_dsa 3254 EXIST:OPENSSL_FIPS:FUNCTION: | 2812 | FIPS_selftest_dsa 3254 EXIST:OPENSSL_FIPS:FUNCTION: |
2813 | EVP_aes_256_cfb8 3255 EXIST::FUNCTION:AES | 2813 | EVP_aes_256_cfb8 3255 EXIST::FUNCTION:AES |
2814 | FIPS_allow_md5 3256 EXIST:OPENSSL_FIPS:FUNCTION: | 2814 | FIPS_allow_md5 3256 NOEXIST::FUNCTION: |
2815 | DES_ede3_cfb_encrypt 3257 EXIST::FUNCTION:DES | 2815 | DES_ede3_cfb_encrypt 3257 EXIST::FUNCTION:DES |
2816 | EVP_des_ede3_cfb8 3258 EXIST::FUNCTION:DES | 2816 | EVP_des_ede3_cfb8 3258 EXIST::FUNCTION:DES |
2817 | FIPS_rand_seeded 3259 EXIST:OPENSSL_FIPS:FUNCTION: | 2817 | FIPS_rand_seeded 3259 EXIST:OPENSSL_FIPS:FUNCTION: |
@@ -2837,7 +2837,7 @@ FIPS_dsa_check 3278 EXIST:OPENSSL_FIPS:FUNCTION: | |||
2837 | AES_cfb1_encrypt 3279 EXIST::FUNCTION:AES | 2837 | AES_cfb1_encrypt 3279 EXIST::FUNCTION:AES |
2838 | EVP_des_ede3_cfb1 3280 EXIST::FUNCTION:DES | 2838 | EVP_des_ede3_cfb1 3280 EXIST::FUNCTION:DES |
2839 | FIPS_rand_check 3281 EXIST:OPENSSL_FIPS:FUNCTION: | 2839 | FIPS_rand_check 3281 EXIST:OPENSSL_FIPS:FUNCTION: |
2840 | FIPS_md5_allowed 3282 EXIST:OPENSSL_FIPS:FUNCTION: | 2840 | FIPS_md5_allowed 3282 NOEXIST::FUNCTION: |
2841 | FIPS_mode 3283 EXIST:OPENSSL_FIPS:FUNCTION: | 2841 | FIPS_mode 3283 EXIST:OPENSSL_FIPS:FUNCTION: |
2842 | FIPS_selftest_failed 3284 EXIST:OPENSSL_FIPS:FUNCTION: | 2842 | FIPS_selftest_failed 3284 EXIST:OPENSSL_FIPS:FUNCTION: |
2843 | sk_is_sorted 3285 EXIST::FUNCTION: | 2843 | sk_is_sorted 3285 EXIST::FUNCTION: |
@@ -2867,3 +2867,41 @@ PROXY_CERT_INFO_EXTENSION_it 3307 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIA | |||
2867 | PROXY_CERT_INFO_EXTENSION_it 3307 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: | 2867 | PROXY_CERT_INFO_EXTENSION_it 3307 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: |
2868 | PROXY_POLICY_free 3308 EXIST::FUNCTION: | 2868 | PROXY_POLICY_free 3308 EXIST::FUNCTION: |
2869 | PROXY_POLICY_new 3309 EXIST::FUNCTION: | 2869 | PROXY_POLICY_new 3309 EXIST::FUNCTION: |
2870 | BN_MONT_CTX_set_locked 3310 EXIST::FUNCTION: | ||
2871 | FIPS_selftest_rng 3311 EXIST:OPENSSL_FIPS:FUNCTION: | ||
2872 | EVP_sha384 3312 EXIST:OPENSSL_FIPS:FUNCTION:SHA,SHA512 | ||
2873 | EVP_sha512 3313 EXIST:OPENSSL_FIPS:FUNCTION:SHA,SHA512 | ||
2874 | EVP_sha224 3314 EXIST:OPENSSL_FIPS:FUNCTION:SHA,SHA256 | ||
2875 | EVP_sha256 3315 EXIST:OPENSSL_FIPS:FUNCTION:SHA,SHA256 | ||
2876 | FIPS_selftest_hmac 3316 EXIST:OPENSSL_FIPS:FUNCTION: | ||
2877 | FIPS_corrupt_rng 3317 EXIST:OPENSSL_FIPS:FUNCTION: | ||
2878 | BN_mod_exp_mont_consttime 3318 EXIST::FUNCTION: | ||
2879 | RSA_X931_hash_id 3319 EXIST::FUNCTION:RSA | ||
2880 | RSA_padding_check_X931 3320 EXIST::FUNCTION:RSA | ||
2881 | RSA_verify_PKCS1_PSS 3321 EXIST::FUNCTION:RSA | ||
2882 | RSA_padding_add_X931 3322 EXIST::FUNCTION:RSA | ||
2883 | RSA_padding_add_PKCS1_PSS 3323 EXIST::FUNCTION:RSA | ||
2884 | PKCS1_MGF1 3324 EXIST::FUNCTION:RSA | ||
2885 | BN_X931_generate_Xpq 3325 EXIST:OPENSSL_FIPS:FUNCTION: | ||
2886 | RSA_X931_generate_key 3326 EXIST:OPENSSL_FIPS:FUNCTION:RSA | ||
2887 | BN_X931_derive_prime 3327 EXIST:OPENSSL_FIPS:FUNCTION: | ||
2888 | BN_X931_generate_prime 3328 EXIST:OPENSSL_FIPS:FUNCTION: | ||
2889 | RSA_X931_derive 3329 EXIST:OPENSSL_FIPS:FUNCTION:RSA | ||
2890 | SHA512_Update 3356 EXIST:OPENSSL_FIPS:FUNCTION:SHA,SHA512 | ||
2891 | SHA256_Init 3479 EXIST:OPENSSL_FIPS:FUNCTION:SHA,SHA256 | ||
2892 | SHA224 3510 EXIST:OPENSSL_FIPS:FUNCTION:SHA,SHA256 | ||
2893 | SHA384_Update 3551 EXIST:OPENSSL_FIPS:FUNCTION:SHA,SHA512 | ||
2894 | SHA224_Final 3560 EXIST:OPENSSL_FIPS:FUNCTION:SHA,SHA256 | ||
2895 | SHA224_Update 3562 EXIST:OPENSSL_FIPS:FUNCTION:SHA,SHA256 | ||
2896 | SHA512_Final 3581 EXIST:OPENSSL_FIPS:FUNCTION:SHA,SHA512 | ||
2897 | SHA224_Init 3631 EXIST:OPENSSL_FIPS:FUNCTION:SHA,SHA256 | ||
2898 | SHA512_Init 3633 EXIST:OPENSSL_FIPS:FUNCTION:SHA,SHA512 | ||
2899 | SHA256 3654 EXIST:OPENSSL_FIPS:FUNCTION:SHA,SHA256 | ||
2900 | SHA256_Transform 3664 EXIST:OPENSSL_FIPS:FUNCTION:SHA,SHA256 | ||
2901 | SHA512 3669 EXIST:OPENSSL_FIPS:FUNCTION:SHA,SHA512 | ||
2902 | SHA512_Transform 3675 EXIST:OPENSSL_FIPS:FUNCTION:SHA,SHA512 | ||
2903 | SHA256_Final 3712 EXIST:OPENSSL_FIPS:FUNCTION:SHA,SHA256 | ||
2904 | SHA384_Init 3737 EXIST:OPENSSL_FIPS:FUNCTION:SHA,SHA512 | ||
2905 | SHA384_Final 3740 EXIST:OPENSSL_FIPS:FUNCTION:SHA,SHA512 | ||
2906 | SHA384 3745 EXIST:OPENSSL_FIPS:FUNCTION:SHA,SHA512 | ||
2907 | SHA256_Update 3765 EXIST:OPENSSL_FIPS:FUNCTION:SHA,SHA256 | ||
diff --git a/src/lib/libcrypto/util/mk1mf.pl b/src/lib/libcrypto/util/mk1mf.pl index 957264c6b5..05a6086164 100644 --- a/src/lib/libcrypto/util/mk1mf.pl +++ b/src/lib/libcrypto/util/mk1mf.pl | |||
@@ -10,6 +10,20 @@ $OPTIONS=""; | |||
10 | $ssl_version=""; | 10 | $ssl_version=""; |
11 | $banner="\t\@echo Building OpenSSL"; | 11 | $banner="\t\@echo Building OpenSSL"; |
12 | 12 | ||
13 | local $zlib_opt = 0; # 0 = no zlib, 1 = static, 2 = dynamic | ||
14 | local $zlib_lib = ""; | ||
15 | |||
16 | my $fips_canister_path = ""; | ||
17 | my $fips_premain_dso_exe_path = ""; | ||
18 | my $fips_premain_c_path = ""; | ||
19 | my $fips_sha1_exe_path = ""; | ||
20 | |||
21 | my $fipslibdir = ""; | ||
22 | my $baseaddr = ""; | ||
23 | |||
24 | my $ex_l_libs = ""; | ||
25 | |||
26 | |||
13 | open(IN,"<Makefile") || die "unable to open Makefile!\n"; | 27 | open(IN,"<Makefile") || die "unable to open Makefile!\n"; |
14 | while(<IN>) { | 28 | while(<IN>) { |
15 | $ssl_version=$1 if (/^VERSION=(.*)$/); | 29 | $ssl_version=$1 if (/^VERSION=(.*)$/); |
@@ -24,6 +38,7 @@ $infile="MINFO"; | |||
24 | 38 | ||
25 | %ops=( | 39 | %ops=( |
26 | "VC-WIN32", "Microsoft Visual C++ [4-6] - Windows NT or 9X", | 40 | "VC-WIN32", "Microsoft Visual C++ [4-6] - Windows NT or 9X", |
41 | "VC-WIN32-GMAKE", "Microsoft Visual C++ [4-6] - Windows NT or 9X, GNU make", | ||
27 | "VC-CE", "Microsoft eMbedded Visual C++ 3.0 - Windows CE ONLY", | 42 | "VC-CE", "Microsoft eMbedded Visual C++ 3.0 - Windows CE ONLY", |
28 | "VC-NT", "Microsoft Visual C++ [4-6] - Windows NT ONLY", | 43 | "VC-NT", "Microsoft Visual C++ [4-6] - Windows NT ONLY", |
29 | "VC-W31-16", "Microsoft Visual C++ 1.52 - Windows 3.1 - 286", | 44 | "VC-W31-16", "Microsoft Visual C++ 1.52 - Windows 3.1 - 286", |
@@ -43,6 +58,7 @@ $infile="MINFO"; | |||
43 | ); | 58 | ); |
44 | 59 | ||
45 | $platform=""; | 60 | $platform=""; |
61 | my $xcflags=""; | ||
46 | foreach (@ARGV) | 62 | foreach (@ARGV) |
47 | { | 63 | { |
48 | if (!&read_options && !defined($ops{$_})) | 64 | if (!&read_options && !defined($ops{$_})) |
@@ -104,8 +120,12 @@ $inc_def="outinc"; | |||
104 | $tmp_def="tmp"; | 120 | $tmp_def="tmp"; |
105 | 121 | ||
106 | $mkdir="-mkdir"; | 122 | $mkdir="-mkdir"; |
123 | $mkcanister="ld -r -o"; | ||
124 | |||
125 | $ex_build_targets = ""; | ||
107 | 126 | ||
108 | ($ssl,$crypto)=("ssl","crypto"); | 127 | ($ssl,$crypto)=("ssl","crypto"); |
128 | $cryptocompat = ""; | ||
109 | $ranlib="echo ranlib"; | 129 | $ranlib="echo ranlib"; |
110 | 130 | ||
111 | $cc=(defined($VARS{'CC'}))?$VARS{'CC'}:'cc'; | 131 | $cc=(defined($VARS{'CC'}))?$VARS{'CC'}:'cc'; |
@@ -140,6 +160,10 @@ elsif (($platform eq "VC-WIN32") || ($platform eq "VC-NT")) | |||
140 | $NT = 1 if $platform eq "VC-NT"; | 160 | $NT = 1 if $platform eq "VC-NT"; |
141 | require 'VC-32.pl'; | 161 | require 'VC-32.pl'; |
142 | } | 162 | } |
163 | elsif ($platform eq "VC-WIN32-GMAKE") | ||
164 | { | ||
165 | require 'VC-32-GMAKE.pl'; | ||
166 | } | ||
143 | elsif ($platform eq "VC-CE") | 167 | elsif ($platform eq "VC-CE") |
144 | { | 168 | { |
145 | require 'VC-CE.pl'; | 169 | require 'VC-CE.pl'; |
@@ -210,6 +234,8 @@ $inc_dir=(defined($VARS{'INC'}))?$VARS{'INC'}:$inc_def; | |||
210 | 234 | ||
211 | $bin_dir=$bin_dir.$o unless ((substr($bin_dir,-1,1) eq $o) || ($bin_dir eq '')); | 235 | $bin_dir=$bin_dir.$o unless ((substr($bin_dir,-1,1) eq $o) || ($bin_dir eq '')); |
212 | 236 | ||
237 | $cflags= "$xcflags$cflags" if $xcflags ne ""; | ||
238 | |||
213 | $cflags.=" -DOPENSSL_NO_IDEA" if $no_idea; | 239 | $cflags.=" -DOPENSSL_NO_IDEA" if $no_idea; |
214 | $cflags.=" -DOPENSSL_NO_AES" if $no_aes; | 240 | $cflags.=" -DOPENSSL_NO_AES" if $no_aes; |
215 | $cflags.=" -DOPENSSL_NO_RC2" if $no_rc2; | 241 | $cflags.=" -DOPENSSL_NO_RC2" if $no_rc2; |
@@ -239,6 +265,9 @@ $cflags.=" -DOPENSSL_NO_HW" if $no_hw; | |||
239 | $cflags.=" -DOPENSSL_FIPS" if $fips; | 265 | $cflags.=" -DOPENSSL_FIPS" if $fips; |
240 | #$cflags.=" -DRSAref" if $rsaref ne ""; | 266 | #$cflags.=" -DRSAref" if $rsaref ne ""; |
241 | 267 | ||
268 | $cflags.= " -DZLIB" if $zlib_opt; | ||
269 | $cflags.= " -DZLIB_SHARED" if $zlib_opt == 2; | ||
270 | |||
242 | ## if ($unix) | 271 | ## if ($unix) |
243 | ## { $cflags="$c_flags" if ($c_flags ne ""); } | 272 | ## { $cflags="$c_flags" if ($c_flags ne ""); } |
244 | ##else | 273 | ##else |
@@ -246,6 +275,7 @@ $cflags.=" -DOPENSSL_FIPS" if $fips; | |||
246 | 275 | ||
247 | $ex_libs="$l_flags$ex_libs" if ($l_flags ne ""); | 276 | $ex_libs="$l_flags$ex_libs" if ($l_flags ne ""); |
248 | 277 | ||
278 | |||
249 | %shlib_ex_cflags=("SSL" => " -DOPENSSL_BUILD_SHLIBSSL", | 279 | %shlib_ex_cflags=("SSL" => " -DOPENSSL_BUILD_SHLIBSSL", |
250 | "CRYPTO" => " -DOPENSSL_BUILD_SHLIBCRYPTO"); | 280 | "CRYPTO" => " -DOPENSSL_BUILD_SHLIBCRYPTO"); |
251 | 281 | ||
@@ -262,6 +292,135 @@ $link="$bin_dir$link" if ($link !~ /^\$/); | |||
262 | 292 | ||
263 | $INSTALLTOP =~ s|/|$o|g; | 293 | $INSTALLTOP =~ s|/|$o|g; |
264 | 294 | ||
295 | ############################################# | ||
296 | # We parse in input file and 'store' info for later printing. | ||
297 | open(IN,"<$infile") || die "unable to open $infile:$!\n"; | ||
298 | $_=<IN>; | ||
299 | for (;;) | ||
300 | { | ||
301 | chop; | ||
302 | |||
303 | ($key,$val)=/^([^=]+)=(.*)/; | ||
304 | if ($key eq "RELATIVE_DIRECTORY") | ||
305 | { | ||
306 | if ($lib ne "") | ||
307 | { | ||
308 | if ($fips && $dir =~ /^fips/) | ||
309 | { | ||
310 | $uc = "FIPS"; | ||
311 | } | ||
312 | else | ||
313 | { | ||
314 | $uc=$lib; | ||
315 | $uc =~ s/^lib(.*)\.a/$1/; | ||
316 | $uc =~ tr/a-z/A-Z/; | ||
317 | } | ||
318 | if (($uc ne "FIPS") || $fips_canister_build) | ||
319 | { | ||
320 | $lib_nam{$uc}=$uc; | ||
321 | $lib_obj{$uc}.=$libobj." "; | ||
322 | } | ||
323 | } | ||
324 | last if ($val eq "FINISHED"); | ||
325 | $lib=""; | ||
326 | $libobj=""; | ||
327 | $dir=$val; | ||
328 | } | ||
329 | |||
330 | if ($key eq "KRB5_INCLUDES") | ||
331 | { $cflags .= " $val";} | ||
332 | |||
333 | if ($key eq "ZLIB_INCLUDE") | ||
334 | { $cflags .= " $val" if $val ne "";} | ||
335 | |||
336 | if ($key eq "LIBZLIB") | ||
337 | { $zlib_lib = "$val" if $val ne "";} | ||
338 | |||
339 | if ($key eq "LIBKRB5") | ||
340 | { $ex_libs .= " $val" if $val ne "";} | ||
341 | |||
342 | if ($key eq "TEST") | ||
343 | { $test.=&var_add($dir,$val); } | ||
344 | |||
345 | if (($key eq "PROGS") || ($key eq "E_OBJ")) | ||
346 | { $e_exe.=&var_add($dir,$val); } | ||
347 | |||
348 | if ($key eq "LIB") | ||
349 | { | ||
350 | $lib=$val; | ||
351 | $lib =~ s/^.*\/([^\/]+)$/$1/; | ||
352 | } | ||
353 | |||
354 | if ($key eq "EXHEADER") | ||
355 | { $exheader.=&var_add($dir,$val); } | ||
356 | |||
357 | if ($key eq "HEADER") | ||
358 | { $header.=&var_add($dir,$val); } | ||
359 | |||
360 | if ($key eq "LIBOBJ") | ||
361 | { $libobj=&var_add($dir,$val); } | ||
362 | |||
363 | if ($key eq "FIPSLIBDIR") | ||
364 | { $fipslibdir=$val;} | ||
365 | |||
366 | if ($key eq "BASEADDR") | ||
367 | { $baseaddr=$val;} | ||
368 | |||
369 | if (!($_=<IN>)) | ||
370 | { $_="RELATIVE_DIRECTORY=FINISHED\n"; } | ||
371 | } | ||
372 | close(IN); | ||
373 | |||
374 | if ($fips_canister_path eq "") | ||
375 | { | ||
376 | $fips_canister_path = "\$(FIPSLIB_D)${o}fipscanister.o"; | ||
377 | } | ||
378 | |||
379 | if ($fips_premain_c_path eq "") | ||
380 | { | ||
381 | $fips_premain_c_path = "\$(FIPSLIB_D)${o}fips_premain.c"; | ||
382 | } | ||
383 | |||
384 | if ($fips) | ||
385 | { | ||
386 | if ($fips_sha1_exe_path eq "") | ||
387 | { | ||
388 | $fips_sha1_exe_path = | ||
389 | "\$(BIN_D)${o}fips_standalone_sha1$exep"; | ||
390 | } | ||
391 | } | ||
392 | else | ||
393 | { | ||
394 | $fips_sha1_exe_path = ""; | ||
395 | } | ||
396 | |||
397 | if ($fips_premain_dso_exe_path eq "") | ||
398 | { | ||
399 | $fips_premain_dso_exe_path = "\$(BIN_D)${o}fips_premain_dso$exep"; | ||
400 | } | ||
401 | |||
402 | # $ex_build_targets .= "\$(BIN_D)${o}\$(E_PREMAIN_DSO)$exep" if ($fips); | ||
403 | |||
404 | if ($fips) | ||
405 | { | ||
406 | if (!$shlib) | ||
407 | { | ||
408 | $ex_build_targets .= " \$(LIB_D)$o$crypto_compat \$(PREMAIN_DSO_EXE)"; | ||
409 | $ex_l_libs .= " \$(O_FIPSCANISTER)"; | ||
410 | } | ||
411 | if ($fipslibdir eq "") | ||
412 | { | ||
413 | open (IN, "util/fipslib_path.txt") || fipslib_error(); | ||
414 | $fipslibdir = <IN>; | ||
415 | chomp $fipslibdir; | ||
416 | close IN; | ||
417 | } | ||
418 | fips_check_files($fipslibdir, | ||
419 | "fipscanister.o", "fipscanister.o.sha1", | ||
420 | "fips_premain.c", "fips_premain.c.sha1"); | ||
421 | } | ||
422 | |||
423 | |||
265 | $defs= <<"EOF"; | 424 | $defs= <<"EOF"; |
266 | # This makefile has been automatically generated from the OpenSSL distribution. | 425 | # This makefile has been automatically generated from the OpenSSL distribution. |
267 | # This single makefile will build the complete OpenSSL distribution and | 426 | # This single makefile will build the complete OpenSSL distribution and |
@@ -286,6 +445,7 @@ if ($platform eq "VC-CE") | |||
286 | !INCLUDE <\$(WCECOMPAT)/wcedefs.mak> | 445 | !INCLUDE <\$(WCECOMPAT)/wcedefs.mak> |
287 | 446 | ||
288 | EOF | 447 | EOF |
448 | $ex_libs .= " $zlib_lib" if $zlib_opt == 1; | ||
289 | } | 449 | } |
290 | 450 | ||
291 | $defs.= <<"EOF"; | 451 | $defs.= <<"EOF"; |
@@ -308,6 +468,8 @@ EX_LIBS=$ex_libs | |||
308 | SRC_D=$src_dir | 468 | SRC_D=$src_dir |
309 | 469 | ||
310 | LINK=$link | 470 | LINK=$link |
471 | PERL=perl | ||
472 | FIPSLINK=\$(PERL) util${o}fipslink.pl | ||
311 | LFLAGS=$lflags | 473 | LFLAGS=$lflags |
312 | 474 | ||
313 | BN_ASM_OBJ=$bn_asm_obj | 475 | BN_ASM_OBJ=$bn_asm_obj |
@@ -339,6 +501,9 @@ TMP_D=$tmp_dir | |||
339 | INC_D=$inc_dir | 501 | INC_D=$inc_dir |
340 | INCO_D=$inc_dir${o}openssl | 502 | INCO_D=$inc_dir${o}openssl |
341 | 503 | ||
504 | # Directory containing FIPS module | ||
505 | |||
506 | |||
342 | CP=$cp | 507 | CP=$cp |
343 | RM=$rm | 508 | RM=$rm |
344 | RANLIB=$ranlib | 509 | RANLIB=$ranlib |
@@ -346,6 +511,18 @@ MKDIR=$mkdir | |||
346 | MKLIB=$bin_dir$mklib | 511 | MKLIB=$bin_dir$mklib |
347 | MLFLAGS=$mlflags | 512 | MLFLAGS=$mlflags |
348 | ASM=$bin_dir$asm | 513 | ASM=$bin_dir$asm |
514 | MKCANISTER=$mkcanister | ||
515 | |||
516 | # FIPS validated module and support file locations | ||
517 | |||
518 | E_PREMAIN_DSO=fips_premain_dso | ||
519 | |||
520 | FIPSLIB_D=$fipslibdir | ||
521 | BASEADDR=$baseaddr | ||
522 | FIPS_PREMAIN_SRC=$fips_premain_c_path | ||
523 | O_FIPSCANISTER=$fips_canister_path | ||
524 | FIPS_SHA1_EXE=$fips_sha1_exe_path | ||
525 | PREMAIN_DSO_EXE=$fips_premain_dso_exe_path | ||
349 | 526 | ||
350 | ###################################################### | 527 | ###################################################### |
351 | # You should not need to touch anything below this point | 528 | # You should not need to touch anything below this point |
@@ -377,7 +554,7 @@ SO_CRYPTO= $plib\$(CRYPTO)$so_shlibp | |||
377 | L_SSL= \$(LIB_D)$o$plib\$(SSL)$libp | 554 | L_SSL= \$(LIB_D)$o$plib\$(SSL)$libp |
378 | L_CRYPTO= \$(LIB_D)$o$plib\$(CRYPTO)$libp | 555 | L_CRYPTO= \$(LIB_D)$o$plib\$(CRYPTO)$libp |
379 | 556 | ||
380 | L_LIBS= \$(L_SSL) \$(L_CRYPTO) | 557 | L_LIBS= \$(L_SSL) \$(L_CRYPTO) $ex_l_libs |
381 | 558 | ||
382 | ###################################################### | 559 | ###################################################### |
383 | # Don't touch anything below this point | 560 | # Don't touch anything below this point |
@@ -387,13 +564,13 @@ INC=-I\$(INC_D) -I\$(INCL_D) | |||
387 | APP_CFLAGS=\$(INC) \$(CFLAG) \$(APP_CFLAG) | 564 | APP_CFLAGS=\$(INC) \$(CFLAG) \$(APP_CFLAG) |
388 | LIB_CFLAGS=\$(INC) \$(CFLAG) \$(LIB_CFLAG) | 565 | LIB_CFLAGS=\$(INC) \$(CFLAG) \$(LIB_CFLAG) |
389 | SHLIB_CFLAGS=\$(INC) \$(CFLAG) \$(LIB_CFLAG) \$(SHLIB_CFLAG) | 566 | SHLIB_CFLAGS=\$(INC) \$(CFLAG) \$(LIB_CFLAG) \$(SHLIB_CFLAG) |
390 | LIBS_DEP=\$(O_CRYPTO) \$(O_SSL) | 567 | LIBS_DEP=\$(O_CRYPTO) \$(O_SSL) $ex_libs_dep |
391 | 568 | ||
392 | ############################################# | 569 | ############################################# |
393 | EOF | 570 | EOF |
394 | 571 | ||
395 | $rules=<<"EOF"; | 572 | $rules=<<"EOF"; |
396 | all: banner \$(TMP_D) \$(BIN_D) \$(TEST_D) \$(LIB_D) \$(INCO_D) headers lib exe | 573 | all: banner \$(TMP_D) \$(BIN_D) \$(TEST_D) \$(LIB_D) \$(INCO_D) headers \$(FIPS_SHA1_EXE) lib exe $ex_build_targets |
397 | 574 | ||
398 | banner: | 575 | banner: |
399 | $banner | 576 | $banner |
@@ -479,57 +656,6 @@ printf OUT " #define DATE \"%s\"\n", scalar gmtime(); | |||
479 | printf OUT "#endif\n"; | 656 | printf OUT "#endif\n"; |
480 | close(OUT); | 657 | close(OUT); |
481 | 658 | ||
482 | ############################################# | ||
483 | # We parse in input file and 'store' info for later printing. | ||
484 | open(IN,"<$infile") || die "unable to open $infile:$!\n"; | ||
485 | $_=<IN>; | ||
486 | for (;;) | ||
487 | { | ||
488 | chop; | ||
489 | |||
490 | ($key,$val)=/^([^=]+)=(.*)/; | ||
491 | if ($key eq "RELATIVE_DIRECTORY") | ||
492 | { | ||
493 | if ($lib ne "") | ||
494 | { | ||
495 | $uc=$lib; | ||
496 | $uc =~ s/^lib(.*)\.a/$1/; | ||
497 | $uc =~ tr/a-z/A-Z/; | ||
498 | $lib_nam{$uc}=$uc; | ||
499 | $lib_obj{$uc}.=$libobj." "; | ||
500 | } | ||
501 | last if ($val eq "FINISHED"); | ||
502 | $lib=""; | ||
503 | $libobj=""; | ||
504 | $dir=$val; | ||
505 | } | ||
506 | |||
507 | if ($key eq "TEST") | ||
508 | { $test.=&var_add($dir,$val); } | ||
509 | |||
510 | if (($key eq "PROGS") || ($key eq "E_OBJ")) | ||
511 | { $e_exe.=&var_add($dir,$val); } | ||
512 | |||
513 | if ($key eq "LIB") | ||
514 | { | ||
515 | $lib=$val; | ||
516 | $lib =~ s/^.*\/([^\/]+)$/$1/; | ||
517 | } | ||
518 | |||
519 | if ($key eq "EXHEADER") | ||
520 | { $exheader.=&var_add($dir,$val); } | ||
521 | |||
522 | if ($key eq "HEADER") | ||
523 | { $header.=&var_add($dir,$val); } | ||
524 | |||
525 | if ($key eq "LIBOBJ") | ||
526 | { $libobj=&var_add($dir,$val); } | ||
527 | |||
528 | if (!($_=<IN>)) | ||
529 | { $_="RELATIVE_DIRECTORY=FINISHED\n"; } | ||
530 | } | ||
531 | close(IN); | ||
532 | |||
533 | # Strip of trailing ' ' | 659 | # Strip of trailing ' ' |
534 | foreach (keys %lib_obj) { $lib_obj{$_}=&clean_up_ws($lib_obj{$_}); } | 660 | foreach (keys %lib_obj) { $lib_obj{$_}=&clean_up_ws($lib_obj{$_}); } |
535 | $test=&clean_up_ws($test); | 661 | $test=&clean_up_ws($test); |
@@ -554,6 +680,29 @@ $rules.=&do_compile_rule("\$(OBJ_D)",$test,"\$(APP_CFLAGS)"); | |||
554 | $defs.=&do_defs("E_OBJ",$e_exe,"\$(OBJ_D)",$obj); | 680 | $defs.=&do_defs("E_OBJ",$e_exe,"\$(OBJ_D)",$obj); |
555 | $rules.=&do_compile_rule("\$(OBJ_D)",$e_exe,'-DMONOLITH $(APP_CFLAGS)'); | 681 | $rules.=&do_compile_rule("\$(OBJ_D)",$e_exe,'-DMONOLITH $(APP_CFLAGS)'); |
556 | 682 | ||
683 | # Special case rules for fips_start and fips_end fips_premain_dso | ||
684 | |||
685 | if ($fips) | ||
686 | { | ||
687 | if ($fips_canister_build) | ||
688 | { | ||
689 | $rules.=&cc_compile_target("\$(OBJ_D)${o}fips_start$obj", | ||
690 | "fips-1.0${o}fips_canister.c", | ||
691 | "-DFIPS_START \$(SHLIB_CFLAGS)"); | ||
692 | $rules.=&cc_compile_target("\$(OBJ_D)${o}fips_end$obj", | ||
693 | "fips-1.0${o}fips_canister.c", "\$(SHLIB_CFLAGS)"); | ||
694 | } | ||
695 | $rules.=&cc_compile_target("\$(OBJ_D)${o}fips_standalone_sha1$obj", | ||
696 | "fips-1.0${o}sha${o}fips_standalone_sha1.c", | ||
697 | "\$(SHLIB_CFLAGS)"); | ||
698 | $rules.=&cc_compile_target("\$(OBJ_D)${o}fips_sha1dgst$obj", | ||
699 | "fips-1.0${o}sha${o}fips_sha1dgst.c", | ||
700 | "\$(SHLIB_CFLAGS)") unless $fips_canister_build; | ||
701 | $rules.=&cc_compile_target("\$(OBJ_D)${o}\$(E_PREMAIN_DSO)$obj", | ||
702 | "fips-1.0${o}fips_premain.c", | ||
703 | "-DFINGERPRINT_PREMAIN_DSO_LOAD \$(SHLIB_CFLAGS)"); | ||
704 | } | ||
705 | |||
557 | foreach (values %lib_nam) | 706 | foreach (values %lib_nam) |
558 | { | 707 | { |
559 | $lib_obj=$lib_obj{$_}; | 708 | $lib_obj=$lib_obj{$_}; |
@@ -630,16 +779,42 @@ foreach (split(/\s+/,$test)) | |||
630 | } | 779 | } |
631 | 780 | ||
632 | $rules.= &do_lib_rule("\$(SSLOBJ)","\$(O_SSL)",$ssl,$shlib,"\$(SO_SSL)"); | 781 | $rules.= &do_lib_rule("\$(SSLOBJ)","\$(O_SSL)",$ssl,$shlib,"\$(SO_SSL)"); |
633 | $rules.= &do_lib_rule("\$(CRYPTOOBJ)","\$(O_CRYPTO)",$crypto,$shlib,"\$(SO_CRYPTO)"); | 782 | |
634 | 783 | ||
635 | if ($fips) | 784 | if ($fips) |
636 | { | 785 | { |
637 | $rules.=&do_link_rule("\$(BIN_D)$o\$(E_EXE)$exep","\$(E_OBJ)","\$(LIBS_DEP)","\$(L_LIBS) \$(EX_LIBS)","\$(BIN_D)$o.sha1","\$(BIN_D)$o\$(E_EXE)$exep"); | 786 | if ($shlib) |
787 | { | ||
788 | $rules.= &do_lib_rule("\$(CRYPTOOBJ) \$(O_FIPSCANISTER)", | ||
789 | "\$(O_CRYPTO)", | ||
790 | "$crypto", | ||
791 | $shlib, "\$(SO_CRYPTO)", "\$(BASEADDR)"); | ||
792 | } | ||
793 | else | ||
794 | { | ||
795 | $rules.= &do_lib_rule("\$(CRYPTOOBJ)", | ||
796 | "\$(O_CRYPTO)",$crypto,$shlib,"\$(SO_CRYPTO)", ""); | ||
797 | $rules.= &do_lib_rule("\$(CRYPTOOBJ) \$(O_FIPSCANISTER)", | ||
798 | "\$(LIB_D)$o$crypto_compat",$crypto,$shlib,"\$(SO_CRYPTO)", ""); | ||
799 | } | ||
638 | } | 800 | } |
639 | else | 801 | else |
640 | { | 802 | { |
641 | $rules.=&do_link_rule("\$(BIN_D)$o\$(E_EXE)$exep","\$(E_OBJ)","\$(LIBS_DEP)","\$(L_LIBS) \$(EX_LIBS)"); | 803 | $rules.= &do_lib_rule("\$(CRYPTOOBJ)","\$(O_CRYPTO)",$crypto,$shlib, |
804 | "\$(SO_CRYPTO)"); | ||
642 | } | 805 | } |
806 | |||
807 | |||
808 | if ($fips) | ||
809 | { | ||
810 | $rules.= &do_rlink_rule("\$(O_FIPSCANISTER)", "\$(OBJ_D)${o}fips_start$obj \$(FIPSOBJ) \$(OBJ_D)${o}fips_end$obj", "\$(FIPSLIB_D)${o}fips_standalone_sha1$exep", "") if $fips_canister_build; | ||
811 | $rules.=&do_link_rule("\$(PREMAIN_DSO_EXE)","\$(OBJ_D)${o}\$(E_PREMAIN_DSO)$obj \$(CRYPTOOBJ) \$(O_FIPSCANISTER)","","\$(EX_LIBS)", 1); | ||
812 | |||
813 | $rules.=&do_link_rule("\$(FIPS_SHA1_EXE)","\$(OBJ_D)${o}fips_standalone_sha1$obj \$(OBJ_D)${o}fips_sha1dgst$obj","","", 1); | ||
814 | } | ||
815 | |||
816 | $rules.=&do_link_rule("\$(BIN_D)$o\$(E_EXE)$exep","\$(E_OBJ)","\$(LIBS_DEP)","\$(L_LIBS) \$(EX_LIBS)",0); | ||
817 | |||
643 | print $defs; | 818 | print $defs; |
644 | 819 | ||
645 | if ($platform eq "linux-elf") { | 820 | if ($platform eq "linux-elf") { |
@@ -935,6 +1110,24 @@ sub read_options | |||
935 | elsif (/^shlib$/) { $shlib=1; } | 1110 | elsif (/^shlib$/) { $shlib=1; } |
936 | elsif (/^dll$/) { $shlib=1; } | 1111 | elsif (/^dll$/) { $shlib=1; } |
937 | elsif (/^shared$/) { } # We just need to ignore it for now... | 1112 | elsif (/^shared$/) { } # We just need to ignore it for now... |
1113 | elsif (/^zlib$/) { $zlib_opt = 1 if $zlib_opt == 0 } | ||
1114 | elsif (/^zlib-dynamic$/){ $zlib_opt = 2; } | ||
1115 | elsif (/^--with-krb5-flavor=(.*)$/) | ||
1116 | { | ||
1117 | my $krb5_flavor = $1; | ||
1118 | if ($krb5_flavor =~ /^force-[Hh]eimdal$/) | ||
1119 | { | ||
1120 | $xcflags="-DKRB5_HEIMDAL $xcflags"; | ||
1121 | } | ||
1122 | elsif ($krb5_flavor =~ /^MIT/i) | ||
1123 | { | ||
1124 | $xcflags="-DKRB5_MIT $xcflags"; | ||
1125 | if ($krb5_flavor =~ /^MIT[._-]*1[._-]*[01]/i) | ||
1126 | { | ||
1127 | $xcflags="-DKRB5_MIT_OLD11 $xcflags" | ||
1128 | } | ||
1129 | } | ||
1130 | } | ||
938 | elsif (/^([^=]*)=(.*)$/){ $VARS{$1}=$2; } | 1131 | elsif (/^([^=]*)=(.*)$/){ $VARS{$1}=$2; } |
939 | elsif (/^-[lL].*$/) { $l_flags.="$_ "; } | 1132 | elsif (/^-[lL].*$/) { $l_flags.="$_ "; } |
940 | elsif ((!/^-help/) && (!/^-h/) && (!/^-\?/) && /^-.*$/) | 1133 | elsif ((!/^-help/) && (!/^-h/) && (!/^-\?/) && /^-.*$/) |
@@ -942,3 +1135,31 @@ sub read_options | |||
942 | else { return(0); } | 1135 | else { return(0); } |
943 | return(1); | 1136 | return(1); |
944 | } | 1137 | } |
1138 | |||
1139 | sub fipslib_error | ||
1140 | { | ||
1141 | print STDERR "***FIPS module directory sanity check failed***\n"; | ||
1142 | print STDERR "FIPS module build failed, or was deleted\n"; | ||
1143 | print STDERR "Please rebuild FIPS module.\n"; | ||
1144 | exit 1; | ||
1145 | } | ||
1146 | |||
1147 | sub fips_check_files | ||
1148 | { | ||
1149 | my $dir = shift @_; | ||
1150 | my $ret = 1; | ||
1151 | if (!-d $dir) | ||
1152 | { | ||
1153 | print STDERR "FIPS module directory $dir does not exist\n"; | ||
1154 | fipslib_error(); | ||
1155 | } | ||
1156 | foreach (@_) | ||
1157 | { | ||
1158 | if (!-f "$dir${o}$_") | ||
1159 | { | ||
1160 | print STDERR "FIPS module file $_ does not exist!\n"; | ||
1161 | $ret = 0; | ||
1162 | } | ||
1163 | } | ||
1164 | fipslib_error() if ($ret == 0); | ||
1165 | } | ||
diff --git a/src/lib/libcrypto/util/mkdef.pl b/src/lib/libcrypto/util/mkdef.pl index 9918c3d549..6c1e53bb14 100644 --- a/src/lib/libcrypto/util/mkdef.pl +++ b/src/lib/libcrypto/util/mkdef.pl | |||
@@ -83,7 +83,7 @@ my @known_platforms = ( "__FreeBSD__", "PERL5", "NeXT", | |||
83 | my @known_ossl_platforms = ( "VMS", "WIN16", "WIN32", "WINNT", "OS2" ); | 83 | my @known_ossl_platforms = ( "VMS", "WIN16", "WIN32", "WINNT", "OS2" ); |
84 | my @known_algorithms = ( "RC2", "RC4", "RC5", "IDEA", "DES", "BF", | 84 | my @known_algorithms = ( "RC2", "RC4", "RC5", "IDEA", "DES", "BF", |
85 | "CAST", "MD2", "MD4", "MD5", "SHA", "SHA0", "SHA1", | 85 | "CAST", "MD2", "MD4", "MD5", "SHA", "SHA0", "SHA1", |
86 | "RIPEMD", | 86 | "SHA256", "SHA512", "RIPEMD", |
87 | "MDC2", "RSA", "DSA", "DH", "EC", "HMAC", "AES", | 87 | "MDC2", "RSA", "DSA", "DH", "EC", "HMAC", "AES", |
88 | # Envelope "algorithms" | 88 | # Envelope "algorithms" |
89 | "EVP", "X509", "ASN1_TYPEDEFS", | 89 | "EVP", "X509", "ASN1_TYPEDEFS", |
@@ -267,7 +267,7 @@ $crypto.=" crypto/ocsp/ocsp.h"; | |||
267 | $crypto.=" crypto/ui/ui.h crypto/ui/ui_compat.h"; | 267 | $crypto.=" crypto/ui/ui.h crypto/ui/ui_compat.h"; |
268 | $crypto.=" crypto/krb5/krb5_asn.h"; | 268 | $crypto.=" crypto/krb5/krb5_asn.h"; |
269 | $crypto.=" crypto/tmdiff.h"; | 269 | $crypto.=" crypto/tmdiff.h"; |
270 | $crypto.=" fips/fips.h fips/rand/fips_rand.h"; | 270 | $crypto.=" fips-1.0/fips.h fips-1.0/rand/fips_rand.h fips-1.0/sha/fips_sha.h"; |
271 | 271 | ||
272 | my $symhacks="crypto/symhacks.h"; | 272 | my $symhacks="crypto/symhacks.h"; |
273 | 273 | ||
@@ -864,6 +864,9 @@ sub do_defs | |||
864 | $a .= ",RSA" if($s =~ /PEM_Seal(Final|Init|Update)/); | 864 | $a .= ",RSA" if($s =~ /PEM_Seal(Final|Init|Update)/); |
865 | $a .= ",RSA" if($s =~ /RSAPrivateKey/); | 865 | $a .= ",RSA" if($s =~ /RSAPrivateKey/); |
866 | $a .= ",RSA" if($s =~ /SSLv23?_((client|server)_)?method/); | 866 | $a .= ",RSA" if($s =~ /SSLv23?_((client|server)_)?method/); |
867 | # SHA2 algorithms only defined in FIPS mode for | ||
868 | # OpenSSL 0.9.7 | ||
869 | $p .= "OPENSSL_FIPS" if($s =~ /SHA[235]/); | ||
867 | 870 | ||
868 | $platform{$s} = | 871 | $platform{$s} = |
869 | &reduce_platforms((defined($platform{$s})?$platform{$s}.',':"").$p); | 872 | &reduce_platforms((defined($platform{$s})?$platform{$s}.',':"").$p); |
@@ -1011,7 +1014,7 @@ sub is_valid | |||
1011 | { | 1014 | { |
1012 | my ($keywords_txt,$platforms) = @_; | 1015 | my ($keywords_txt,$platforms) = @_; |
1013 | my (@keywords) = split /,/,$keywords_txt; | 1016 | my (@keywords) = split /,/,$keywords_txt; |
1014 | my ($falsesum, $truesum) = (0, !grep(/^[^!]/,@keywords)); | 1017 | my ($falsesum, $truesum) = (0, 1); |
1015 | 1018 | ||
1016 | # Param: one keyword | 1019 | # Param: one keyword |
1017 | sub recognise | 1020 | sub recognise |
@@ -1079,7 +1082,7 @@ sub is_valid | |||
1079 | if ($k =~ /^!(.*)$/) { | 1082 | if ($k =~ /^!(.*)$/) { |
1080 | $falsesum += &recognise($1,$platforms); | 1083 | $falsesum += &recognise($1,$platforms); |
1081 | } else { | 1084 | } else { |
1082 | $truesum += &recognise($k,$platforms); | 1085 | $truesum *= &recognise($k,$platforms); |
1083 | } | 1086 | } |
1084 | } | 1087 | } |
1085 | print STDERR "DEBUG: [",$#keywords,",",$#keywords < 0,"] is_valid($keywords_txt) => (\!$falsesum) && $truesum = ",(!$falsesum) && $truesum,"\n" if $debug; | 1088 | print STDERR "DEBUG: [",$#keywords,",",$#keywords < 0,"] is_valid($keywords_txt) => (\!$falsesum) && $truesum = ",(!$falsesum) && $truesum,"\n" if $debug; |
diff --git a/src/lib/libcrypto/util/mkfiles.pl b/src/lib/libcrypto/util/mkfiles.pl index 928a274303..bc78510f56 100644 --- a/src/lib/libcrypto/util/mkfiles.pl +++ b/src/lib/libcrypto/util/mkfiles.pl | |||
@@ -51,14 +51,15 @@ my @dirs = ( | |||
51 | "crypto/ocsp", | 51 | "crypto/ocsp", |
52 | "crypto/ui", | 52 | "crypto/ui", |
53 | "crypto/krb5", | 53 | "crypto/krb5", |
54 | "fips", | 54 | "fips-1.0", |
55 | "fips/aes", | 55 | "fips-1.0/aes", |
56 | "fips/des", | 56 | "fips-1.0/des", |
57 | "fips/dsa", | 57 | "fips-1.0/dsa", |
58 | "fips/dh", | 58 | "fips-1.0/dh", |
59 | "fips/rand", | 59 | "fips-1.0/hmac", |
60 | "fips/rsa", | 60 | "fips-1.0/rand", |
61 | "fips/sha1", | 61 | "fips-1.0/rsa", |
62 | "fips-1.0/sha", | ||
62 | "ssl", | 63 | "ssl", |
63 | "apps", | 64 | "apps", |
64 | "test", | 65 | "test", |
diff --git a/src/lib/libcrypto/util/mklink.pl b/src/lib/libcrypto/util/mklink.pl index c8653cecc3..182732d959 100644 --- a/src/lib/libcrypto/util/mklink.pl +++ b/src/lib/libcrypto/util/mklink.pl | |||
@@ -14,13 +14,16 @@ | |||
14 | # not contain symbolic links and that the parent of / is never referenced. | 14 | # not contain symbolic links and that the parent of / is never referenced. |
15 | # Apart from this, this script should be able to handle even the most | 15 | # Apart from this, this script should be able to handle even the most |
16 | # pathological cases. | 16 | # pathological cases. |
17 | # | ||
18 | |||
19 | use Cwd; | ||
17 | 20 | ||
18 | my $from = shift; | 21 | my $from = shift; |
19 | my @files = @ARGV; | 22 | my @files = @ARGV; |
20 | 23 | ||
21 | my @from_path = split(/[\\\/]/, $from); | 24 | my @from_path = split(/[\\\/]/, $from); |
22 | my $pwd = `pwd`; | 25 | my $pwd = getcwd(); |
23 | chop($pwd); | 26 | chomp($pwd); |
24 | my @pwd_path = split(/[\\\/]/, $pwd); | 27 | my @pwd_path = split(/[\\\/]/, $pwd); |
25 | 28 | ||
26 | my @to_path = (); | 29 | my @to_path = (); |
diff --git a/src/lib/libcrypto/util/pl/BC-32.pl b/src/lib/libcrypto/util/pl/BC-32.pl index 897ae9d824..28869c868d 100644 --- a/src/lib/libcrypto/util/pl/BC-32.pl +++ b/src/lib/libcrypto/util/pl/BC-32.pl | |||
@@ -18,7 +18,7 @@ $out_def="out32"; | |||
18 | $tmp_def="tmp32"; | 18 | $tmp_def="tmp32"; |
19 | $inc_def="inc32"; | 19 | $inc_def="inc32"; |
20 | #enable max error messages, disable most common warnings | 20 | #enable max error messages, disable most common warnings |
21 | $cflags="-DWIN32_LEAN_AND_MEAN -q -w-aus -w-par -w-inl -c -tWC -tWM -DOPENSSL_SYSNAME_WIN32 -DL_ENDIAN -DDSO_WIN32 -D_stricmp=stricmp "; | 21 | $cflags="-DWIN32_LEAN_AND_MEAN -q -w-ccc -w-rch -w-pia -w-aus -w-par -w-inl -c -tWC -tWM -DOPENSSL_SYSNAME_WIN32 -DL_ENDIAN -DDSO_WIN32 -D_stricmp=stricmp -D_strnicmp=strnicmp "; |
22 | if ($debug) | 22 | if ($debug) |
23 | { | 23 | { |
24 | $cflags.="-Od -y -v -vi- -D_DEBUG"; | 24 | $cflags.="-Od -y -v -vi- -D_DEBUG"; |
@@ -51,7 +51,7 @@ $lfile=''; | |||
51 | $shlib_ex_obj=""; | 51 | $shlib_ex_obj=""; |
52 | $app_ex_obj="c0x32.obj"; | 52 | $app_ex_obj="c0x32.obj"; |
53 | 53 | ||
54 | $asm='nasmw -f obj'; | 54 | $asm='nasmw -f obj -d__omf__'; |
55 | $asm.=" /Zi" if $debug; | 55 | $asm.=" /Zi" if $debug; |
56 | $afile='-o'; | 56 | $afile='-o'; |
57 | 57 | ||
@@ -106,9 +106,13 @@ sub do_lib_rule | |||
106 | $ret.="$target: $objs\n"; | 106 | $ret.="$target: $objs\n"; |
107 | if (!$shlib) | 107 | if (!$shlib) |
108 | { | 108 | { |
109 | # $ret.="\t\$(RM) \$(O_$Name)\n"; | 109 | $ret.=<<___; |
110 | $ret.="\techo LIB $<\n"; | 110 | -\$(RM) $lfile$target |
111 | $ret.="\t&\$(MKLIB) $lfile$target -+\$**\n"; | 111 | \$(MKLIB) $lfile$target \@&&! |
112 | +\$(**: = &^ | ||
113 | +) | ||
114 | ! | ||
115 | ___ | ||
112 | } | 116 | } |
113 | else | 117 | else |
114 | { | 118 | { |
diff --git a/src/lib/libcrypto/util/pl/OS2-EMX.pl b/src/lib/libcrypto/util/pl/OS2-EMX.pl index 75d72ebbcb..8dbeaa7a08 100644 --- a/src/lib/libcrypto/util/pl/OS2-EMX.pl +++ b/src/lib/libcrypto/util/pl/OS2-EMX.pl | |||
@@ -68,6 +68,7 @@ if (!$no_asm && !$fips) | |||
68 | $sha1_asm_src="crypto/sha/asm/s1-os2.asm"; | 68 | $sha1_asm_src="crypto/sha/asm/s1-os2.asm"; |
69 | $rmd160_asm_obj="crypto/ripemd/asm/rm-os2$obj"; | 69 | $rmd160_asm_obj="crypto/ripemd/asm/rm-os2$obj"; |
70 | $rmd160_asm_src="crypto/ripemd/asm/rm-os2.asm"; | 70 | $rmd160_asm_src="crypto/ripemd/asm/rm-os2.asm"; |
71 | $cflags.=" -DBN_ASM -DMD5_ASM -DSHA1_ASM -DOPENSSL_BN_ASM_PART_WORDS"; | ||
71 | } | 72 | } |
72 | 73 | ||
73 | if ($shlib) | 74 | if ($shlib) |
diff --git a/src/lib/libcrypto/util/pl/VC-32-GMAKE.pl b/src/lib/libcrypto/util/pl/VC-32-GMAKE.pl new file mode 100644 index 0000000000..b5bbcac6c2 --- /dev/null +++ b/src/lib/libcrypto/util/pl/VC-32-GMAKE.pl | |||
@@ -0,0 +1,222 @@ | |||
1 | #!/usr/local/bin/perl | ||
2 | # VCw32lib.pl - the file for Visual C++ 4.[01] for windows NT, static libraries | ||
3 | # | ||
4 | |||
5 | |||
6 | if ($fips && !$shlib) | ||
7 | { | ||
8 | $crypto="libeayfips32"; | ||
9 | $crypto_compat = "libeaycompat32.lib"; | ||
10 | } | ||
11 | else | ||
12 | { | ||
13 | $crypto="libeay32"; | ||
14 | } | ||
15 | $ssl= "ssleay32"; | ||
16 | |||
17 | $o='/'; | ||
18 | #$cp='copy nul+'; # Timestamps get stuffed otherwise | ||
19 | #$rm='del'; | ||
20 | |||
21 | $cp='cp'; | ||
22 | $rm='rm'; | ||
23 | |||
24 | $zlib_lib="zlib1.lib"; | ||
25 | |||
26 | # C compiler stuff | ||
27 | $cc='cl'; | ||
28 | $cflags=' -MD -W3 -WX -Ox -O2 -Ob2 -Gs0 -GF -Gy -nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -DDSO_WIN32'; | ||
29 | $cflags.=' -D_CRT_SECURE_NO_DEPRECATE'; # shut up VC8 | ||
30 | $cflags.=' -D_CRT_NONSTDC_NO_DEPRECATE'; # shut up VC8 | ||
31 | $lflags="-nologo -subsystem:console -machine:I386 -opt:ref"; | ||
32 | $mlflags=''; | ||
33 | |||
34 | $out_def="gmout32"; | ||
35 | $tmp_def="gmtmp32"; | ||
36 | $inc_def="gminc32"; | ||
37 | |||
38 | if ($debug) | ||
39 | { | ||
40 | $cflags=" -MDd -W3 -WX -Zi -Yd -Od -nologo -DOPENSSL_SYSNAME_WIN32 -D_DEBUG -DL_ENDIAN -DWIN32_LEAN_AND_MEAN -DDEBUG -DDSO_WIN32"; | ||
41 | $lflags.=" -debug"; | ||
42 | $mlflags.=' -debug'; | ||
43 | } | ||
44 | $cflags .= " -DOPENSSL_SYSNAME_WINNT" if $NT == 1; | ||
45 | |||
46 | $obj='.obj'; | ||
47 | $ofile="-Fo"; | ||
48 | |||
49 | # EXE linking stuff | ||
50 | $link="link"; | ||
51 | $efile="-out:"; | ||
52 | $exep='.exe'; | ||
53 | if ($no_sock) | ||
54 | { $ex_libs=""; } | ||
55 | else { $ex_libs="wsock32.lib user32.lib gdi32.lib"; } | ||
56 | |||
57 | # static library stuff | ||
58 | $mklib='lib'; | ||
59 | $ranlib=''; | ||
60 | $plib=""; | ||
61 | $libp=".lib"; | ||
62 | $shlibp=($shlib)?".dll":".lib"; | ||
63 | $lfile='-out:'; | ||
64 | |||
65 | $shlib_ex_obj=""; | ||
66 | $app_ex_obj="setargv.obj"; | ||
67 | if ($nasm) { | ||
68 | $asm='nasmw -f win32'; | ||
69 | $afile='-o '; | ||
70 | } else { | ||
71 | $asm='ml -Cp -coff -c -Cx'; | ||
72 | $asm.=" -Zi" if $debug; | ||
73 | $afile='-Fo'; | ||
74 | } | ||
75 | |||
76 | $bn_asm_obj=''; | ||
77 | $bn_asm_src=''; | ||
78 | $des_enc_obj=''; | ||
79 | $des_enc_src=''; | ||
80 | $bf_enc_obj=''; | ||
81 | $bf_enc_src=''; | ||
82 | |||
83 | if (!$no_asm && !$fips) | ||
84 | { | ||
85 | $bn_asm_obj='crypto/bn/asm/bn_win32.obj'; | ||
86 | $bn_asm_src='crypto/bn/asm/bn_win32.asm'; | ||
87 | $des_enc_obj='crypto/des/asm/d_win32.obj crypto/des/asm/y_win32.obj'; | ||
88 | $des_enc_src='crypto/des/asm/d_win32.asm crypto/des/asm/y_win32.asm'; | ||
89 | $bf_enc_obj='crypto/bf/asm/b_win32.obj'; | ||
90 | $bf_enc_src='crypto/bf/asm/b_win32.asm'; | ||
91 | $cast_enc_obj='crypto/cast/asm/c_win32.obj'; | ||
92 | $cast_enc_src='crypto/cast/asm/c_win32.asm'; | ||
93 | $rc4_enc_obj='crypto/rc4/asm/r4_win32.obj'; | ||
94 | $rc4_enc_src='crypto/rc4/asm/r4_win32.asm'; | ||
95 | $rc5_enc_obj='crypto/rc5/asm/r5_win32.obj'; | ||
96 | $rc5_enc_src='crypto/rc5/asm/r5_win32.asm'; | ||
97 | $md5_asm_obj='crypto/md5/asm/m5_win32.obj'; | ||
98 | $md5_asm_src='crypto/md5/asm/m5_win32.asm'; | ||
99 | $sha1_asm_obj='crypto/sha/asm/s1_win32.obj'; | ||
100 | $sha1_asm_src='crypto/sha/asm/s1_win32.asm'; | ||
101 | $rmd160_asm_obj='crypto/ripemd/asm/rm_win32.obj'; | ||
102 | $rmd160_asm_src='crypto/ripemd/asm/rm_win32.asm'; | ||
103 | $cflags.=" -DBN_ASM -DMD5_ASM -DSHA1_ASM -DRMD160_ASM"; | ||
104 | } | ||
105 | |||
106 | if ($shlib) | ||
107 | { | ||
108 | $mlflags.=" $lflags -dll"; | ||
109 | # $cflags =~ s| -MD| -MT|; | ||
110 | $lib_cflag=" -D_WINDLL"; | ||
111 | $out_def="gmout32dll"; | ||
112 | $tmp_def="gmtmp32dll"; | ||
113 | } | ||
114 | |||
115 | $cflags.=" -Fd$out_def"; | ||
116 | |||
117 | sub do_lib_rule | ||
118 | { | ||
119 | local($objs,$target,$name,$shlib,$ign,$base_addr, $fips_get_sig, $fips_premain_src)=@_; | ||
120 | local($ret,$Name); | ||
121 | |||
122 | $taget =~ s/\//$o/g if $o ne '/'; | ||
123 | ($Name=$name) =~ tr/a-z/A-Z/; | ||
124 | my $base_arg; | ||
125 | if ($base_addr ne "") | ||
126 | { | ||
127 | $base_arg= " -base:$base_addr"; | ||
128 | } | ||
129 | else | ||
130 | { | ||
131 | $base_arg = ""; | ||
132 | } | ||
133 | |||
134 | |||
135 | # $target="\$(LIB_D)$o$target"; | ||
136 | if (!$shlib) | ||
137 | { | ||
138 | # $ret.="\t\$(RM) \$(O_$Name)\n"; | ||
139 | $ret.="$target: $objs\n"; | ||
140 | $ex =' advapi32.lib'; | ||
141 | $ret.="\t\$(MKLIB) $lfile$target $objs $ex\n\n"; | ||
142 | } | ||
143 | else | ||
144 | { | ||
145 | local($ex)=($target =~ /O_SSL/)?' $(L_CRYPTO)':''; | ||
146 | $ex.=' wsock32.lib gdi32.lib advapi32.lib user32.lib'; | ||
147 | $ex.=" $zlib_lib" if $zlib_opt == 1 && $target =~ /O_CRYPTO/; | ||
148 | if (defined $fips_get_sig) | ||
149 | { | ||
150 | $ret.="$target: \$(O_FIPSCANISTER) $objs $fips_get_sig\n"; | ||
151 | $ret.="\tFIPS_LINK=\$(LINK) "; | ||
152 | $ret.="FIPS_CC=\$(CC) "; | ||
153 | $ret.="FIPS_CC_ARGS=\"-Fo\$(OBJ_D)${o}fips_premain.obj \$(SHLIB_CFLAGS) -c\" "; | ||
154 | $ret.="FIPS_PREMAIN_DSO=$fips_get_sig "; | ||
155 | $ret.="FIPS_TARGET=$target "; | ||
156 | $ret.="FIPS_LIBDIR=\$(FIPSLIB_D) "; | ||
157 | $ret.="\$(FIPSLINK) \$(MLFLAGS) $base_arg $efile$target "; | ||
158 | $ret.="-def:ms/${Name}.def \$(SHLIB_EX_OBJ) $objs "; | ||
159 | $ret.="\$(OBJ_D)${o}fips_premain.obj $ex\n\n"; | ||
160 | } | ||
161 | else | ||
162 | { | ||
163 | $ret.="$target: $objs\n"; | ||
164 | $ret.="\t\$(LINK) \$(MLFLAGS) $base_arg $efile$target /def:ms/${Name}.def \$(SHLIB_EX_OBJ) $objs $ex\n\n"; | ||
165 | } | ||
166 | } | ||
167 | $ret.="\n"; | ||
168 | return($ret); | ||
169 | } | ||
170 | |||
171 | sub do_link_rule | ||
172 | { | ||
173 | local($target,$files,$dep_libs,$libs,$standalone)=@_; | ||
174 | local($ret,$_); | ||
175 | $file =~ s/\//$o/g if $o ne '/'; | ||
176 | $n=&bname($targer); | ||
177 | if ($standalone) | ||
178 | { | ||
179 | $ret.="$target: $files $dep_libs\n"; | ||
180 | $ret.="\t\$(LINK) \$(LFLAGS) $efile$target "; | ||
181 | $ret.="$files $libs\n\n"; | ||
182 | } | ||
183 | elsif ($fips && !$shlib) | ||
184 | { | ||
185 | $ret.="$target: \$(O_FIPSCANISTER) $files $dep_libs\n"; | ||
186 | $ret.="\tFIPS_LINK=\$(LINK) "; | ||
187 | $ret.="FIPS_CC=\$(CC) "; | ||
188 | $ret.="FIPS_CC_ARGS=\"-Fo\$(OBJ_D)${o}fips_premain.obj \$(SHLIB_CFLAGS) -c\" "; | ||
189 | $ret.="FIPS_PREMAIN_DSO= "; | ||
190 | $ret.="FIPS_TARGET=$target "; | ||
191 | $ret.="FIPS_LIBDIR=\$(FIPSLIB_D) "; | ||
192 | $ret.=" \$(FIPSLINK) \$(LFLAGS) $efile$target "; | ||
193 | $ret.="\$(APP_EX_OBJ) $files \$(OBJ_D)${o}fips_premain.obj $libs\n\n"; | ||
194 | } | ||
195 | else | ||
196 | { | ||
197 | $ret.="$target: $files $dep_libs\n"; | ||
198 | $ret.="\t\$(LINK) \$(LFLAGS) $efile$target "; | ||
199 | $ret.="\$(APP_EX_OBJ) $files $libs\n\n"; | ||
200 | } | ||
201 | $ret.="\n"; | ||
202 | return($ret); | ||
203 | } | ||
204 | |||
205 | sub do_rlink_rule | ||
206 | { | ||
207 | local($target,$files,$check_hash, $deps)=@_; | ||
208 | local($ret,$_); | ||
209 | |||
210 | $file =~ s/\//$o/g if $o ne '/'; | ||
211 | $n=&bname($targer); | ||
212 | $ret.="$target: $check_hash $files $deps\n"; | ||
213 | $ret.="\t\$(PERL) util${o}checkhash.pl -chdir fips-1.0 -program_path ..$o$check_hash\n"; | ||
214 | $ret.="\t\$(MKCANISTER) $target $files\n"; | ||
215 | $ret.="\t$check_hash $target > $target.sha1\n"; | ||
216 | $ret.="\t\$(CP) fips-1.0${o}fips_premain.c \$(FIPSLIB_D)\n"; | ||
217 | $ret.="\t$check_hash \$(FIPSLIB_D)${o}fips_premain.c > \$(FIPSLIB_D)${o}fips_premain.c.sha1\n\n"; | ||
218 | return($ret); | ||
219 | } | ||
220 | |||
221 | |||
222 | 1; | ||
diff --git a/src/lib/libcrypto/util/pl/VC-32.pl b/src/lib/libcrypto/util/pl/VC-32.pl index cf689b9feb..4e97dfa9af 100644 --- a/src/lib/libcrypto/util/pl/VC-32.pl +++ b/src/lib/libcrypto/util/pl/VC-32.pl | |||
@@ -3,15 +3,28 @@ | |||
3 | # | 3 | # |
4 | 4 | ||
5 | $ssl= "ssleay32"; | 5 | $ssl= "ssleay32"; |
6 | $crypto="libeay32"; | 6 | |
7 | if ($fips && !$shlib) | ||
8 | { | ||
9 | $crypto="libeayfips32"; | ||
10 | $crypto_compat = "libeaycompat32.lib"; | ||
11 | } | ||
12 | else | ||
13 | { | ||
14 | $crypto="libeay32"; | ||
15 | } | ||
7 | 16 | ||
8 | $o='\\'; | 17 | $o='\\'; |
9 | $cp='copy nul+'; # Timestamps get stuffed otherwise | 18 | $cp='copy nul+'; # Timestamps get stuffed otherwise |
10 | $rm='del'; | 19 | $rm='del'; |
11 | 20 | ||
21 | $zlib_lib="zlib1.lib"; | ||
22 | |||
12 | # C compiler stuff | 23 | # C compiler stuff |
13 | $cc='cl'; | 24 | $cc='cl'; |
14 | $cflags=' /MD /W3 /WX /G5 /Ox /O2 /Ob2 /Gs0 /GF /Gy /nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -DDSO_WIN32'; | 25 | $cflags=' /MD /W3 /WX /Ox /O2 /Ob2 /Gs0 /GF /Gy /nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -DDSO_WIN32'; |
26 | $cflags.=' -D_CRT_SECURE_NO_DEPRECATE'; # shut up VC8 | ||
27 | $cflags.=' -D_CRT_NONSTDC_NO_DEPRECATE'; # shut up VC8 | ||
15 | $lflags="/nologo /subsystem:console /machine:I386 /opt:ref"; | 28 | $lflags="/nologo /subsystem:console /machine:I386 /opt:ref"; |
16 | $mlflags=''; | 29 | $mlflags=''; |
17 | 30 | ||
@@ -100,25 +113,56 @@ $cflags.=" /Fd$out_def"; | |||
100 | 113 | ||
101 | sub do_lib_rule | 114 | sub do_lib_rule |
102 | { | 115 | { |
103 | local($objs,$target,$name,$shlib)=@_; | 116 | local($objs,$target,$name,$shlib,$ign,$base_addr) = @_; |
104 | local($ret,$Name); | 117 | local($ret,$Name); |
105 | 118 | ||
106 | $taget =~ s/\//$o/g if $o ne '/'; | 119 | $taget =~ s/\//$o/g if $o ne '/'; |
107 | ($Name=$name) =~ tr/a-z/A-Z/; | 120 | ($Name=$name) =~ tr/a-z/A-Z/; |
121 | my $base_arg; | ||
122 | if ($base_addr ne "") | ||
123 | { | ||
124 | $base_arg= " /base:$base_addr"; | ||
125 | } | ||
126 | else | ||
127 | { | ||
128 | $base_arg = ""; | ||
129 | } | ||
130 | |||
108 | 131 | ||
109 | # $target="\$(LIB_D)$o$target"; | 132 | # $target="\$(LIB_D)$o$target"; |
110 | $ret.="$target: $objs\n"; | ||
111 | if (!$shlib) | 133 | if (!$shlib) |
112 | { | 134 | { |
113 | # $ret.="\t\$(RM) \$(O_$Name)\n"; | 135 | # $ret.="\t\$(RM) \$(O_$Name)\n"; |
136 | $ret.="$target: $objs\n"; | ||
114 | $ex =' advapi32.lib'; | 137 | $ex =' advapi32.lib'; |
138 | $ex.=" \$(FIPSLIB_D)${o}_chkstk.o" if $fips && $target =~ /O_CRYPTO/; | ||
115 | $ret.="\t\$(MKLIB) $lfile$target @<<\n $objs $ex\n<<\n"; | 139 | $ret.="\t\$(MKLIB) $lfile$target @<<\n $objs $ex\n<<\n"; |
116 | } | 140 | } |
117 | else | 141 | else |
118 | { | 142 | { |
119 | local($ex)=($target =~ /O_SSL/)?' $(L_CRYPTO)':''; | 143 | local($ex)=($target =~ /O_SSL/)?' $(L_CRYPTO)':''; |
120 | $ex.=' wsock32.lib gdi32.lib advapi32.lib'; | 144 | $ex.=' wsock32.lib gdi32.lib advapi32.lib user32.lib'; |
121 | $ret.="\t\$(LINK) \$(MLFLAGS) $efile$target /def:ms/${Name}.def @<<\n \$(SHLIB_EX_OBJ) $objs $ex\n<<\n"; | 145 | $ex.=" $zlib_lib" if $zlib_opt == 1 && $target =~ /O_CRYPTO/; |
146 | if ($fips && $target =~ /O_CRYPTO/) | ||
147 | { | ||
148 | $ex.=" \$(FIPSLIB_D)${o}_chkstk.o"; | ||
149 | $ret.="$target: $objs \$(PREMAIN_DSO_EXE)\n"; | ||
150 | $ret.="\tSET FIPS_LINK=\$(LINK)\n"; | ||
151 | $ret.="\tSET FIPS_CC=\$(CC)\n"; | ||
152 | $ret.="\tSET FIPS_CC_ARGS=/Fo\$(OBJ_D)${o}fips_premain.obj \$(SHLIB_CFLAGS) -c\n"; | ||
153 | $ret.="\tSET PREMAIN_DSO_EXE=\$(PREMAIN_DSO_EXE)\n"; | ||
154 | $ret.="\tSET FIPS_SHA1_EXE=\$(FIPS_SHA1_EXE)\n"; | ||
155 | $ret.="\tSET FIPS_TARGET=$target\n"; | ||
156 | $ret.="\tSET FIPSLIB_D=\$(FIPSLIB_D)\n"; | ||
157 | $ret.="\t\$(FIPSLINK) \$(MLFLAGS) $base_arg $efile$target "; | ||
158 | $ret.="/def:ms/${Name}.def @<<\n \$(SHLIB_EX_OBJ) $objs "; | ||
159 | $ret.="\$(OBJ_D)${o}fips_premain.obj $ex\n<<\n"; | ||
160 | } | ||
161 | else | ||
162 | { | ||
163 | $ret.="$target: $objs\n"; | ||
164 | $ret.="\t\$(LINK) \$(MLFLAGS) $base_arg $efile$target /def:ms/${Name}.def @<<\n \$(SHLIB_EX_OBJ) $objs $ex\n<<\n"; | ||
165 | } | ||
122 | } | 166 | } |
123 | $ret.="\n"; | 167 | $ret.="\n"; |
124 | return($ret); | 168 | return($ret); |
@@ -126,20 +170,51 @@ sub do_lib_rule | |||
126 | 170 | ||
127 | sub do_link_rule | 171 | sub do_link_rule |
128 | { | 172 | { |
129 | local($target,$files,$dep_libs,$libs,$sha1file,$openssl)=@_; | 173 | local($target,$files,$dep_libs,$libs,$standalone)=@_; |
130 | local($ret,$_); | 174 | local($ret,$_); |
131 | |||
132 | $file =~ s/\//$o/g if $o ne '/'; | 175 | $file =~ s/\//$o/g if $o ne '/'; |
133 | $n=&bname($targer); | 176 | $n=&bname($targer); |
134 | $ret.="$target: $files $dep_libs\n"; | 177 | $ret.="$target: $files $dep_libs\n"; |
135 | $ret.=" \$(LINK) \$(LFLAGS) $efile$target @<<\n"; | 178 | if ($standalone) |
136 | $ret.=" \$(APP_EX_OBJ) $files $libs\n<<\n"; | 179 | { |
137 | if (defined $sha1file) | 180 | $ret.=" \$(LINK) \$(LFLAGS) $efile$target @<<\n\t"; |
181 | $ret.="\$(FIPSLIB_D)${o}_chkstk.o " if ($files =~ /O_FIPSCANISTER/); | ||
182 | $ret.="$files $libs\n<<\n"; | ||
183 | } | ||
184 | elsif ($fips && !$shlib) | ||
138 | { | 185 | { |
139 | $ret.=" $openssl sha1 -hmac etaonrishdlcupfm -binary $target > $sha1file"; | 186 | $ret.="\tSET FIPS_LINK=\$(LINK)\n"; |
187 | $ret.="\tSET FIPS_CC=\$(CC)\n"; | ||
188 | $ret.="\tSET FIPS_CC_ARGS=/Fo\$(OBJ_D)${o}fips_premain.obj \$(SHLIB_CFLAGS) -c\n"; | ||
189 | $ret.="\tSET PREMAIN_DSO_EXE=\n"; | ||
190 | $ret.="\tSET FIPS_TARGET=$target\n"; | ||
191 | $ret.="\tSET FIPS_SHA1_EXE=\$(FIPS_SHA1_EXE)\n"; | ||
192 | $ret.="\tSET FIPSLIB_D=\$(FIPSLIB_D)\n"; | ||
193 | $ret.=" \$(FIPSLINK) \$(LFLAGS) $efile$target @<<\n"; | ||
194 | $ret.=" \$(APP_EX_OBJ) $files \$(OBJ_D)${o}fips_premain.obj $libs\n<<\n"; | ||
140 | } | 195 | } |
196 | else | ||
197 | { | ||
198 | $ret.=" \$(LINK) \$(LFLAGS) $efile$target @<<\n"; | ||
199 | $ret.=" \$(APP_EX_OBJ) $files $libs\n<<\n"; | ||
200 | } | ||
201 | $ret.="\n"; | ||
202 | return($ret); | ||
203 | } | ||
204 | |||
205 | sub do_rlink_rule | ||
206 | { | ||
207 | local($target,$files,$dep_libs,$libs)=@_; | ||
208 | local($ret,$_); | ||
209 | |||
210 | $file =~ s/\//$o/g if $o ne '/'; | ||
211 | $n=&bname($targer); | ||
212 | $ret.="$target: $files $dep_libs\n"; | ||
213 | $ret.=" \$(MKCANISTER) $target <<\n"; | ||
214 | $ret.="INPUT($files)\n<<\n"; | ||
141 | $ret.="\n"; | 215 | $ret.="\n"; |
142 | return($ret); | 216 | return($ret); |
143 | } | 217 | } |
144 | 218 | ||
219 | |||
145 | 1; | 220 | 1; |
diff --git a/src/lib/libcrypto/util/pod2man.pl b/src/lib/libcrypto/util/pod2man.pl index 657e4e264e..546d1ec186 100644 --- a/src/lib/libcrypto/util/pod2man.pl +++ b/src/lib/libcrypto/util/pod2man.pl | |||
@@ -425,6 +425,7 @@ if ($name ne 'something') { | |||
425 | } | 425 | } |
426 | next if /^=cut\b/; # DB_File and Net::Ping have =cut before NAME | 426 | next if /^=cut\b/; # DB_File and Net::Ping have =cut before NAME |
427 | next if /^=pod\b/; # It is OK to have =pod before NAME | 427 | next if /^=pod\b/; # It is OK to have =pod before NAME |
428 | next if /^=for\s+comment\b/; # It is OK to have =for comment before NAME | ||
428 | die "$0: Invalid man page - 1st pod line is not NAME in $ARGV[0]\n" unless $lax; | 429 | die "$0: Invalid man page - 1st pod line is not NAME in $ARGV[0]\n" unless $lax; |
429 | } | 430 | } |
430 | die "$0: Invalid man page - no documentation in $ARGV[0]\n" unless $lax; | 431 | die "$0: Invalid man page - no documentation in $ARGV[0]\n" unless $lax; |
diff --git a/src/lib/libcrypto/util/selftest.pl b/src/lib/libcrypto/util/selftest.pl index e9d5aa8938..4778c5ab01 100644 --- a/src/lib/libcrypto/util/selftest.pl +++ b/src/lib/libcrypto/util/selftest.pl | |||
@@ -49,7 +49,7 @@ if (open(IN,"<Makefile")) { | |||
49 | } | 49 | } |
50 | 50 | ||
51 | $cversion=`$cc -v 2>&1`; | 51 | $cversion=`$cc -v 2>&1`; |
52 | $cversion=`$cc -V 2>&1` if $cversion =~ "usage"; | 52 | $cversion=`$cc -V 2>&1` if $cversion =~ "[Uu]sage"; |
53 | $cversion=`$cc -V |head -1` if $cversion =~ "Error"; | 53 | $cversion=`$cc -V |head -1` if $cversion =~ "Error"; |
54 | $cversion=`$cc --version` if $cversion eq ""; | 54 | $cversion=`$cc --version` if $cversion eq ""; |
55 | $cversion =~ s/Reading specs.*\n//; | 55 | $cversion =~ s/Reading specs.*\n//; |
@@ -130,15 +130,21 @@ if (system("make 2>&1 | tee make.log") > 255) { | |||
130 | goto err; | 130 | goto err; |
131 | } | 131 | } |
132 | 132 | ||
133 | $_=$options; | 133 | # Not sure why this is here. The tests themselves can detect if their |
134 | s/no-asm//; | 134 | # particular feature isn't included, and should therefore skip themselves. |
135 | s/no-shared//; | 135 | # To skip *all* tests just because one algorithm isn't included is like |
136 | s/no-krb5//; | 136 | # shooting mosquito with an elephant gun... |
137 | if (/no-/) | 137 | # -- Richard Levitte, inspired by problem report 1089 |
138 | { | 138 | # |
139 | print OUT "Test skipped.\n"; | 139 | #$_=$options; |
140 | goto err; | 140 | #s/no-asm//; |
141 | } | 141 | #s/no-shared//; |
142 | #s/no-krb5//; | ||
143 | #if (/no-/) | ||
144 | #{ | ||
145 | # print OUT "Test skipped.\n"; | ||
146 | # goto err; | ||
147 | #} | ||
142 | 148 | ||
143 | print "Running make test...\n"; | 149 | print "Running make test...\n"; |
144 | if (system("make test 2>&1 | tee maketest.log") > 255) | 150 | if (system("make test 2>&1 | tee maketest.log") > 255) |
diff --git a/src/lib/libcrypto/x509/Makefile b/src/lib/libcrypto/x509/Makefile index 5fb774f1c7..ee3f8a4a23 100644 --- a/src/lib/libcrypto/x509/Makefile +++ b/src/lib/libcrypto/x509/Makefile | |||
@@ -1,5 +1,5 @@ | |||
1 | # | 1 | # |
2 | # SSLeay/crypto/x509/Makefile | 2 | # OpenSSL/crypto/x509/Makefile |
3 | # | 3 | # |
4 | 4 | ||
5 | DIR= x509 | 5 | DIR= x509 |
diff --git a/src/lib/libcrypto/x509v3/Makefile b/src/lib/libcrypto/x509v3/Makefile index ed2f91cbb3..49423f39f7 100644 --- a/src/lib/libcrypto/x509v3/Makefile +++ b/src/lib/libcrypto/x509v3/Makefile | |||
@@ -1,5 +1,5 @@ | |||
1 | # | 1 | # |
2 | # SSLeay/crypto/x509v3/Makefile | 2 | # OpenSSL/crypto/x509v3/Makefile |
3 | # | 3 | # |
4 | 4 | ||
5 | DIR= x509v3 | 5 | DIR= x509v3 |