summaryrefslogtreecommitdiff
path: root/src/lib/libssl/test
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libssl/test')
-rw-r--r--src/lib/libssl/test/CAss.cnf2
-rw-r--r--src/lib/libssl/test/Makefile698
-rw-r--r--src/lib/libssl/test/Uss.cnf4
-rw-r--r--src/lib/libssl/test/bctest.com152
-rw-r--r--src/lib/libssl/test/bntest.com76
-rwxr-xr-xsrc/lib/libssl/test/clean_test.com35
-rw-r--r--src/lib/libssl/test/dummytest.c48
-rw-r--r--src/lib/libssl/test/evptests.txt321
-rw-r--r--src/lib/libssl/test/igetest.c503
-rw-r--r--src/lib/libssl/test/maketests.com1085
-rw-r--r--src/lib/libssl/test/tcrl.com88
-rw-r--r--src/lib/libssl/test/test_aesni69
-rw-r--r--src/lib/libssl/test/testca.com52
-rw-r--r--src/lib/libssl/test/testenc.com66
-rw-r--r--src/lib/libssl/test/testgen.com58
-rw-r--r--src/lib/libssl/test/tests.com366
-rw-r--r--src/lib/libssl/test/testss.com123
-rw-r--r--src/lib/libssl/test/testssl10
-rw-r--r--src/lib/libssl/test/testssl.com208
-rw-r--r--src/lib/libssl/test/testtsa.com255
-rw-r--r--src/lib/libssl/test/tpkcs7.com59
-rw-r--r--src/lib/libssl/test/tpkcs7d.com52
-rw-r--r--src/lib/libssl/test/treq.com88
-rw-r--r--src/lib/libssl/test/trsa.com99
-rw-r--r--src/lib/libssl/test/tsid.com88
-rw-r--r--src/lib/libssl/test/tverify.com65
-rw-r--r--src/lib/libssl/test/tx509.com88
27 files changed, 4745 insertions, 13 deletions
diff --git a/src/lib/libssl/test/CAss.cnf b/src/lib/libssl/test/CAss.cnf
index 109bc8c10b..546e660626 100644
--- a/src/lib/libssl/test/CAss.cnf
+++ b/src/lib/libssl/test/CAss.cnf
@@ -7,7 +7,7 @@ RANDFILE = ./.rnd
7 7
8#################################################################### 8####################################################################
9[ req ] 9[ req ]
10default_bits = 2048 10default_bits = 1024
11default_keyfile = keySS.pem 11default_keyfile = keySS.pem
12distinguished_name = req_distinguished_name 12distinguished_name = req_distinguished_name
13encrypt_rsa_key = no 13encrypt_rsa_key = no
diff --git a/src/lib/libssl/test/Makefile b/src/lib/libssl/test/Makefile
new file mode 100644
index 0000000000..3912f82427
--- /dev/null
+++ b/src/lib/libssl/test/Makefile
@@ -0,0 +1,698 @@
1#
2# test/Makefile
3#
4
5DIR= test
6TOP= ..
7CC= cc
8INCLUDES= -I$(TOP) -I../include $(KRB5_INCLUDES)
9CFLAG= -g
10MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
11PERL= perl
12# KRB5 stuff
13KRB5_INCLUDES=
14LIBKRB5=
15
16PEX_LIBS=
17EX_LIBS= #-lnsl -lsocket
18
19CFLAGS= $(INCLUDES) $(CFLAG)
20
21GENERAL=Makefile maketests.com \
22 tests.com testenc.com tx509.com trsa.com tcrl.com tsid.com treq.com \
23 tpkcs7.com tpkcs7d.com tverify.com testgen.com testss.com testssl.com \
24 testca.com VMSca-response.1 VMSca-response.2
25
26DLIBCRYPTO= ../libcrypto.a
27DLIBSSL= ../libssl.a
28LIBCRYPTO= -L.. -lcrypto
29LIBSSL= -L.. -lssl
30
31BNTEST= bntest
32ECTEST= ectest
33ECDSATEST= ecdsatest
34ECDHTEST= ecdhtest
35EXPTEST= exptest
36IDEATEST= ideatest
37SHATEST= shatest
38SHA1TEST= sha1test
39SHA256TEST= sha256t
40SHA512TEST= sha512t
41MDC2TEST= mdc2test
42RMDTEST= rmdtest
43MD2TEST= md2test
44MD4TEST= md4test
45MD5TEST= md5test
46HMACTEST= hmactest
47WPTEST= wp_test
48RC2TEST= rc2test
49RC4TEST= rc4test
50RC5TEST= rc5test
51BFTEST= bftest
52CASTTEST= casttest
53DESTEST= destest
54RANDTEST= randtest
55DHTEST= dhtest
56DSATEST= dsatest
57METHTEST= methtest
58SSLTEST= ssltest
59RSATEST= rsa_test
60ENGINETEST= enginetest
61EVPTEST= evp_test
62IGETEST= igetest
63JPAKETEST= jpaketest
64ASN1TEST= asn1test
65
66TESTS= alltests
67
68EXE= $(BNTEST)$(EXE_EXT) $(ECTEST)$(EXE_EXT) $(ECDSATEST)$(EXE_EXT) $(ECDHTEST)$(EXE_EXT) $(IDEATEST)$(EXE_EXT) \
69 $(MD2TEST)$(EXE_EXT) $(MD4TEST)$(EXE_EXT) $(MD5TEST)$(EXE_EXT) $(HMACTEST)$(EXE_EXT) $(WPTEST)$(EXE_EXT) \
70 $(RC2TEST)$(EXE_EXT) $(RC4TEST)$(EXE_EXT) $(RC5TEST)$(EXE_EXT) \
71 $(DESTEST)$(EXE_EXT) $(SHATEST)$(EXE_EXT) $(SHA1TEST)$(EXE_EXT) $(SHA256TEST)$(EXE_EXT) $(SHA512TEST)$(EXE_EXT) \
72 $(MDC2TEST)$(EXE_EXT) $(RMDTEST)$(EXE_EXT) \
73 $(RANDTEST)$(EXE_EXT) $(DHTEST)$(EXE_EXT) $(ENGINETEST)$(EXE_EXT) \
74 $(BFTEST)$(EXE_EXT) $(CASTTEST)$(EXE_EXT) $(SSLTEST)$(EXE_EXT) $(EXPTEST)$(EXE_EXT) $(DSATEST)$(EXE_EXT) $(RSATEST)$(EXE_EXT) \
75 $(EVPTEST)$(EXE_EXT) $(IGETEST)$(EXE_EXT) $(JPAKETEST)$(EXE_EXT) \
76 $(ASN1TEST)$(EXE_EXT)
77
78# $(METHTEST)$(EXE_EXT)
79
80OBJ= $(BNTEST).o $(ECTEST).o $(ECDSATEST).o $(ECDHTEST).o $(IDEATEST).o \
81 $(MD2TEST).o $(MD4TEST).o $(MD5TEST).o \
82 $(HMACTEST).o $(WPTEST).o \
83 $(RC2TEST).o $(RC4TEST).o $(RC5TEST).o \
84 $(DESTEST).o $(SHATEST).o $(SHA1TEST).o $(SHA256TEST).o $(SHA512TEST).o \
85 $(MDC2TEST).o $(RMDTEST).o \
86 $(RANDTEST).o $(DHTEST).o $(ENGINETEST).o $(CASTTEST).o \
87 $(BFTEST).o $(SSLTEST).o $(DSATEST).o $(EXPTEST).o $(RSATEST).o \
88 $(EVPTEST).o $(IGETEST).o $(JPAKETEST).o $(ASN1TEST).o
89SRC= $(BNTEST).c $(ECTEST).c $(ECDSATEST).c $(ECDHTEST).c $(IDEATEST).c \
90 $(MD2TEST).c $(MD4TEST).c $(MD5TEST).c \
91 $(HMACTEST).c $(WPTEST).c \
92 $(RC2TEST).c $(RC4TEST).c $(RC5TEST).c \
93 $(DESTEST).c $(SHATEST).c $(SHA1TEST).c $(MDC2TEST).c $(RMDTEST).c \
94 $(RANDTEST).c $(DHTEST).c $(ENGINETEST).c $(CASTTEST).c \
95 $(BFTEST).c $(SSLTEST).c $(DSATEST).c $(EXPTEST).c $(RSATEST).c \
96 $(EVPTEST).c $(IGETEST).c $(JPAKETEST).c $(ASN1TEST).c
97
98EXHEADER=
99HEADER= $(EXHEADER)
100
101ALL= $(GENERAL) $(SRC) $(HEADER)
102
103top:
104 (cd ..; $(MAKE) DIRS=$(DIR) TESTS=$(TESTS) all)
105
106all: exe
107
108exe: $(EXE) dummytest$(EXE_EXT)
109
110files:
111 $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
112
113links:
114
115generate: $(SRC)
116$(SRC):
117 @sh $(TOP)/util/point.sh dummytest.c $@
118
119errors:
120
121install:
122
123tags:
124 ctags $(SRC)
125
126tests: exe apps $(TESTS)
127
128apps:
129 @(cd ..; $(MAKE) DIRS=apps all)
130
131alltests: \
132 test_des test_idea test_sha test_md4 test_md5 test_hmac \
133 test_md2 test_mdc2 test_wp \
134 test_rmd test_rc2 test_rc4 test_rc5 test_bf test_cast test_aes \
135 test_rand test_bn test_ec test_ecdsa test_ecdh \
136 test_enc test_x509 test_rsa test_crl test_sid \
137 test_gen test_req test_pkcs7 test_verify test_dh test_dsa \
138 test_ss test_ca test_engine test_evp test_ssl test_tsa test_ige \
139 test_jpake test_cms
140
141test_evp:
142 ../util/shlib_wrap.sh ./$(EVPTEST) evptests.txt
143
144test_des:
145 ../util/shlib_wrap.sh ./$(DESTEST)
146
147test_idea:
148 ../util/shlib_wrap.sh ./$(IDEATEST)
149
150test_sha:
151 ../util/shlib_wrap.sh ./$(SHATEST)
152 ../util/shlib_wrap.sh ./$(SHA1TEST)
153 ../util/shlib_wrap.sh ./$(SHA256TEST)
154 ../util/shlib_wrap.sh ./$(SHA512TEST)
155
156test_mdc2:
157 ../util/shlib_wrap.sh ./$(MDC2TEST)
158
159test_md5:
160 ../util/shlib_wrap.sh ./$(MD5TEST)
161
162test_md4:
163 ../util/shlib_wrap.sh ./$(MD4TEST)
164
165test_hmac:
166 ../util/shlib_wrap.sh ./$(HMACTEST)
167
168test_wp:
169 ../util/shlib_wrap.sh ./$(WPTEST)
170
171test_md2:
172 ../util/shlib_wrap.sh ./$(MD2TEST)
173
174test_rmd:
175 ../util/shlib_wrap.sh ./$(RMDTEST)
176
177test_bf:
178 ../util/shlib_wrap.sh ./$(BFTEST)
179
180test_cast:
181 ../util/shlib_wrap.sh ./$(CASTTEST)
182
183test_rc2:
184 ../util/shlib_wrap.sh ./$(RC2TEST)
185
186test_rc4:
187 ../util/shlib_wrap.sh ./$(RC4TEST)
188
189test_rc5:
190 ../util/shlib_wrap.sh ./$(RC5TEST)
191
192test_rand:
193 ../util/shlib_wrap.sh ./$(RANDTEST)
194
195test_enc:
196 @sh ./testenc
197
198test_x509:
199 echo test normal x509v1 certificate
200 sh ./tx509 2>/dev/null
201 echo test first x509v3 certificate
202 sh ./tx509 v3-cert1.pem 2>/dev/null
203 echo test second x509v3 certificate
204 sh ./tx509 v3-cert2.pem 2>/dev/null
205
206test_rsa: $(RSATEST)$(EXE_EXT)
207 @sh ./trsa 2>/dev/null
208 ../util/shlib_wrap.sh ./$(RSATEST)
209
210test_crl:
211 @sh ./tcrl 2>/dev/null
212
213test_sid:
214 @sh ./tsid 2>/dev/null
215
216test_req:
217 @sh ./treq 2>/dev/null
218 @sh ./treq testreq2.pem 2>/dev/null
219
220test_pkcs7:
221 @sh ./tpkcs7 2>/dev/null
222 @sh ./tpkcs7d 2>/dev/null
223
224test_bn:
225 @echo starting big number library test, could take a while...
226 @../util/shlib_wrap.sh ./$(BNTEST) >tmp.bntest
227 @echo quit >>tmp.bntest
228 @echo "running bc"
229 @<tmp.bntest sh -c "`sh ./bctest ignore`" | $(PERL) -e '$$i=0; while (<STDIN>) {if (/^test (.*)/) {print STDERR "\nverify $$1";} elsif (!/^0$$/) {die "\nFailed! bc: $$_";} else {print STDERR "."; $$i++;}} print STDERR "\n$$i tests passed\n"'
230 @echo 'test a^b%c implementations'
231 ../util/shlib_wrap.sh ./$(EXPTEST)
232
233test_ec:
234 @echo 'test elliptic curves'
235 ../util/shlib_wrap.sh ./$(ECTEST)
236
237test_ecdsa:
238 @echo 'test ecdsa'
239 ../util/shlib_wrap.sh ./$(ECDSATEST)
240
241test_ecdh:
242 @echo 'test ecdh'
243 ../util/shlib_wrap.sh ./$(ECDHTEST)
244
245test_verify:
246 @echo "The following command should have some OK's and some failures"
247 @echo "There are definitly a few expired certificates"
248 ../util/shlib_wrap.sh ../apps/openssl verify -CApath ../certs ../certs/*.pem
249
250test_dh:
251 @echo "Generate a set of DH parameters"
252 ../util/shlib_wrap.sh ./$(DHTEST)
253
254test_dsa:
255 @echo "Generate a set of DSA parameters"
256 ../util/shlib_wrap.sh ./$(DSATEST)
257 ../util/shlib_wrap.sh ./$(DSATEST) -app2_1
258
259test_gen:
260 @echo "Generate and verify a certificate request"
261 @sh ./testgen
262
263test_ss keyU.ss certU.ss certCA.ss certP1.ss keyP1.ss certP2.ss keyP2.ss \
264 intP1.ss intP2.ss: testss
265 @echo "Generate and certify a test certificate"
266 @sh ./testss
267 @cat certCA.ss certU.ss > intP1.ss
268 @cat certCA.ss certU.ss certP1.ss > intP2.ss
269
270test_engine:
271 @echo "Manipulate the ENGINE structures"
272 ../util/shlib_wrap.sh ./$(ENGINETEST)
273
274test_ssl: keyU.ss certU.ss certCA.ss certP1.ss keyP1.ss certP2.ss keyP2.ss \
275 intP1.ss intP2.ss
276 @echo "test SSL protocol"
277 ../util/shlib_wrap.sh ./$(SSLTEST) -test_cipherlist
278 @sh ./testssl keyU.ss certU.ss certCA.ss
279 @sh ./testsslproxy keyP1.ss certP1.ss intP1.ss
280 @sh ./testsslproxy keyP2.ss certP2.ss intP2.ss
281
282test_ca:
283 @if ../util/shlib_wrap.sh ../apps/openssl no-rsa; then \
284 echo "skipping CA.sh test -- requires RSA"; \
285 else \
286 echo "Generate and certify a test certificate via the 'ca' program"; \
287 sh ./testca; \
288 fi
289
290test_aes: #$(AESTEST)
291# @echo "test Rijndael"
292# ../util/shlib_wrap.sh ./$(AESTEST)
293
294test_tsa:
295 @if ../util/shlib_wrap.sh ../apps/openssl no-rsa; then \
296 echo "skipping testtsa test -- requires RSA"; \
297 else \
298 sh ./testtsa; \
299 fi
300
301test_ige: $(IGETEST)$(EXE_EXT)
302 @echo "Test IGE mode"
303 ../util/shlib_wrap.sh ./$(IGETEST)
304
305test_jpake: $(JPAKETEST)$(EXE_EXT)
306 @echo "Test JPAKE"
307 ../util/shlib_wrap.sh ./$(JPAKETEST)
308
309test_cms:
310 @echo "CMS consistency test"
311 $(PERL) cms-test.pl
312
313lint:
314 lint -DLINT $(INCLUDES) $(SRC)>fluff
315
316depend:
317 @if [ -z "$(THIS)" ]; then \
318 $(MAKE) -f $(TOP)/Makefile reflect THIS=$@; \
319 else \
320 $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(SRC); \
321 fi
322
323dclean:
324 $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
325 mv -f Makefile.new $(MAKEFILE)
326 rm -f $(SRC) $(SHA256TEST).c $(SHA512TEST).c evptests.txt newkey.pem testkey.pem \
327 testreq.pem
328
329clean:
330 rm -f .rnd tmp.bntest tmp.bctest *.o *.obj *.dll lib tags core .pure .nfs* *.old *.bak fluff $(EXE) *.ss *.srl log dummytest
331
332$(DLIBSSL):
333 (cd ..; $(MAKE) DIRS=ssl all)
334
335$(DLIBCRYPTO):
336 (cd ..; $(MAKE) DIRS=crypto all)
337
338BUILD_CMD=shlib_target=; if [ -n "$(SHARED_LIBS)" ]; then \
339 shlib_target="$(SHLIB_TARGET)"; \
340 fi; \
341 LIBRARIES="$(LIBSSL) $(LIBCRYPTO) $(LIBKRB5)"; \
342 $(MAKE) -f $(TOP)/Makefile.shared -e \
343 APPNAME=$$target$(EXE_EXT) OBJECTS="$$target.o" \
344 LIBDEPS="$(PEX_LIBS) $$LIBRARIES $(EX_LIBS)" \
345 link_app.$${shlib_target}
346
347$(RSATEST)$(EXE_EXT): $(RSATEST).o $(DLIBCRYPTO)
348 @target=$(RSATEST); $(BUILD_CMD)
349
350$(BNTEST)$(EXE_EXT): $(BNTEST).o $(DLIBCRYPTO)
351 @target=$(BNTEST); $(BUILD_CMD)
352
353$(ECTEST)$(EXE_EXT): $(ECTEST).o $(DLIBCRYPTO)
354 @target=$(ECTEST); $(BUILD_CMD)
355
356$(EXPTEST)$(EXE_EXT): $(EXPTEST).o $(DLIBCRYPTO)
357 @target=$(EXPTEST); $(BUILD_CMD)
358
359$(IDEATEST)$(EXE_EXT): $(IDEATEST).o $(DLIBCRYPTO)
360 @target=$(IDEATEST); $(BUILD_CMD)
361
362$(MD2TEST)$(EXE_EXT): $(MD2TEST).o $(DLIBCRYPTO)
363 @target=$(MD2TEST); $(BUILD_CMD)
364
365$(SHATEST)$(EXE_EXT): $(SHATEST).o $(DLIBCRYPTO)
366 @target=$(SHATEST); $(BUILD_CMD)
367
368$(SHA1TEST)$(EXE_EXT): $(SHA1TEST).o $(DLIBCRYPTO)
369 @target=$(SHA1TEST); $(BUILD_CMD)
370
371$(SHA256TEST)$(EXE_EXT): $(SHA256TEST).o $(DLIBCRYPTO)
372 @target=$(SHA256TEST); $(BUILD_CMD)
373
374$(SHA512TEST)$(EXE_EXT): $(SHA512TEST).o $(DLIBCRYPTO)
375 @target=$(SHA512TEST); $(BUILD_CMD)
376
377$(RMDTEST)$(EXE_EXT): $(RMDTEST).o $(DLIBCRYPTO)
378 @target=$(RMDTEST); $(BUILD_CMD)
379
380$(MDC2TEST)$(EXE_EXT): $(MDC2TEST).o $(DLIBCRYPTO)
381 @target=$(MDC2TEST); $(BUILD_CMD)
382
383$(MD4TEST)$(EXE_EXT): $(MD4TEST).o $(DLIBCRYPTO)
384 @target=$(MD4TEST); $(BUILD_CMD)
385
386$(MD5TEST)$(EXE_EXT): $(MD5TEST).o $(DLIBCRYPTO)
387 @target=$(MD5TEST); $(BUILD_CMD)
388
389$(HMACTEST)$(EXE_EXT): $(HMACTEST).o $(DLIBCRYPTO)
390 @target=$(HMACTEST); $(BUILD_CMD)
391
392$(WPTEST)$(EXE_EXT): $(WPTEST).o $(DLIBCRYPTO)
393 @target=$(WPTEST); $(BUILD_CMD)
394
395$(RC2TEST)$(EXE_EXT): $(RC2TEST).o $(DLIBCRYPTO)
396 @target=$(RC2TEST); $(BUILD_CMD)
397
398$(BFTEST)$(EXE_EXT): $(BFTEST).o $(DLIBCRYPTO)
399 @target=$(BFTEST); $(BUILD_CMD)
400
401$(CASTTEST)$(EXE_EXT): $(CASTTEST).o $(DLIBCRYPTO)
402 @target=$(CASTTEST); $(BUILD_CMD)
403
404$(RC4TEST)$(EXE_EXT): $(RC4TEST).o $(DLIBCRYPTO)
405 @target=$(RC4TEST); $(BUILD_CMD)
406
407$(RC5TEST)$(EXE_EXT): $(RC5TEST).o $(DLIBCRYPTO)
408 @target=$(RC5TEST); $(BUILD_CMD)
409
410$(DESTEST)$(EXE_EXT): $(DESTEST).o $(DLIBCRYPTO)
411 @target=$(DESTEST); $(BUILD_CMD)
412
413$(RANDTEST)$(EXE_EXT): $(RANDTEST).o $(DLIBCRYPTO)
414 @target=$(RANDTEST); $(BUILD_CMD)
415
416$(DHTEST)$(EXE_EXT): $(DHTEST).o $(DLIBCRYPTO)
417 @target=$(DHTEST); $(BUILD_CMD)
418
419$(DSATEST)$(EXE_EXT): $(DSATEST).o $(DLIBCRYPTO)
420 @target=$(DSATEST); $(BUILD_CMD)
421
422$(METHTEST)$(EXE_EXT): $(METHTEST).o $(DLIBCRYPTO)
423 @target=$(METHTEST); $(BUILD_CMD)
424
425$(SSLTEST)$(EXE_EXT): $(SSLTEST).o $(DLIBSSL) $(DLIBCRYPTO)
426 @target=$(SSLTEST); $(BUILD_CMD)
427
428$(ENGINETEST)$(EXE_EXT): $(ENGINETEST).o $(DLIBCRYPTO)
429 @target=$(ENGINETEST); $(BUILD_CMD)
430
431$(EVPTEST)$(EXE_EXT): $(EVPTEST).o $(DLIBCRYPTO)
432 @target=$(EVPTEST); $(BUILD_CMD)
433
434$(ECDSATEST)$(EXE_EXT): $(ECDSATEST).o $(DLIBCRYPTO)
435 @target=$(ECDSATEST); $(BUILD_CMD)
436
437$(ECDHTEST)$(EXE_EXT): $(ECDHTEST).o $(DLIBCRYPTO)
438 @target=$(ECDHTEST); $(BUILD_CMD)
439
440$(IGETEST)$(EXE_EXT): $(IGETEST).o $(DLIBCRYPTO)
441 @target=$(IGETEST); $(BUILD_CMD)
442
443$(JPAKETEST)$(EXE_EXT): $(JPAKETEST).o $(DLIBCRYPTO)
444 @target=$(JPAKETEST); $(BUILD_CMD)
445
446$(ASN1TEST)$(EXE_EXT): $(ASN1TEST).o $(DLIBCRYPTO)
447 @target=$(ASN1TEST); $(BUILD_CMD)
448
449#$(AESTEST).o: $(AESTEST).c
450# $(CC) -c $(CFLAGS) -DINTERMEDIATE_VALUE_KAT -DTRACE_KAT_MCT $(AESTEST).c
451
452#$(AESTEST)$(EXE_EXT): $(AESTEST).o $(DLIBCRYPTO)
453# if [ "$(SHLIB_TARGET)" = "hpux-shared" -o "$(SHLIB_TARGET)" = "darwin-shared" ] ; then \
454# $(CC) -o $(AESTEST)$(EXE_EXT) $(CFLAGS) $(AESTEST).o $(PEX_LIBS) $(DLIBCRYPTO) $(EX_LIBS) ; \
455# else \
456# $(CC) -o $(AESTEST)$(EXE_EXT) $(CFLAGS) $(AESTEST).o $(PEX_LIBS) $(LIBCRYPTO) $(EX_LIBS) ; \
457# fi
458
459dummytest$(EXE_EXT): dummytest.o $(DLIBCRYPTO)
460 @target=dummytest; $(BUILD_CMD)
461
462# DO NOT DELETE THIS LINE -- make depend depends on it.
463
464asn1test.o: ../include/openssl/asn1.h ../include/openssl/asn1_mac.h
465asn1test.o: ../include/openssl/bio.h ../include/openssl/buffer.h
466asn1test.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
467asn1test.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
468asn1test.o: ../include/openssl/ecdsa.h ../include/openssl/evp.h
469asn1test.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
470asn1test.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
471asn1test.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
472asn1test.o: ../include/openssl/pkcs7.h ../include/openssl/safestack.h
473asn1test.o: ../include/openssl/sha.h ../include/openssl/stack.h
474asn1test.o: ../include/openssl/symhacks.h ../include/openssl/x509.h
475asn1test.o: ../include/openssl/x509_vfy.h asn1test.c
476bftest.o: ../e_os.h ../include/openssl/blowfish.h ../include/openssl/e_os2.h
477bftest.o: ../include/openssl/opensslconf.h bftest.c
478bntest.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
479bntest.o: ../include/openssl/bn.h ../include/openssl/buffer.h
480bntest.o: ../include/openssl/crypto.h ../include/openssl/dh.h
481bntest.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
482bntest.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
483bntest.o: ../include/openssl/ecdsa.h ../include/openssl/err.h
484bntest.o: ../include/openssl/evp.h ../include/openssl/lhash.h
485bntest.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
486bntest.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
487bntest.o: ../include/openssl/ossl_typ.h ../include/openssl/pkcs7.h
488bntest.o: ../include/openssl/rand.h ../include/openssl/rsa.h
489bntest.o: ../include/openssl/safestack.h ../include/openssl/sha.h
490bntest.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
491bntest.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h bntest.c
492casttest.o: ../e_os.h ../include/openssl/cast.h ../include/openssl/e_os2.h
493casttest.o: ../include/openssl/opensslconf.h casttest.c
494destest.o: ../include/openssl/des.h ../include/openssl/des_old.h
495destest.o: ../include/openssl/e_os2.h ../include/openssl/opensslconf.h
496destest.o: ../include/openssl/ossl_typ.h ../include/openssl/safestack.h
497destest.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
498destest.o: ../include/openssl/ui.h ../include/openssl/ui_compat.h destest.c
499dhtest.o: ../e_os.h ../include/openssl/bio.h ../include/openssl/bn.h
500dhtest.o: ../include/openssl/crypto.h ../include/openssl/dh.h
501dhtest.o: ../include/openssl/e_os2.h ../include/openssl/err.h
502dhtest.o: ../include/openssl/lhash.h ../include/openssl/opensslconf.h
503dhtest.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
504dhtest.o: ../include/openssl/rand.h ../include/openssl/safestack.h
505dhtest.o: ../include/openssl/stack.h ../include/openssl/symhacks.h dhtest.c
506dsatest.o: ../e_os.h ../include/openssl/bio.h ../include/openssl/bn.h
507dsatest.o: ../include/openssl/crypto.h ../include/openssl/dh.h
508dsatest.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
509dsatest.o: ../include/openssl/err.h ../include/openssl/lhash.h
510dsatest.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
511dsatest.o: ../include/openssl/ossl_typ.h ../include/openssl/rand.h
512dsatest.o: ../include/openssl/safestack.h ../include/openssl/stack.h
513dsatest.o: ../include/openssl/symhacks.h dsatest.c
514ecdhtest.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
515ecdhtest.o: ../include/openssl/bn.h ../include/openssl/crypto.h
516ecdhtest.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
517ecdhtest.o: ../include/openssl/ecdh.h ../include/openssl/err.h
518ecdhtest.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
519ecdhtest.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
520ecdhtest.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
521ecdhtest.o: ../include/openssl/rand.h ../include/openssl/safestack.h
522ecdhtest.o: ../include/openssl/sha.h ../include/openssl/stack.h
523ecdhtest.o: ../include/openssl/symhacks.h ecdhtest.c
524ecdsatest.o: ../include/openssl/asn1.h ../include/openssl/bio.h
525ecdsatest.o: ../include/openssl/bn.h ../include/openssl/buffer.h
526ecdsatest.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
527ecdsatest.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
528ecdsatest.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
529ecdsatest.o: ../include/openssl/err.h ../include/openssl/evp.h
530ecdsatest.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
531ecdsatest.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
532ecdsatest.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
533ecdsatest.o: ../include/openssl/pkcs7.h ../include/openssl/rand.h
534ecdsatest.o: ../include/openssl/safestack.h ../include/openssl/sha.h
535ecdsatest.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
536ecdsatest.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h
537ecdsatest.o: ecdsatest.c
538ectest.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
539ectest.o: ../include/openssl/bn.h ../include/openssl/buffer.h
540ectest.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
541ectest.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
542ectest.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
543ectest.o: ../include/openssl/err.h ../include/openssl/evp.h
544ectest.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
545ectest.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
546ectest.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
547ectest.o: ../include/openssl/pkcs7.h ../include/openssl/rand.h
548ectest.o: ../include/openssl/safestack.h ../include/openssl/sha.h
549ectest.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
550ectest.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h ectest.c
551enginetest.o: ../include/openssl/asn1.h ../include/openssl/bio.h
552enginetest.o: ../include/openssl/buffer.h ../include/openssl/crypto.h
553enginetest.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
554enginetest.o: ../include/openssl/ecdh.h ../include/openssl/ecdsa.h
555enginetest.o: ../include/openssl/engine.h ../include/openssl/err.h
556enginetest.o: ../include/openssl/evp.h ../include/openssl/lhash.h
557enginetest.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
558enginetest.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
559enginetest.o: ../include/openssl/ossl_typ.h ../include/openssl/pkcs7.h
560enginetest.o: ../include/openssl/safestack.h ../include/openssl/sha.h
561enginetest.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
562enginetest.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h
563enginetest.o: enginetest.c
564evp_test.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
565evp_test.o: ../include/openssl/buffer.h ../include/openssl/conf.h
566evp_test.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
567evp_test.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
568evp_test.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
569evp_test.o: ../include/openssl/err.h ../include/openssl/evp.h
570evp_test.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
571evp_test.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
572evp_test.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
573evp_test.o: ../include/openssl/pkcs7.h ../include/openssl/safestack.h
574evp_test.o: ../include/openssl/sha.h ../include/openssl/stack.h
575evp_test.o: ../include/openssl/symhacks.h ../include/openssl/x509.h
576evp_test.o: ../include/openssl/x509_vfy.h evp_test.c
577exptest.o: ../e_os.h ../include/openssl/bio.h ../include/openssl/bn.h
578exptest.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
579exptest.o: ../include/openssl/err.h ../include/openssl/lhash.h
580exptest.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
581exptest.o: ../include/openssl/ossl_typ.h ../include/openssl/rand.h
582exptest.o: ../include/openssl/safestack.h ../include/openssl/stack.h
583exptest.o: ../include/openssl/symhacks.h exptest.c
584hmactest.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
585hmactest.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
586hmactest.o: ../include/openssl/evp.h ../include/openssl/hmac.h
587hmactest.o: ../include/openssl/md5.h ../include/openssl/obj_mac.h
588hmactest.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
589hmactest.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
590hmactest.o: ../include/openssl/safestack.h ../include/openssl/stack.h
591hmactest.o: ../include/openssl/symhacks.h hmactest.c
592ideatest.o: ../e_os.h ../include/openssl/e_os2.h ../include/openssl/idea.h
593ideatest.o: ../include/openssl/opensslconf.h ideatest.c
594igetest.o: ../include/openssl/aes.h ../include/openssl/e_os2.h
595igetest.o: ../include/openssl/opensslconf.h ../include/openssl/ossl_typ.h
596igetest.o: ../include/openssl/rand.h igetest.c
597jpaketest.o: ../include/openssl/buffer.h ../include/openssl/crypto.h
598jpaketest.o: ../include/openssl/e_os2.h ../include/openssl/opensslconf.h
599jpaketest.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
600jpaketest.o: ../include/openssl/safestack.h ../include/openssl/stack.h
601jpaketest.o: ../include/openssl/symhacks.h jpaketest.c
602md2test.o: ../include/openssl/buffer.h ../include/openssl/crypto.h
603md2test.o: ../include/openssl/e_os2.h ../include/openssl/opensslconf.h
604md2test.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
605md2test.o: ../include/openssl/safestack.h ../include/openssl/stack.h
606md2test.o: ../include/openssl/symhacks.h md2test.c
607md4test.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
608md4test.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
609md4test.o: ../include/openssl/evp.h ../include/openssl/md4.h
610md4test.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
611md4test.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
612md4test.o: ../include/openssl/ossl_typ.h ../include/openssl/safestack.h
613md4test.o: ../include/openssl/stack.h ../include/openssl/symhacks.h md4test.c
614md5test.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
615md5test.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
616md5test.o: ../include/openssl/evp.h ../include/openssl/md5.h
617md5test.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
618md5test.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
619md5test.o: ../include/openssl/ossl_typ.h ../include/openssl/safestack.h
620md5test.o: ../include/openssl/stack.h ../include/openssl/symhacks.h md5test.c
621mdc2test.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
622mdc2test.o: ../include/openssl/crypto.h ../include/openssl/des.h
623mdc2test.o: ../include/openssl/des_old.h ../include/openssl/e_os2.h
624mdc2test.o: ../include/openssl/evp.h ../include/openssl/mdc2.h
625mdc2test.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
626mdc2test.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
627mdc2test.o: ../include/openssl/ossl_typ.h ../include/openssl/safestack.h
628mdc2test.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
629mdc2test.o: ../include/openssl/ui.h ../include/openssl/ui_compat.h mdc2test.c
630randtest.o: ../e_os.h ../include/openssl/e_os2.h
631randtest.o: ../include/openssl/opensslconf.h ../include/openssl/ossl_typ.h
632randtest.o: ../include/openssl/rand.h randtest.c
633rc2test.o: ../e_os.h ../include/openssl/e_os2.h
634rc2test.o: ../include/openssl/opensslconf.h ../include/openssl/rc2.h rc2test.c
635rc4test.o: ../e_os.h ../include/openssl/e_os2.h
636rc4test.o: ../include/openssl/opensslconf.h ../include/openssl/rc4.h
637rc4test.o: ../include/openssl/sha.h rc4test.c
638rc5test.o: ../include/openssl/buffer.h ../include/openssl/crypto.h
639rc5test.o: ../include/openssl/e_os2.h ../include/openssl/opensslconf.h
640rc5test.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
641rc5test.o: ../include/openssl/safestack.h ../include/openssl/stack.h
642rc5test.o: ../include/openssl/symhacks.h rc5test.c
643rmdtest.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
644rmdtest.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
645rmdtest.o: ../include/openssl/evp.h ../include/openssl/obj_mac.h
646rmdtest.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
647rmdtest.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
648rmdtest.o: ../include/openssl/ripemd.h ../include/openssl/safestack.h
649rmdtest.o: ../include/openssl/stack.h ../include/openssl/symhacks.h rmdtest.c
650rsa_test.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
651rsa_test.o: ../include/openssl/bn.h ../include/openssl/crypto.h
652rsa_test.o: ../include/openssl/e_os2.h ../include/openssl/err.h
653rsa_test.o: ../include/openssl/lhash.h ../include/openssl/opensslconf.h
654rsa_test.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
655rsa_test.o: ../include/openssl/rand.h ../include/openssl/rsa.h
656rsa_test.o: ../include/openssl/safestack.h ../include/openssl/stack.h
657rsa_test.o: ../include/openssl/symhacks.h rsa_test.c
658sha1test.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
659sha1test.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
660sha1test.o: ../include/openssl/evp.h ../include/openssl/obj_mac.h
661sha1test.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
662sha1test.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
663sha1test.o: ../include/openssl/safestack.h ../include/openssl/sha.h
664sha1test.o: ../include/openssl/stack.h ../include/openssl/symhacks.h sha1test.c
665shatest.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
666shatest.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
667shatest.o: ../include/openssl/evp.h ../include/openssl/obj_mac.h
668shatest.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
669shatest.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
670shatest.o: ../include/openssl/safestack.h ../include/openssl/sha.h
671shatest.o: ../include/openssl/stack.h ../include/openssl/symhacks.h shatest.c
672ssltest.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
673ssltest.o: ../include/openssl/bn.h ../include/openssl/buffer.h
674ssltest.o: ../include/openssl/comp.h ../include/openssl/conf.h
675ssltest.o: ../include/openssl/crypto.h ../include/openssl/dh.h
676ssltest.o: ../include/openssl/dsa.h ../include/openssl/dtls1.h
677ssltest.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
678ssltest.o: ../include/openssl/ecdh.h ../include/openssl/ecdsa.h
679ssltest.o: ../include/openssl/engine.h ../include/openssl/err.h
680ssltest.o: ../include/openssl/evp.h ../include/openssl/hmac.h
681ssltest.o: ../include/openssl/kssl.h ../include/openssl/lhash.h
682ssltest.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
683ssltest.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
684ssltest.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
685ssltest.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
686ssltest.o: ../include/openssl/pqueue.h ../include/openssl/rand.h
687ssltest.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
688ssltest.o: ../include/openssl/sha.h ../include/openssl/ssl.h
689ssltest.o: ../include/openssl/ssl2.h ../include/openssl/ssl23.h
690ssltest.o: ../include/openssl/ssl3.h ../include/openssl/stack.h
691ssltest.o: ../include/openssl/symhacks.h ../include/openssl/tls1.h
692ssltest.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h
693ssltest.o: ../include/openssl/x509v3.h ssltest.c
694wp_test.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
695wp_test.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
696wp_test.o: ../include/openssl/ossl_typ.h ../include/openssl/safestack.h
697wp_test.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
698wp_test.o: ../include/openssl/whrlpool.h wp_test.c
diff --git a/src/lib/libssl/test/Uss.cnf b/src/lib/libssl/test/Uss.cnf
index 58ac0ca54d..98b2e054b7 100644
--- a/src/lib/libssl/test/Uss.cnf
+++ b/src/lib/libssl/test/Uss.cnf
@@ -7,11 +7,11 @@ RANDFILE = ./.rnd
7 7
8#################################################################### 8####################################################################
9[ req ] 9[ req ]
10default_bits = 2048 10default_bits = 1024
11default_keyfile = keySS.pem 11default_keyfile = keySS.pem
12distinguished_name = req_distinguished_name 12distinguished_name = req_distinguished_name
13encrypt_rsa_key = no 13encrypt_rsa_key = no
14default_md = sha256 14default_md = md2
15 15
16[ req_distinguished_name ] 16[ req_distinguished_name ]
17countryName = Country Name (2 letter code) 17countryName = Country Name (2 letter code)
diff --git a/src/lib/libssl/test/bctest.com b/src/lib/libssl/test/bctest.com
new file mode 100644
index 0000000000..d7e5ec139e
--- /dev/null
+++ b/src/lib/libssl/test/bctest.com
@@ -0,0 +1,152 @@
1$!
2$! Check operation of "bc".
3$!
4$! 2010-04-05 SMS. New. Based (loosely) on "bctest".
5$!
6$!
7$ tmp_file_name = "tmp.bctest"
8$ failure = ""
9$!
10$! Basic command test.
11$!
12$ on warning then goto bc_fail
13$ bc
14$ on error then exit
15$!
16$! Test for SunOS 5.[78] bc bug.
17$!
18$ if (failure .eqs. "")
19$ then
20$!
21$ define /user_mode sys$output 'tmp_file_name'
22$ bc
23obase=16
24ibase=16
25a=AD88C418F31B3FC712D0425001D522B3AE9134FF3A98C13C1FCC1682211195406C1A6C66C6A\
26CEEC1A0EC16950233F77F1C2F2363D56DD71A36C57E0B2511FC4BA8F22D261FE2E9356D99AF57\
2710F3817C0E05BF79C423C3F66FDF321BE8D3F18F625D91B670931C1EF25F28E489BDA1C5422D1\
28C3F6F7A1AD21585746ECC4F10A14A778AF56F08898E965E9909E965E0CB6F85B514150C644759\
293BE731877B16EA07B552088FF2EA728AC5E0FF3A23EB939304519AB8B60F2C33D6BA0945B66F0\
304FC3CADF855448B24A9D7640BCF473E
31b=DCE91E7D120B983EA9A104B5A96D634DD644C37657B1C7860B45E6838999B3DCE5A555583C6\
329209E41F413422954175A06E67FFEF6746DD652F0F48AEFECC3D8CAC13523BDAAD3F5AF4212BD\
338B3CD64126E1A82E190228020C05B91C8B141F1110086FC2A4C6ED631EBA129D04BB9A19FC53D\
343ED0E2017D60A68775B75481449
35(a/b)*b + (a%b) - a
36$ status = $status
37$ output_expected = "0"
38$ gosub check_output
39$ if (output .ne. 1)
40$ then
41$ failure = "SunOStest"
42$ else
43$ delete 'f$parse( tmp_file_name)'
44$ endif
45$ endif
46$!
47$! Test for SCO bc bug.
48$!
49$ if (failure .eqs. "")
50$ then
51$!
52$ define /user_mode sys$output 'tmp_file_name'
53$ bc
54obase=16
55ibase=16
56-FFDD63BA1A4648F0D804F8A1C66C53F0D2110590E8A3907EC73B4AEC6F15AC177F176F2274D2\
579DC8022EA0D7DD3ABE9746D2D46DD3EA5B5F6F69DF12877E0AC5E7F5ADFACEE54573F5D256A06\
5811B5D2BC24947724E22AE4EC3FB0C39D9B4694A01AFE5E43B4D99FB9812A0E4A5773D8B254117\
591239157EC6E3D8D50199 * -FFDD63BA1A4648F0D804F8A1C66C53F0D2110590E8A3907EC73B4\
60AEC6F15AC177F176F2274D29DC8022EA0D7DD3ABE9746D2D46DD3EA5B5F6F69DF12877E0AC5E7\
61F5ADFACEE54573F5D256A0611B5D2BC24947724E22AE4EC3FB0C39D9B4694A01AFE5E43B4D99F\
62B9812A0E4A5773D8B2541171239157EC6E3D8D50199 - FFBACC221682DA464B6D7F123482522\
6302EDAEDCA38C3B69E9B7BBCD6165A9CD8716C4903417F23C09A85B851961F92C217258CEEB866\
6485EFCC5DD131853A02C07A873B8E2AF2E40C6D5ED598CD0E8F35AD49F3C3A17FDB7653E4E2DC4\
65A8D23CC34686EE4AD01F7407A7CD74429AC6D36DBF0CB6A3E302D0E5BDFCD048A3B90C1BE5AA8\
66E16C3D5884F9136B43FF7BB443764153D4AEC176C681B078F4CC53D6EB6AB76285537DDEE7C18\
678C72441B52EDBDDBC77E02D34E513F2AABF92F44109CAFE8242BD0ECBAC5604A94B02EA44D43C\
6804E9476E6FBC48043916BFA1485C6093603600273C9C33F13114D78064AE42F3DC466C7DA543D\
6989C8D71
70AD534AFBED2FA39EE9F40E20FCF9E2C861024DB98DDCBA1CD118C49CA55EEBC20D6BA51B2271C\
71928B693D6A73F67FEB1B4571448588B46194617D25D910C6A9A130CC963155CF34079CB218A44\
728A1F57E276D92A33386DDCA3D241DB78C8974ABD71DD05B0FA555709C9910D745185E6FE108E3\
7337F1907D0C56F8BFBF52B9704 % -E557905B56B13441574CAFCE2BD257A750B1A8B2C88D0E36\
74E18EF7C38DAC80D3948E17ED63AFF3B3467866E3B89D09A81B3D16B52F6A3C7134D3C6F5123E9\
75F617E3145BBFBE9AFD0D6E437EA4FF6F04BC67C4F1458B4F0F47B64 - 1C2BBBB19B74E86FD32\
769E8DB6A8C3B1B9986D57ED5419C2E855F7D5469E35E76334BB42F4C43E3F3A31B9697C171DAC4\
77D97935A7E1A14AD209D6CF811F55C6DB83AA9E6DFECFCD6669DED7171EE22A40C6181615CAF3F\
785296964
79$ status = $status
80$ output_expected = "0\0"
81$ gosub check_output
82$ if (output .ne. 1)
83$ then
84$ failure = "SCOtest"
85$ else
86$ delete 'f$parse( tmp_file_name)'
87$ endif
88$ endif
89$!
90$! Test for working 'print' command.
91$!
92$ if (failure .eqs. "")
93$ then
94$!
95$ define /user_mode sys$output 'tmp_file_name'
96$ bc
97print "OK"
98$ status = $status
99$ output_expected = "OK"
100$ gosub check_output
101$ if (output .ne. 1)
102$ then
103$ failure = "printtest"
104$ else
105$ delete 'f$parse( tmp_file_name)'
106$ endif
107$ endif
108$!
109$ if (failure .nes. "")
110$ then
111$ write sys$output -
112 "No working bc found. Consider installing GNU bc."
113$ exit %X00030000 ! %DCL-W-NORMAL
114$ endif
115$!
116$ exit
117$!
118$!
119$! Complete "bc" command failure.
120$!
121$ bc_fail:
122$ write sys$output -
123 "No ""bc"" program/symbol found. Consider installing GNU bc."
124$ exit %X00030000 ! %DCL-W-NORMAL
125$!
126$!
127$! Output check subroutine.
128$!
129$ check_output:
130$ eof = 0
131$ line_nr = 0
132$ open /read tmp_file 'tmp_file_name'
133$ c_o_loop:
134$ read /error = error_read tmp_file line
135$ goto ok_read
136$ error_read:
137$ eof = 1
138$ ok_read:
139$ line_expected = f$element( line_nr, "\", output_expected)
140$ line_nr = line_nr+ 1
141$ if ((line_expected .nes. "\") .and. (.not. eof) .and. -
142 (line_expected .eqs. line)) then goto c_o_loop
143$!
144$ if ((line_expected .eqs. "\") .and. eof)
145$ then
146$ output = 1
147$ else
148$ output = 0
149$ endif
150$ close tmp_file
151$ return
152$!
diff --git a/src/lib/libssl/test/bntest.com b/src/lib/libssl/test/bntest.com
new file mode 100644
index 0000000000..6545d2e5a5
--- /dev/null
+++ b/src/lib/libssl/test/bntest.com
@@ -0,0 +1,76 @@
1$!
2$! Analyze bntest output file.
3$!
4$! Exit status = 1 (success) if all tests passed,
5$! 0 (warning) if any test failed.
6$!
7$! 2011-02-20 SMS. Added code to skip "#" comments in the input file.
8$!
9$! 2010-04-05 SMS. New. Based (loosely) on perl code in bntest-vms.sh.
10$!
11$! Expect data like:
12$! test test_name1
13$! 0
14$! [...]
15$! test test_name2
16$! 0
17$! [...]
18$! [...]
19$!
20$! Some tests have no following "0" lines.
21$!
22$ result_file_name = f$edit( p1, "TRIM")
23$ if (result_file_name .eqs. "")
24$ then
25$ result_file_name = "bntest-vms.out"
26$ endif
27$!
28$ fail = 0
29$ passed = 0
30$ tests = 0
31$!
32$ on control_c then goto tidy
33$ on error then goto tidy
34$!
35$ open /read result_file 'result_file_name'
36$!
37$ read_loop:
38$ read /end = read_loop_end /error = tidy result_file line
39$ t1 = f$element( 0, " ", line)
40$!
41$! Skip "#" comment lines.
42$ if (f$extract( 0, 1, f$edit( line, "TRIM")) .eqs. "#") then -
43 goto read_loop
44$!
45$ if (t1 .eqs. "test")
46$ then
47$ passed = passed+ 1
48$ tests = tests+ 1
49$ fail = 1
50$ t2 = f$extract( 5, 1000, line)
51$ write sys$output "verify ''t2'"
52$ else
53$ if (t1 .nes. "0")
54$ then
55$ write sys$output "Failed! bc: ''line'"
56$ passed = passed- fail
57$ fail = 0
58$ endif
59$ endif
60$ goto read_loop
61$ read_loop_end:
62$ write sys$output "''passed'/''tests' tests passed"
63$!
64$ tidy:
65$ if f$trnlnm( "result_file", "LNM$PROCESS_TABLE", , "SUPERVISOR", , "CONFINE")
66$ then
67$ close result_file
68$ endif
69$!
70$ if ((tests .gt. 0) .and. (tests .eq. passed))
71$ then
72$ exit 1
73$ else
74$ exit 0
75$ endif
76$!
diff --git a/src/lib/libssl/test/clean_test.com b/src/lib/libssl/test/clean_test.com
new file mode 100755
index 0000000000..7df633fbef
--- /dev/null
+++ b/src/lib/libssl/test/clean_test.com
@@ -0,0 +1,35 @@
1$!
2$! Delete various test results files.
3$!
4$ def_orig = f$environment( "default")
5$ proc = f$environment( "procedure")
6$ proc_dev_dir = f$parse( "A.;", proc) - "A.;"
7$!
8$ on control_c then goto tidy
9$ on error then goto tidy
10$!
11$ set default 'proc_dev_dir'
12$!
13$ files := *.cms;*, *.srl;*, *.ss;*, -
14 cms.err;*, cms.out;*, newreq.pem;*, -
15 p.txt-zlib-cipher;*, -
16 smtst.txt;*, testkey.pem;*, testreq.pem;*, -
17 test_*.err;*, test_*.out;*, -
18 .rnd;*
19$!
20$ delim = ","
21$ i = 0
22$ loop:
23$ file = f$edit( f$element( i, delim, files), "trim")
24$ if (file .eqs. delim) then goto loop_end
25$ if (f$search( file) .nes. "") then -
26 delete 'p1' 'file'
27$ i = i+ 1
28$ goto loop
29$ loop_end:
30$!
31$ tidy:
32$
33$ if (f$type( def_orig) .nes. "") then -
34 set default 'def_orig'
35$!
diff --git a/src/lib/libssl/test/dummytest.c b/src/lib/libssl/test/dummytest.c
new file mode 100644
index 0000000000..5b4467e042
--- /dev/null
+++ b/src/lib/libssl/test/dummytest.c
@@ -0,0 +1,48 @@
1#include <stdio.h>
2#include <stdlib.h>
3#include <string.h>
4#include <ctype.h>
5#include <openssl/e_os2.h>
6#include <openssl/buffer.h>
7#include <openssl/crypto.h>
8
9int main(int argc, char *argv[])
10 {
11 char *p, *q = 0, *program;
12
13 p = strrchr(argv[0], '/');
14 if (!p) p = strrchr(argv[0], '\\');
15#ifdef OPENSSL_SYS_VMS
16 if (!p) p = strrchr(argv[0], ']');
17 if (p) q = strrchr(p, '>');
18 if (q) p = q;
19 if (!p) p = strrchr(argv[0], ':');
20 q = 0;
21#endif
22 if (p) p++;
23 if (!p) p = argv[0];
24 if (p) q = strchr(p, '.');
25 if (p && !q) q = p + strlen(p);
26
27 if (!p)
28 program = BUF_strdup("(unknown)");
29 else
30 {
31 program = OPENSSL_malloc((q - p) + 1);
32 strncpy(program, p, q - p);
33 program[q - p] = '\0';
34 }
35
36 for(p = program; *p; p++)
37 if (islower((unsigned char)(*p)))
38 *p = toupper((unsigned char)(*p));
39
40 q = strstr(program, "TEST");
41 if (q > p && q[-1] == '_') q--;
42 *q = '\0';
43
44 printf("No %s support\n", program);
45
46 OPENSSL_free(program);
47 return(0);
48 }
diff --git a/src/lib/libssl/test/evptests.txt b/src/lib/libssl/test/evptests.txt
new file mode 100644
index 0000000000..beb12144b6
--- /dev/null
+++ b/src/lib/libssl/test/evptests.txt
@@ -0,0 +1,321 @@
1#cipher:key:iv:plaintext:ciphertext:0/1(decrypt/encrypt)
2#digest:::input:output
3
4# SHA(1) tests (from shatest.c)
5SHA1:::616263:a9993e364706816aba3e25717850c26c9cd0d89d
6
7# MD5 tests (from md5test.c)
8MD5::::d41d8cd98f00b204e9800998ecf8427e
9MD5:::61:0cc175b9c0f1b6a831c399e269772661
10MD5:::616263:900150983cd24fb0d6963f7d28e17f72
11MD5:::6d65737361676520646967657374:f96b697d7cb7938d525a2f31aaf161d0
12MD5:::6162636465666768696a6b6c6d6e6f707172737475767778797a:c3fcd3d76192e4007dfb496cca67e13b
13MD5:::4142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a30313233343536373839:d174ab98d277d9f5a5611c2c9f419d9f
14MD5:::3132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930:57edf4a22be3c955ac49da2e2107b67a
15
16# AES 128 ECB tests (from FIPS-197 test vectors, encrypt)
17
18AES-128-ECB:000102030405060708090A0B0C0D0E0F::00112233445566778899AABBCCDDEEFF:69C4E0D86A7B0430D8CDB78070B4C55A:1
19
20# AES 192 ECB tests (from FIPS-197 test vectors, encrypt)
21
22AES-192-ECB:000102030405060708090A0B0C0D0E0F1011121314151617::00112233445566778899AABBCCDDEEFF:DDA97CA4864CDFE06EAF70A0EC0D7191:1
23
24# AES 256 ECB tests (from FIPS-197 test vectors, encrypt)
25
26AES-256-ECB:000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F::00112233445566778899AABBCCDDEEFF:8EA2B7CA516745BFEAFC49904B496089:1
27
28# AES 128 ECB tests (from NIST test vectors, encrypt)
29
30#AES-128-ECB:00000000000000000000000000000000::00000000000000000000000000000000:C34C052CC0DA8D73451AFE5F03BE297F:1
31
32# AES 128 ECB tests (from NIST test vectors, decrypt)
33
34#AES-128-ECB:00000000000000000000000000000000::44416AC2D1F53C583303917E6BE9EBE0:00000000000000000000000000000000:0
35
36# AES 192 ECB tests (from NIST test vectors, decrypt)
37
38#AES-192-ECB:000000000000000000000000000000000000000000000000::48E31E9E256718F29229319C19F15BA4:00000000000000000000000000000000:0
39
40# AES 256 ECB tests (from NIST test vectors, decrypt)
41
42#AES-256-ECB:0000000000000000000000000000000000000000000000000000000000000000::058CCFFDBBCB382D1F6F56585D8A4ADE:00000000000000000000000000000000:0
43
44# AES 128 CBC tests (from NIST test vectors, encrypt)
45
46#AES-128-CBC:00000000000000000000000000000000:00000000000000000000000000000000:00000000000000000000000000000000:8A05FC5E095AF4848A08D328D3688E3D:1
47
48# AES 192 CBC tests (from NIST test vectors, encrypt)
49
50#AES-192-CBC:000000000000000000000000000000000000000000000000:00000000000000000000000000000000:00000000000000000000000000000000:7BD966D53AD8C1BB85D2ADFAE87BB104:1
51
52# AES 256 CBC tests (from NIST test vectors, encrypt)
53
54#AES-256-CBC:0000000000000000000000000000000000000000000000000000000000000000:00000000000000000000000000000000:00000000000000000000000000000000:FE3C53653E2F45B56FCD88B2CC898FF0:1
55
56# AES 128 CBC tests (from NIST test vectors, decrypt)
57
58#AES-128-CBC:00000000000000000000000000000000:00000000000000000000000000000000:FACA37E0B0C85373DF706E73F7C9AF86:00000000000000000000000000000000:0
59
60# AES tests from NIST document SP800-38A
61# For all ECB encrypts and decrypts, the transformed sequence is
62# AES-bits-ECB:key::plaintext:ciphertext:encdec
63# ECB-AES128.Encrypt and ECB-AES128.Decrypt
64AES-128-ECB:2B7E151628AED2A6ABF7158809CF4F3C::6BC1BEE22E409F96E93D7E117393172A:3AD77BB40D7A3660A89ECAF32466EF97
65AES-128-ECB:2B7E151628AED2A6ABF7158809CF4F3C::AE2D8A571E03AC9C9EB76FAC45AF8E51:F5D3D58503B9699DE785895A96FDBAAF
66AES-128-ECB:2B7E151628AED2A6ABF7158809CF4F3C::30C81C46A35CE411E5FBC1191A0A52EF:43B1CD7F598ECE23881B00E3ED030688
67AES-128-ECB:2B7E151628AED2A6ABF7158809CF4F3C::F69F2445DF4F9B17AD2B417BE66C3710:7B0C785E27E8AD3F8223207104725DD4
68# ECB-AES192.Encrypt and ECB-AES192.Decrypt
69AES-192-ECB:8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B::6BC1BEE22E409F96E93D7E117393172A:BD334F1D6E45F25FF712A214571FA5CC
70AES-192-ECB:8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B::AE2D8A571E03AC9C9EB76FAC45AF8E51:974104846D0AD3AD7734ECB3ECEE4EEF
71AES-192-ECB:8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B::30C81C46A35CE411E5FBC1191A0A52EF:EF7AFD2270E2E60ADCE0BA2FACE6444E
72AES-192-ECB:8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B::F69F2445DF4F9B17AD2B417BE66C3710:9A4B41BA738D6C72FB16691603C18E0E
73# ECB-AES256.Encrypt and ECB-AES256.Decrypt
74AES-256-ECB:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4::6BC1BEE22E409F96E93D7E117393172A:F3EED1BDB5D2A03C064B5A7E3DB181F8
75AES-256-ECB:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4::AE2D8A571E03AC9C9EB76FAC45AF8E51:591CCB10D410ED26DC5BA74A31362870
76AES-256-ECB:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4::30C81C46A35CE411E5FBC1191A0A52EF:B6ED21B99CA6F4F9F153E7B1BEAFED1D
77AES-256-ECB:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4::F69F2445DF4F9B17AD2B417BE66C3710:23304B7A39F9F3FF067D8D8F9E24ECC7
78# For all CBC encrypts and decrypts, the transformed sequence is
79# AES-bits-CBC:key:IV/ciphertext':plaintext:ciphertext:encdec
80# CBC-AES128.Encrypt and CBC-AES128.Decrypt
81AES-128-CBC:2B7E151628AED2A6ABF7158809CF4F3C:000102030405060708090A0B0C0D0E0F:6BC1BEE22E409F96E93D7E117393172A:7649ABAC8119B246CEE98E9B12E9197D
82AES-128-CBC:2B7E151628AED2A6ABF7158809CF4F3C:7649ABAC8119B246CEE98E9B12E9197D:AE2D8A571E03AC9C9EB76FAC45AF8E51:5086CB9B507219EE95DB113A917678B2
83AES-128-CBC:2B7E151628AED2A6ABF7158809CF4F3C:5086CB9B507219EE95DB113A917678B2:30C81C46A35CE411E5FBC1191A0A52EF:73BED6B8E3C1743B7116E69E22229516
84AES-128-CBC:2B7E151628AED2A6ABF7158809CF4F3C:73BED6B8E3C1743B7116E69E22229516:F69F2445DF4F9B17AD2B417BE66C3710:3FF1CAA1681FAC09120ECA307586E1A7
85# CBC-AES192.Encrypt and CBC-AES192.Decrypt
86AES-192-CBC:8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B:000102030405060708090A0B0C0D0E0F:6BC1BEE22E409F96E93D7E117393172A:4F021DB243BC633D7178183A9FA071E8
87AES-192-CBC:8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B:4F021DB243BC633D7178183A9FA071E8:AE2D8A571E03AC9C9EB76FAC45AF8E51:B4D9ADA9AD7DEDF4E5E738763F69145A
88AES-192-CBC:8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B:B4D9ADA9AD7DEDF4E5E738763F69145A:30C81C46A35CE411E5FBC1191A0A52EF:571B242012FB7AE07FA9BAAC3DF102E0
89AES-192-CBC:8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B:571B242012FB7AE07FA9BAAC3DF102E0:F69F2445DF4F9B17AD2B417BE66C3710:08B0E27988598881D920A9E64F5615CD
90# CBC-AES256.Encrypt and CBC-AES256.Decrypt
91AES-256-CBC:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4:000102030405060708090A0B0C0D0E0F:6BC1BEE22E409F96E93D7E117393172A:F58C4C04D6E5F1BA779EABFB5F7BFBD6
92AES-256-CBC:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4:F58C4C04D6E5F1BA779EABFB5F7BFBD6:AE2D8A571E03AC9C9EB76FAC45AF8E51:9CFC4E967EDB808D679F777BC6702C7D
93AES-256-CBC:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4:9CFC4E967EDB808D679F777BC6702C7D:30C81C46A35CE411E5FBC1191A0A52EF:39F23369A9D9BACFA530E26304231461
94AES-256-CBC:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4:39F23369A9D9BACFA530E26304231461:F69F2445DF4F9B17AD2B417BE66C3710:B2EB05E2C39BE9FCDA6C19078C6A9D1B
95# We don't support CFB{1,8}-AESxxx.{En,De}crypt
96# For all CFB128 encrypts and decrypts, the transformed sequence is
97# AES-bits-CFB:key:IV/ciphertext':plaintext:ciphertext:encdec
98# CFB128-AES128.Encrypt
99AES-128-CFB:2B7E151628AED2A6ABF7158809CF4F3C:000102030405060708090A0B0C0D0E0F:6BC1BEE22E409F96E93D7E117393172A:3B3FD92EB72DAD20333449F8E83CFB4A:1
100AES-128-CFB:2B7E151628AED2A6ABF7158809CF4F3C:3B3FD92EB72DAD20333449F8E83CFB4A:AE2D8A571E03AC9C9EB76FAC45AF8E51:C8A64537A0B3A93FCDE3CDAD9F1CE58B:1
101AES-128-CFB:2B7E151628AED2A6ABF7158809CF4F3C:C8A64537A0B3A93FCDE3CDAD9F1CE58B:30C81C46A35CE411E5FBC1191A0A52EF:26751F67A3CBB140B1808CF187A4F4DF:1
102AES-128-CFB:2B7E151628AED2A6ABF7158809CF4F3C:26751F67A3CBB140B1808CF187A4F4DF:F69F2445DF4F9B17AD2B417BE66C3710:C04B05357C5D1C0EEAC4C66F9FF7F2E6:1
103# CFB128-AES128.Decrypt
104AES-128-CFB:2B7E151628AED2A6ABF7158809CF4F3C:000102030405060708090A0B0C0D0E0F:6BC1BEE22E409F96E93D7E117393172A:3B3FD92EB72DAD20333449F8E83CFB4A:0
105AES-128-CFB:2B7E151628AED2A6ABF7158809CF4F3C:3B3FD92EB72DAD20333449F8E83CFB4A:AE2D8A571E03AC9C9EB76FAC45AF8E51:C8A64537A0B3A93FCDE3CDAD9F1CE58B:0
106AES-128-CFB:2B7E151628AED2A6ABF7158809CF4F3C:C8A64537A0B3A93FCDE3CDAD9F1CE58B:30C81C46A35CE411E5FBC1191A0A52EF:26751F67A3CBB140B1808CF187A4F4DF:0
107AES-128-CFB:2B7E151628AED2A6ABF7158809CF4F3C:26751F67A3CBB140B1808CF187A4F4DF:F69F2445DF4F9B17AD2B417BE66C3710:C04B05357C5D1C0EEAC4C66F9FF7F2E6:0
108# CFB128-AES192.Encrypt
109AES-192-CFB:8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B:000102030405060708090A0B0C0D0E0F:6BC1BEE22E409F96E93D7E117393172A:CDC80D6FDDF18CAB34C25909C99A4174:1
110AES-192-CFB:8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B:CDC80D6FDDF18CAB34C25909C99A4174:AE2D8A571E03AC9C9EB76FAC45AF8E51:67CE7F7F81173621961A2B70171D3D7A:1
111AES-192-CFB:8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B:67CE7F7F81173621961A2B70171D3D7A:30C81C46A35CE411E5FBC1191A0A52EF:2E1E8A1DD59B88B1C8E60FED1EFAC4C9:1
112AES-192-CFB:8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B:2E1E8A1DD59B88B1C8E60FED1EFAC4C9:F69F2445DF4F9B17AD2B417BE66C3710:C05F9F9CA9834FA042AE8FBA584B09FF:1
113# CFB128-AES192.Decrypt
114AES-192-CFB:8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B:000102030405060708090A0B0C0D0E0F:6BC1BEE22E409F96E93D7E117393172A:CDC80D6FDDF18CAB34C25909C99A4174:0
115AES-192-CFB:8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B:CDC80D6FDDF18CAB34C25909C99A4174:AE2D8A571E03AC9C9EB76FAC45AF8E51:67CE7F7F81173621961A2B70171D3D7A:0
116AES-192-CFB:8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B:67CE7F7F81173621961A2B70171D3D7A:30C81C46A35CE411E5FBC1191A0A52EF:2E1E8A1DD59B88B1C8E60FED1EFAC4C9:0
117AES-192-CFB:8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B:2E1E8A1DD59B88B1C8E60FED1EFAC4C9:F69F2445DF4F9B17AD2B417BE66C3710:C05F9F9CA9834FA042AE8FBA584B09FF:0
118# CFB128-AES256.Encrypt
119AES-256-CFB:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4:000102030405060708090A0B0C0D0E0F:6BC1BEE22E409F96E93D7E117393172A:DC7E84BFDA79164B7ECD8486985D3860:1
120AES-256-CFB:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4:DC7E84BFDA79164B7ECD8486985D3860:AE2D8A571E03AC9C9EB76FAC45AF8E51:39FFED143B28B1C832113C6331E5407B:1
121AES-256-CFB:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4:39FFED143B28B1C832113C6331E5407B:30C81C46A35CE411E5FBC1191A0A52EF:DF10132415E54B92A13ED0A8267AE2F9:1
122AES-256-CFB:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4:DF10132415E54B92A13ED0A8267AE2F9:F69F2445DF4F9B17AD2B417BE66C3710:75A385741AB9CEF82031623D55B1E471:1
123# CFB128-AES256.Decrypt
124AES-256-CFB:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4:000102030405060708090A0B0C0D0E0F:6BC1BEE22E409F96E93D7E117393172A:DC7E84BFDA79164B7ECD8486985D3860:0
125AES-256-CFB:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4:DC7E84BFDA79164B7ECD8486985D3860:AE2D8A571E03AC9C9EB76FAC45AF8E51:39FFED143B28B1C832113C6331E5407B:0
126AES-256-CFB:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4:39FFED143B28B1C832113C6331E5407B:30C81C46A35CE411E5FBC1191A0A52EF:DF10132415E54B92A13ED0A8267AE2F9:0
127AES-256-CFB:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4:DF10132415E54B92A13ED0A8267AE2F9:F69F2445DF4F9B17AD2B417BE66C3710:75A385741AB9CEF82031623D55B1E471:0
128# For all OFB encrypts and decrypts, the transformed sequence is
129# AES-bits-CFB:key:IV/output':plaintext:ciphertext:encdec
130# OFB-AES128.Encrypt
131AES-128-OFB:2B7E151628AED2A6ABF7158809CF4F3C:000102030405060708090A0B0C0D0E0F:6BC1BEE22E409F96E93D7E117393172A:3B3FD92EB72DAD20333449F8E83CFB4A:1
132AES-128-OFB:2B7E151628AED2A6ABF7158809CF4F3C:50FE67CC996D32B6DA0937E99BAFEC60:AE2D8A571E03AC9C9EB76FAC45AF8E51:7789508D16918F03F53C52DAC54ED825:1
133AES-128-OFB:2B7E151628AED2A6ABF7158809CF4F3C:D9A4DADA0892239F6B8B3D7680E15674:30C81C46A35CE411E5FBC1191A0A52EF:9740051E9C5FECF64344F7A82260EDCC:1
134AES-128-OFB:2B7E151628AED2A6ABF7158809CF4F3C:A78819583F0308E7A6BF36B1386ABF23:F69F2445DF4F9B17AD2B417BE66C3710:304C6528F659C77866A510D9C1D6AE5E:1
135# OFB-AES128.Decrypt
136AES-128-OFB:2B7E151628AED2A6ABF7158809CF4F3C:000102030405060708090A0B0C0D0E0F:6BC1BEE22E409F96E93D7E117393172A:3B3FD92EB72DAD20333449F8E83CFB4A:0
137AES-128-OFB:2B7E151628AED2A6ABF7158809CF4F3C:50FE67CC996D32B6DA0937E99BAFEC60:AE2D8A571E03AC9C9EB76FAC45AF8E51:7789508D16918F03F53C52DAC54ED825:0
138AES-128-OFB:2B7E151628AED2A6ABF7158809CF4F3C:D9A4DADA0892239F6B8B3D7680E15674:30C81C46A35CE411E5FBC1191A0A52EF:9740051E9C5FECF64344F7A82260EDCC:0
139AES-128-OFB:2B7E151628AED2A6ABF7158809CF4F3C:A78819583F0308E7A6BF36B1386ABF23:F69F2445DF4F9B17AD2B417BE66C3710:304C6528F659C77866A510D9C1D6AE5E:0
140# OFB-AES192.Encrypt
141AES-192-OFB:8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B:000102030405060708090A0B0C0D0E0F:6BC1BEE22E409F96E93D7E117393172A:CDC80D6FDDF18CAB34C25909C99A4174:1
142AES-192-OFB:8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B:A609B38DF3B1133DDDFF2718BA09565E:AE2D8A571E03AC9C9EB76FAC45AF8E51:FCC28B8D4C63837C09E81700C1100401:1
143AES-192-OFB:8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B:52EF01DA52602FE0975F78AC84BF8A50:30C81C46A35CE411E5FBC1191A0A52EF:8D9A9AEAC0F6596F559C6D4DAF59A5F2:1
144AES-192-OFB:8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B:BD5286AC63AABD7EB067AC54B553F71D:F69F2445DF4F9B17AD2B417BE66C3710:6D9F200857CA6C3E9CAC524BD9ACC92A:1
145# OFB-AES192.Decrypt
146AES-192-OFB:8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B:000102030405060708090A0B0C0D0E0F:6BC1BEE22E409F96E93D7E117393172A:CDC80D6FDDF18CAB34C25909C99A4174:0
147AES-192-OFB:8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B:A609B38DF3B1133DDDFF2718BA09565E:AE2D8A571E03AC9C9EB76FAC45AF8E51:FCC28B8D4C63837C09E81700C1100401:0
148AES-192-OFB:8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B:52EF01DA52602FE0975F78AC84BF8A50:30C81C46A35CE411E5FBC1191A0A52EF:8D9A9AEAC0F6596F559C6D4DAF59A5F2:0
149AES-192-OFB:8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B:BD5286AC63AABD7EB067AC54B553F71D:F69F2445DF4F9B17AD2B417BE66C3710:6D9F200857CA6C3E9CAC524BD9ACC92A:0
150# OFB-AES256.Encrypt
151AES-256-OFB:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4:000102030405060708090A0B0C0D0E0F:6BC1BEE22E409F96E93D7E117393172A:DC7E84BFDA79164B7ECD8486985D3860:1
152AES-256-OFB:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4:B7BF3A5DF43989DD97F0FA97EBCE2F4A:AE2D8A571E03AC9C9EB76FAC45AF8E51:4FEBDC6740D20B3AC88F6AD82A4FB08D:1
153AES-256-OFB:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4:E1C656305ED1A7A6563805746FE03EDC:30C81C46A35CE411E5FBC1191A0A52EF:71AB47A086E86EEDF39D1C5BBA97C408:1
154AES-256-OFB:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4:41635BE625B48AFC1666DD42A09D96E7:F69F2445DF4F9B17AD2B417BE66C3710:0126141D67F37BE8538F5A8BE740E484:1
155# OFB-AES256.Decrypt
156AES-256-OFB:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4:000102030405060708090A0B0C0D0E0F:6BC1BEE22E409F96E93D7E117393172A:DC7E84BFDA79164B7ECD8486985D3860:0
157AES-256-OFB:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4:B7BF3A5DF43989DD97F0FA97EBCE2F4A:AE2D8A571E03AC9C9EB76FAC45AF8E51:4FEBDC6740D20B3AC88F6AD82A4FB08D:0
158AES-256-OFB:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4:E1C656305ED1A7A6563805746FE03EDC:30C81C46A35CE411E5FBC1191A0A52EF:71AB47A086E86EEDF39D1C5BBA97C408:0
159AES-256-OFB:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4:41635BE625B48AFC1666DD42A09D96E7:F69F2445DF4F9B17AD2B417BE66C3710:0126141D67F37BE8538F5A8BE740E484:0
160
161# DES ECB tests (from destest)
162
163DES-ECB:0000000000000000::0000000000000000:8CA64DE9C1B123A7
164DES-ECB:FFFFFFFFFFFFFFFF::FFFFFFFFFFFFFFFF:7359B2163E4EDC58
165DES-ECB:3000000000000000::1000000000000001:958E6E627A05557B
166DES-ECB:1111111111111111::1111111111111111:F40379AB9E0EC533
167DES-ECB:0123456789ABCDEF::1111111111111111:17668DFC7292532D
168DES-ECB:1111111111111111::0123456789ABCDEF:8A5AE1F81AB8F2DD
169DES-ECB:FEDCBA9876543210::0123456789ABCDEF:ED39D950FA74BCC4
170
171# DESX-CBC tests (from destest)
172DESX-CBC:0123456789abcdeff1e0d3c2b5a49786fedcba9876543210:fedcba9876543210:37363534333231204E6F77206973207468652074696D6520666F722000000000:846B2914851E9A2954732F8AA0A611C115CDC2D7951B1053A63C5E03B21AA3C4
173
174# DES EDE3 CBC tests (from destest)
175DES-EDE3-CBC:0123456789abcdeff1e0d3c2b5a49786fedcba9876543210:fedcba9876543210:37363534333231204E6F77206973207468652074696D6520666F722000000000:3FE301C962AC01D02213763C1CBD4CDC799657C064ECF5D41C673812CFDE9675
176
177# RC4 tests (from rc4test)
178RC4:0123456789abcdef0123456789abcdef::0123456789abcdef:75b7878099e0c596
179RC4:0123456789abcdef0123456789abcdef::0000000000000000:7494c2e7104b0879
180RC4:00000000000000000000000000000000::0000000000000000:de188941a3375d3a
181RC4:ef012345ef012345ef012345ef012345::0000000000000000000000000000000000000000:d6a141a7ec3c38dfbd615a1162e1c7ba36b67858
182RC4:0123456789abcdef0123456789abcdef::123456789ABCDEF0123456789ABCDEF0123456789ABCDEF012345678:66a0949f8af7d6891f7f832ba833c00c892ebe30143ce28740011ecf
183RC4:ef012345ef012345ef012345ef012345::00000000000000000000:d6a141a7ec3c38dfbd61
184
185
186# Camellia tests from RFC3713
187# For all ECB encrypts and decrypts, the transformed sequence is
188# CAMELLIA-bits-ECB:key::plaintext:ciphertext:encdec
189CAMELLIA-128-ECB:0123456789abcdeffedcba9876543210::0123456789abcdeffedcba9876543210:67673138549669730857065648eabe43
190CAMELLIA-192-ECB:0123456789abcdeffedcba98765432100011223344556677::0123456789abcdeffedcba9876543210:b4993401b3e996f84ee5cee7d79b09b9
191CAMELLIA-256-ECB:0123456789abcdeffedcba987654321000112233445566778899aabbccddeeff::0123456789abcdeffedcba9876543210:9acc237dff16d76c20ef7c919e3a7509
192
193# ECB-CAMELLIA128.Encrypt
194CAMELLIA-128-ECB:000102030405060708090A0B0C0D0E0F::00112233445566778899AABBCCDDEEFF:77CF412067AF8270613529149919546F:1
195CAMELLIA-192-ECB:000102030405060708090A0B0C0D0E0F1011121314151617::00112233445566778899AABBCCDDEEFF:B22F3C36B72D31329EEE8ADDC2906C68:1
196CAMELLIA-256-ECB:000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F::00112233445566778899AABBCCDDEEFF:2EDF1F3418D53B88841FC8985FB1ECF2:1
197
198# ECB-CAMELLIA128.Encrypt and ECB-CAMELLIA128.Decrypt
199CAMELLIA-128-ECB:2B7E151628AED2A6ABF7158809CF4F3C::6BC1BEE22E409F96E93D7E117393172A:432FC5DCD628115B7C388D770B270C96
200CAMELLIA-128-ECB:2B7E151628AED2A6ABF7158809CF4F3C::AE2D8A571E03AC9C9EB76FAC45AF8E51:0BE1F14023782A22E8384C5ABB7FAB2B
201CAMELLIA-128-ECB:2B7E151628AED2A6ABF7158809CF4F3C::30C81C46A35CE411E5FBC1191A0A52EF:A0A1ABCD1893AB6FE0FE5B65DF5F8636
202CAMELLIA-128-ECB:2B7E151628AED2A6ABF7158809CF4F3C::F69F2445DF4F9B17AD2B417BE66C3710:E61925E0D5DFAA9BB29F815B3076E51A
203
204# ECB-CAMELLIA192.Encrypt and ECB-CAMELLIA192.Decrypt
205CAMELLIA-192-ECB:8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B::6BC1BEE22E409F96E93D7E117393172A:CCCC6C4E138B45848514D48D0D3439D3
206CAMELLIA-192-ECB:8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B::AE2D8A571E03AC9C9EB76FAC45AF8E51:5713C62C14B2EC0F8393B6AFD6F5785A
207CAMELLIA-192-ECB:8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B::30C81C46A35CE411E5FBC1191A0A52EF:B40ED2B60EB54D09D030CF511FEEF366
208CAMELLIA-192-ECB:8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B::F69F2445DF4F9B17AD2B417BE66C3710:909DBD95799096748CB27357E73E1D26
209
210# ECB-CAMELLIA256.Encrypt and ECB-CAMELLIA256.Decrypt
211CAMELLIA-256-ECB:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4::6BC1BEE22E409F96E93D7E117393172A:BEFD219B112FA00098919CD101C9CCFA
212CAMELLIA-256-ECB:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4::AE2D8A571E03AC9C9EB76FAC45AF8E51:C91D3A8F1AEA08A9386CF4B66C0169EA
213CAMELLIA-256-ECB:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4::30C81C46A35CE411E5FBC1191A0A52EF:A623D711DC5F25A51BB8A80D56397D28
214CAMELLIA-256-ECB:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4::F69F2445DF4F9B17AD2B417BE66C3710:7960109FB6DC42947FCFE59EA3C5EB6B
215
216# For all CBC encrypts and decrypts, the transformed sequence is
217# CAMELLIA-bits-CBC:key:IV/ciphertext':plaintext:ciphertext:encdec
218# CBC-CAMELLIA128.Encrypt and CBC-CAMELLIA128.Decrypt
219CAMELLIA-128-CBC:2B7E151628AED2A6ABF7158809CF4F3C:000102030405060708090A0B0C0D0E0F:6BC1BEE22E409F96E93D7E117393172A:1607CF494B36BBF00DAEB0B503C831AB
220CAMELLIA-128-CBC:2B7E151628AED2A6ABF7158809CF4F3C:1607CF494B36BBF00DAEB0B503C831AB:AE2D8A571E03AC9C9EB76FAC45AF8E51:A2F2CF671629EF7840C5A5DFB5074887
221CAMELLIA-128-CBC:2B7E151628AED2A6ABF7158809CF4F3C:A2F2CF671629EF7840C5A5DFB5074887:30C81C46A35CE411E5FBC1191A0A52EF:0F06165008CF8B8B5A63586362543E54
222CAMELLIA-128-CBC:2B7E151628AED2A6ABF7158809CF4F3C:36A84CDAFD5F9A85ADA0F0A993D6D577:F69F2445DF4F9B17AD2B417BE66C3710:74C64268CDB8B8FAF5B34E8AF3732980
223
224# CBC-CAMELLIA192.Encrypt and CBC-CAMELLIA192.Decrypt
225CAMELLIA-192-CBC:8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B:000102030405060708090A0B0C0D0E0F:6BC1BEE22E409F96E93D7E117393172A:2A4830AB5AC4A1A2405955FD2195CF93
226CAMELLIA-192-CBC:8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B:2A4830AB5AC4A1A2405955FD2195CF93:AE2D8A571E03AC9C9EB76FAC45AF8E51:5D5A869BD14CE54264F892A6DD2EC3D5
227CAMELLIA-192-CBC:8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B:5D5A869BD14CE54264F892A6DD2EC3D5:30C81C46A35CE411E5FBC1191A0A52EF:37D359C3349836D884E310ADDF68C449
228CAMELLIA-192-CBC:8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B:37D359C3349836D884E310ADDF68C449:F69F2445DF4F9B17AD2B417BE66C3710:01FAAA930B4AB9916E9668E1428C6B08
229
230# CBC-CAMELLIA256.Encrypt and CBC-CAMELLIA256.Decrypt
231CAMELLIA-256-CBC:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4:000102030405060708090A0B0C0D0E0F:6BC1BEE22E409F96E93D7E117393172A:E6CFA35FC02B134A4D2C0B6737AC3EDA
232CAMELLIA-256-CBC:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4:E6CFA35FC02B134A4D2C0B6737AC3EDA:AE2D8A571E03AC9C9EB76FAC45AF8E51:36CBEB73BD504B4070B1B7DE2B21EB50
233CAMELLIA-256-CBC:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4:36CBEB73BD504B4070B1B7DE2B21EB50:30C81C46A35CE411E5FBC1191A0A52EF:E31A6055297D96CA3330CDF1B1860A83
234CAMELLIA-256-CBC:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4:E31A6055297D96CA3330CDF1B1860A83:F69F2445DF4F9B17AD2B417BE66C3710:5D563F6D1CCCF236051C0C5C1C58F28F
235
236# We don't support CFB{1,8}-CAMELLIAxxx.{En,De}crypt
237# For all CFB128 encrypts and decrypts, the transformed sequence is
238# CAMELLIA-bits-CFB:key:IV/ciphertext':plaintext:ciphertext:encdec
239# CFB128-CAMELLIA128.Encrypt
240CAMELLIA-128-CFB:2B7E151628AED2A6ABF7158809CF4F3C:000102030405060708090A0B0C0D0E0F:6BC1BEE22E409F96E93D7E117393172A:14F7646187817EB586599146B82BD719:1
241CAMELLIA-128-CFB:2B7E151628AED2A6ABF7158809CF4F3C:14F7646187817EB586599146B82BD719:AE2D8A571E03AC9C9EB76FAC45AF8E51:A53D28BB82DF741103EA4F921A44880B:1
242CAMELLIA-128-CFB:2B7E151628AED2A6ABF7158809CF4F3C:A53D28BB82DF741103EA4F921A44880B:30C81C46A35CE411E5FBC1191A0A52EF:9C2157A664626D1DEF9EA420FDE69B96:1
243CAMELLIA-128-CFB:2B7E151628AED2A6ABF7158809CF4F3C:9C2157A664626D1DEF9EA420FDE69B96:F69F2445DF4F9B17AD2B417BE66C3710:742A25F0542340C7BAEF24CA8482BB09:1
244
245# CFB128-CAMELLIA128.Decrypt
246CAMELLIA-128-CFB:2B7E151628AED2A6ABF7158809CF4F3C:000102030405060708090A0B0C0D0E0F:6BC1BEE22E409F96E93D7E117393172A:14F7646187817EB586599146B82BD719:0
247CAMELLIA-128-CFB:2B7E151628AED2A6ABF7158809CF4F3C:14F7646187817EB586599146B82BD719:AE2D8A571E03AC9C9EB76FAC45AF8E51:A53D28BB82DF741103EA4F921A44880B:0
248CAMELLIA-128-CFB:2B7E151628AED2A6ABF7158809CF4F3C:A53D28BB82DF741103EA4F921A44880B:30C81C46A35CE411E5FBC1191A0A52EF:9C2157A664626D1DEF9EA420FDE69B96:0
249CAMELLIA-128-CFB:2B7E151628AED2A6ABF7158809CF4F3C:9C2157A664626D1DEF9EA420FDE69B96:F69F2445DF4F9B17AD2B417BE66C3710:742A25F0542340C7BAEF24CA8482BB09:0
250
251# CFB128-CAMELLIA192.Encrypt
252CAMELLIA-192-CFB:8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B:000102030405060708090A0B0C0D0E0F:6BC1BEE22E409F96E93D7E117393172A:C832BB9780677DAA82D9B6860DCD565E:1
253CAMELLIA-192-CFB:8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B:C832BB9780677DAA82D9B6860DCD565E:AE2D8A571E03AC9C9EB76FAC45AF8E51:86F8491627906D780C7A6D46EA331F98:1
254CAMELLIA-192-CFB:8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B:86F8491627906D780C7A6D46EA331F98:30C81C46A35CE411E5FBC1191A0A52EF:69511CCE594CF710CB98BB63D7221F01:1
255CAMELLIA-192-CFB:8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B:69511CCE594CF710CB98BB63D7221F01:F69F2445DF4F9B17AD2B417BE66C3710:D5B5378A3ABED55803F25565D8907B84:1
256
257# CFB128-CAMELLIA192.Decrypt
258CAMELLIA-192-CFB:8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B:000102030405060708090A0B0C0D0E0F:6BC1BEE22E409F96E93D7E117393172A:C832BB9780677DAA82D9B6860DCD565E:0
259CAMELLIA-192-CFB:8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B:C832BB9780677DAA82D9B6860DCD565E:AE2D8A571E03AC9C9EB76FAC45AF8E51:86F8491627906D780C7A6D46EA331F98:0
260CAMELLIA-192-CFB:8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B:86F8491627906D780C7A6D46EA331F98:30C81C46A35CE411E5FBC1191A0A52EF:69511CCE594CF710CB98BB63D7221F01:0
261CAMELLIA-192-CFB:8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B:69511CCE594CF710CB98BB63D7221F01:F69F2445DF4F9B17AD2B417BE66C3710:D5B5378A3ABED55803F25565D8907B84:0
262
263# CFB128-CAMELLIA256.Encrypt
264CAMELLIA-256-CFB:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4:000102030405060708090A0B0C0D0E0F:6BC1BEE22E409F96E93D7E117393172A:CF6107BB0CEA7D7FB1BD31F5E7B06C93:1
265CAMELLIA-256-CFB:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4:CF6107BB0CEA7D7FB1BD31F5E7B06C93:AE2D8A571E03AC9C9EB76FAC45AF8E51:89BEDB4CCDD864EA11BA4CBE849B5E2B:1
266CAMELLIA-256-CFB:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4:89BEDB4CCDD864EA11BA4CBE849B5E2B:30C81C46A35CE411E5FBC1191A0A52EF:555FC3F34BDD2D54C62D9E3BF338C1C4:1
267CAMELLIA-256-CFB:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4:555FC3F34BDD2D54C62D9E3BF338C1C4:F69F2445DF4F9B17AD2B417BE66C3710:5953ADCE14DB8C7F39F1BD39F359BFFA:1
268
269# CFB128-CAMELLIA256.Decrypt
270CAMELLIA-256-CFB:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4:000102030405060708090A0B0C0D0E0F:6BC1BEE22E409F96E93D7E117393172A:CF6107BB0CEA7D7FB1BD31F5E7B06C93:0
271CAMELLIA-256-CFB:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4:CF6107BB0CEA7D7FB1BD31F5E7B06C93:AE2D8A571E03AC9C9EB76FAC45AF8E51:89BEDB4CCDD864EA11BA4CBE849B5E2B:0
272CAMELLIA-256-CFB:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4:89BEDB4CCDD864EA11BA4CBE849B5E2B:30C81C46A35CE411E5FBC1191A0A52EF:555FC3F34BDD2D54C62D9E3BF338C1C4:0
273CAMELLIA-256-CFB:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4:555FC3F34BDD2D54C62D9E3BF338C1C4:F69F2445DF4F9B17AD2B417BE66C3710:5953ADCE14DB8C7F39F1BD39F359BFFA:0
274
275# For all OFB encrypts and decrypts, the transformed sequence is
276# CAMELLIA-bits-OFB:key:IV/output':plaintext:ciphertext:encdec
277# OFB-CAMELLIA128.Encrypt
278CAMELLIA-128-OFB:2B7E151628AED2A6ABF7158809CF4F3C:000102030405060708090A0B0C0D0E0F:6BC1BEE22E409F96E93D7E117393172A:14F7646187817EB586599146B82BD719:1
279CAMELLIA-128-OFB:2B7E151628AED2A6ABF7158809CF4F3C:50FE67CC996D32B6DA0937E99BAFEC60:AE2D8A571E03AC9C9EB76FAC45AF8E51:25623DB569CA51E01482649977E28D84:1
280CAMELLIA-128-OFB:2B7E151628AED2A6ABF7158809CF4F3C:D9A4DADA0892239F6B8B3D7680E15674:30C81C46A35CE411E5FBC1191A0A52EF:C776634A60729DC657D12B9FCA801E98:1
281CAMELLIA-128-OFB:2B7E151628AED2A6ABF7158809CF4F3C:A78819583F0308E7A6BF36B1386ABF23:F69F2445DF4F9B17AD2B417BE66C3710:D776379BE0E50825E681DA1A4C980E8E:1
282
283# OFB-CAMELLIA128.Decrypt
284CAMELLIA-128-OFB:2B7E151628AED2A6ABF7158809CF4F3C:000102030405060708090A0B0C0D0E0F:6BC1BEE22E409F96E93D7E117393172A:14F7646187817EB586599146B82BD719:0
285CAMELLIA-128-OFB:2B7E151628AED2A6ABF7158809CF4F3C:50FE67CC996D32B6DA0937E99BAFEC60:AE2D8A571E03AC9C9EB76FAC45AF8E51:25623DB569CA51E01482649977E28D84:0
286CAMELLIA-128-OFB:2B7E151628AED2A6ABF7158809CF4F3C:D9A4DADA0892239F6B8B3D7680E15674:30C81C46A35CE411E5FBC1191A0A52EF:C776634A60729DC657D12B9FCA801E98:0
287CAMELLIA-128-OFB:2B7E151628AED2A6ABF7158809CF4F3C:A78819583F0308E7A6BF36B1386ABF23:F69F2445DF4F9B17AD2B417BE66C3710:D776379BE0E50825E681DA1A4C980E8E:0
288
289# OFB-CAMELLIA192.Encrypt
290CAMELLIA-192-OFB:8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B:000102030405060708090A0B0C0D0E0F:6BC1BEE22E409F96E93D7E117393172A:C832BB9780677DAA82D9B6860DCD565E:1
291CAMELLIA-192-OFB:8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B:A609B38DF3B1133DDDFF2718BA09565E:AE2D8A571E03AC9C9EB76FAC45AF8E51:8ECEB7D0350D72C7F78562AEBDF99339:1
292CAMELLIA-192-OFB:8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B:52EF01DA52602FE0975F78AC84BF8A50:30C81C46A35CE411E5FBC1191A0A52EF:BDD62DBBB9700846C53B507F544696F0:1
293CAMELLIA-192-OFB:8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B:BD5286AC63AABD7EB067AC54B553F71D:F69F2445DF4F9B17AD2B417BE66C3710:E28014E046B802F385C4C2E13EAD4A72:1
294
295# OFB-CAMELLIA192.Decrypt
296CAMELLIA-192-OFB:8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B:000102030405060708090A0B0C0D0E0F:6BC1BEE22E409F96E93D7E117393172A:C832BB9780677DAA82D9B6860DCD565E:0
297CAMELLIA-192-OFB:8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B:A609B38DF3B1133DDDFF2718BA09565E:AE2D8A571E03AC9C9EB76FAC45AF8E51:8ECEB7D0350D72C7F78562AEBDF99339:0
298CAMELLIA-192-OFB:8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B:52EF01DA52602FE0975F78AC84BF8A50:30C81C46A35CE411E5FBC1191A0A52EF:BDD62DBBB9700846C53B507F544696F0:0
299CAMELLIA-192-OFB:8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B:BD5286AC63AABD7EB067AC54B553F71D:F69F2445DF4F9B17AD2B417BE66C3710:E28014E046B802F385C4C2E13EAD4A72:0
300
301# OFB-CAMELLIA256.Encrypt
302CAMELLIA-256-OFB:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4:000102030405060708090A0B0C0D0E0F:6BC1BEE22E409F96E93D7E117393172A:CF6107BB0CEA7D7FB1BD31F5E7B06C93:1
303CAMELLIA-256-OFB:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4:B7BF3A5DF43989DD97F0FA97EBCE2F4A:AE2D8A571E03AC9C9EB76FAC45AF8E51:127AD97E8E3994E4820027D7BA109368:1
304CAMELLIA-256-OFB:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4:E1C656305ED1A7A6563805746FE03EDC:30C81C46A35CE411E5FBC1191A0A52EF:6BFF6265A6A6B7A535BC65A80B17214E:1
305CAMELLIA-256-OFB:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4:41635BE625B48AFC1666DD42A09D96E7:F69F2445DF4F9B17AD2B417BE66C3710:0A4A0404E26AA78A27CB271E8BF3CF20:1
306
307# OFB-CAMELLIA256.Decrypt
308CAMELLIA-256-OFB:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4:000102030405060708090A0B0C0D0E0F:6BC1BEE22E409F96E93D7E117393172A:CF6107BB0CEA7D7FB1BD31F5E7B06C93:0
309CAMELLIA-256-OFB:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4:B7BF3A5DF43989DD97F0FA97EBCE2F4A:AE2D8A571E03AC9C9EB76FAC45AF8E51:127AD97E8E3994E4820027D7BA109368:0
310CAMELLIA-256-OFB:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4:E1C656305ED1A7A6563805746FE03EDC:30C81C46A35CE411E5FBC1191A0A52EF:6BFF6265A6A6B7A535BC65A80B17214E:0
311CAMELLIA-256-OFB:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4:41635BE625B48AFC1666DD42A09D96E7:F69F2445DF4F9B17AD2B417BE66C3710:0A4A0404E26AA78A27CB271E8BF3CF20:0
312
313# SEED test vectors from RFC4269
314SEED-ECB:00000000000000000000000000000000::000102030405060708090A0B0C0D0E0F:5EBAC6E0054E166819AFF1CC6D346CDB:0
315SEED-ECB:000102030405060708090A0B0C0D0E0F::00000000000000000000000000000000:C11F22F20140505084483597E4370F43:0
316SEED-ECB:4706480851E61BE85D74BFB3FD956185::83A2F8A288641FB9A4E9A5CC2F131C7D:EE54D13EBCAE706D226BC3142CD40D4A:0
317SEED-ECB:28DBC3BC49FFD87DCFA509B11D422BE7::B41E6BE2EBA84A148E2EED84593C5EC7:9B9B7BFCD1813CB95D0B3618F40F5122:0
318SEED-ECB:00000000000000000000000000000000::000102030405060708090A0B0C0D0E0F:5EBAC6E0054E166819AFF1CC6D346CDB:1
319SEED-ECB:000102030405060708090A0B0C0D0E0F::00000000000000000000000000000000:C11F22F20140505084483597E4370F43:1
320SEED-ECB:4706480851E61BE85D74BFB3FD956185::83A2F8A288641FB9A4E9A5CC2F131C7D:EE54D13EBCAE706D226BC3142CD40D4A:1
321SEED-ECB:28DBC3BC49FFD87DCFA509B11D422BE7::B41E6BE2EBA84A148E2EED84593C5EC7:9B9B7BFCD1813CB95D0B3618F40F5122:1
diff --git a/src/lib/libssl/test/igetest.c b/src/lib/libssl/test/igetest.c
new file mode 100644
index 0000000000..1ba900244d
--- /dev/null
+++ b/src/lib/libssl/test/igetest.c
@@ -0,0 +1,503 @@
1/* test/igetest.c -*- mode:C; c-file-style: "eay" -*- */
2/* ====================================================================
3 * Copyright (c) 2006 The OpenSSL Project. All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 *
9 * 1. Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer.
11 *
12 * 2. Redistributions in binary form must reproduce the above copyright
13 * notice, this list of conditions and the following disclaimer in
14 * the documentation and/or other materials provided with the
15 * distribution.
16 *
17 * 3. All advertising materials mentioning features or use of this
18 * software must display the following acknowledgment:
19 * "This product includes software developed by the OpenSSL Project
20 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
21 *
22 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
23 * endorse or promote products derived from this software without
24 * prior written permission. For written permission, please contact
25 * openssl-core@openssl.org.
26 *
27 * 5. Products derived from this software may not be called "OpenSSL"
28 * nor may "OpenSSL" appear in their names without prior written
29 * permission of the OpenSSL Project.
30 *
31 * 6. Redistributions of any form whatsoever must retain the following
32 * acknowledgment:
33 * "This product includes software developed by the OpenSSL Project
34 * for use in the OpenSSL Toolkit (http://www.openssl.org/)"
35 *
36 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
37 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
38 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
39 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
40 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
41 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
42 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
43 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
44 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
45 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
46 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
47 * OF THE POSSIBILITY OF SUCH DAMAGE.
48 * ====================================================================
49 *
50 */
51
52#include <openssl/aes.h>
53#include <openssl/rand.h>
54#include <stdio.h>
55#include <string.h>
56#include <assert.h>
57
58#define TEST_SIZE 128
59#define BIG_TEST_SIZE 10240
60
61static void hexdump(FILE *f,const char *title,const unsigned char *s,int l)
62 {
63 int n=0;
64
65 fprintf(f,"%s",title);
66 for( ; n < l ; ++n)
67 {
68 if((n%16) == 0)
69 fprintf(f,"\n%04x",n);
70 fprintf(f," %02x",s[n]);
71 }
72 fprintf(f,"\n");
73 }
74
75#define MAX_VECTOR_SIZE 64
76
77struct ige_test
78 {
79 const unsigned char key[16];
80 const unsigned char iv[32];
81 const unsigned char in[MAX_VECTOR_SIZE];
82 const unsigned char out[MAX_VECTOR_SIZE];
83 const size_t length;
84 const int encrypt;
85 };
86
87static struct ige_test const ige_test_vectors[] = {
88{ { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
89 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f }, /* key */
90 { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
91 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
92 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
93 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f }, /* iv */
94 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
95 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
96 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
97 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* in */
98 { 0x1a, 0x85, 0x19, 0xa6, 0x55, 0x7b, 0xe6, 0x52,
99 0xe9, 0xda, 0x8e, 0x43, 0xda, 0x4e, 0xf4, 0x45,
100 0x3c, 0xf4, 0x56, 0xb4, 0xca, 0x48, 0x8a, 0xa3,
101 0x83, 0xc7, 0x9c, 0x98, 0xb3, 0x47, 0x97, 0xcb }, /* out */
102 32, AES_ENCRYPT }, /* test vector 0 */
103
104{ { 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20,
105 0x61, 0x6e, 0x20, 0x69, 0x6d, 0x70, 0x6c, 0x65 }, /* key */
106 { 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f,
107 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x49, 0x47, 0x45,
108 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x20, 0x66, 0x6f,
109 0x72, 0x20, 0x4f, 0x70, 0x65, 0x6e, 0x53, 0x53 }, /* iv */
110 { 0x4c, 0x2e, 0x20, 0x4c, 0x65, 0x74, 0x27, 0x73,
111 0x20, 0x68, 0x6f, 0x70, 0x65, 0x20, 0x42, 0x65,
112 0x6e, 0x20, 0x67, 0x6f, 0x74, 0x20, 0x69, 0x74,
113 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x21, 0x0a }, /* in */
114 { 0x99, 0x70, 0x64, 0x87, 0xa1, 0xcd, 0xe6, 0x13,
115 0xbc, 0x6d, 0xe0, 0xb6, 0xf2, 0x4b, 0x1c, 0x7a,
116 0xa4, 0x48, 0xc8, 0xb9, 0xc3, 0x40, 0x3e, 0x34,
117 0x67, 0xa8, 0xca, 0xd8, 0x93, 0x40, 0xf5, 0x3b }, /* out */
118 32, AES_DECRYPT }, /* test vector 1 */
119};
120
121struct bi_ige_test
122 {
123 const unsigned char key1[32];
124 const unsigned char key2[32];
125 const unsigned char iv[64];
126 const unsigned char in[MAX_VECTOR_SIZE];
127 const unsigned char out[MAX_VECTOR_SIZE];
128 const size_t keysize;
129 const size_t length;
130 const int encrypt;
131 };
132
133static struct bi_ige_test const bi_ige_test_vectors[] = {
134{ { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
135 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f }, /* key1 */
136 { 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
137 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f }, /* key2 */
138 { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
139 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
140 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
141 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,
142 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,
143 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,
144 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
145 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f }, /* iv */
146 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
147 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
148 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
149 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* in */
150 { 0x14, 0x40, 0x6f, 0xae, 0xa2, 0x79, 0xf2, 0x56,
151 0x1f, 0x86, 0xeb, 0x3b, 0x7d, 0xff, 0x53, 0xdc,
152 0x4e, 0x27, 0x0c, 0x03, 0xde, 0x7c, 0xe5, 0x16,
153 0x6a, 0x9c, 0x20, 0x33, 0x9d, 0x33, 0xfe, 0x12 }, /* out */
154 16, 32, AES_ENCRYPT }, /* test vector 0 */
155{ { 0x58, 0x0a, 0x06, 0xe9, 0x97, 0x07, 0x59, 0x5c,
156 0x9e, 0x19, 0xd2, 0xa7, 0xbb, 0x40, 0x2b, 0x7a,
157 0xc7, 0xd8, 0x11, 0x9e, 0x4c, 0x51, 0x35, 0x75,
158 0x64, 0x28, 0x0f, 0x23, 0xad, 0x74, 0xac, 0x37 }, /* key1 */
159 { 0xd1, 0x80, 0xa0, 0x31, 0x47, 0xa3, 0x11, 0x13,
160 0x86, 0x26, 0x9e, 0x6d, 0xff, 0xaf, 0x72, 0x74,
161 0x5b, 0xa2, 0x35, 0x81, 0xd2, 0xa6, 0x3d, 0x21,
162 0x67, 0x7b, 0x58, 0xa8, 0x18, 0xf9, 0x72, 0xe4 }, /* key2 */
163 { 0x80, 0x3d, 0xbd, 0x4c, 0xe6, 0x7b, 0x06, 0xa9,
164 0x53, 0x35, 0xd5, 0x7e, 0x71, 0xc1, 0x70, 0x70,
165 0x74, 0x9a, 0x00, 0x28, 0x0c, 0xbf, 0x6c, 0x42,
166 0x9b, 0xa4, 0xdd, 0x65, 0x11, 0x77, 0x7c, 0x67,
167 0xfe, 0x76, 0x0a, 0xf0, 0xd5, 0xc6, 0x6e, 0x6a,
168 0xe7, 0x5e, 0x4c, 0xf2, 0x7e, 0x9e, 0xf9, 0x20,
169 0x0e, 0x54, 0x6f, 0x2d, 0x8a, 0x8d, 0x7e, 0xbd,
170 0x48, 0x79, 0x37, 0x99, 0xff, 0x27, 0x93, 0xa3 }, /* iv */
171 { 0xf1, 0x54, 0x3d, 0xca, 0xfe, 0xb5, 0xef, 0x1c,
172 0x4f, 0xa6, 0x43, 0xf6, 0xe6, 0x48, 0x57, 0xf0,
173 0xee, 0x15, 0x7f, 0xe3, 0xe7, 0x2f, 0xd0, 0x2f,
174 0x11, 0x95, 0x7a, 0x17, 0x00, 0xab, 0xa7, 0x0b,
175 0xbe, 0x44, 0x09, 0x9c, 0xcd, 0xac, 0xa8, 0x52,
176 0xa1, 0x8e, 0x7b, 0x75, 0xbc, 0xa4, 0x92, 0x5a,
177 0xab, 0x46, 0xd3, 0x3a, 0xa0, 0xd5, 0x35, 0x1c,
178 0x55, 0xa4, 0xb3, 0xa8, 0x40, 0x81, 0xa5, 0x0b}, /* in */
179 { 0x42, 0xe5, 0x28, 0x30, 0x31, 0xc2, 0xa0, 0x23,
180 0x68, 0x49, 0x4e, 0xb3, 0x24, 0x59, 0x92, 0x79,
181 0xc1, 0xa5, 0xcc, 0xe6, 0x76, 0x53, 0xb1, 0xcf,
182 0x20, 0x86, 0x23, 0xe8, 0x72, 0x55, 0x99, 0x92,
183 0x0d, 0x16, 0x1c, 0x5a, 0x2f, 0xce, 0xcb, 0x51,
184 0xe2, 0x67, 0xfa, 0x10, 0xec, 0xcd, 0x3d, 0x67,
185 0xa5, 0xe6, 0xf7, 0x31, 0x26, 0xb0, 0x0d, 0x76,
186 0x5e, 0x28, 0xdc, 0x7f, 0x01, 0xc5, 0xa5, 0x4c}, /* out */
187 32, 64, AES_ENCRYPT }, /* test vector 1 */
188
189};
190
191static int run_test_vectors(void)
192 {
193 unsigned int n;
194 int errs = 0;
195
196 for(n=0 ; n < sizeof(ige_test_vectors)/sizeof(ige_test_vectors[0]) ; ++n)
197 {
198 const struct ige_test * const v = &ige_test_vectors[n];
199 AES_KEY key;
200 unsigned char buf[MAX_VECTOR_SIZE];
201 unsigned char iv[AES_BLOCK_SIZE*2];
202
203 assert(v->length <= MAX_VECTOR_SIZE);
204
205 if(v->encrypt == AES_ENCRYPT)
206 AES_set_encrypt_key(v->key, 8*sizeof v->key, &key);
207 else
208 AES_set_decrypt_key(v->key, 8*sizeof v->key, &key);
209 memcpy(iv, v->iv, sizeof iv);
210 AES_ige_encrypt(v->in, buf, v->length, &key, iv, v->encrypt);
211
212 if(memcmp(v->out, buf, v->length))
213 {
214 printf("IGE test vector %d failed\n", n);
215 hexdump(stdout, "key", v->key, sizeof v->key);
216 hexdump(stdout, "iv", v->iv, sizeof v->iv);
217 hexdump(stdout, "in", v->in, v->length);
218 hexdump(stdout, "expected", v->out, v->length);
219 hexdump(stdout, "got", buf, v->length);
220
221 ++errs;
222 }
223
224 /* try with in == out */
225 memcpy(iv, v->iv, sizeof iv);
226 memcpy(buf, v->in, v->length);
227 AES_ige_encrypt(buf, buf, v->length, &key, iv, v->encrypt);
228
229 if(memcmp(v->out, buf, v->length))
230 {
231 printf("IGE test vector %d failed (with in == out)\n", n);
232 hexdump(stdout, "key", v->key, sizeof v->key);
233 hexdump(stdout, "iv", v->iv, sizeof v->iv);
234 hexdump(stdout, "in", v->in, v->length);
235 hexdump(stdout, "expected", v->out, v->length);
236 hexdump(stdout, "got", buf, v->length);
237
238 ++errs;
239 }
240 }
241
242 for(n=0 ; n < sizeof(bi_ige_test_vectors)/sizeof(bi_ige_test_vectors[0])
243 ; ++n)
244 {
245 const struct bi_ige_test * const v = &bi_ige_test_vectors[n];
246 AES_KEY key1;
247 AES_KEY key2;
248 unsigned char buf[MAX_VECTOR_SIZE];
249
250 assert(v->length <= MAX_VECTOR_SIZE);
251
252 if(v->encrypt == AES_ENCRYPT)
253 {
254 AES_set_encrypt_key(v->key1, 8*v->keysize, &key1);
255 AES_set_encrypt_key(v->key2, 8*v->keysize, &key2);
256 }
257 else
258 {
259 AES_set_decrypt_key(v->key1, 8*v->keysize, &key1);
260 AES_set_decrypt_key(v->key2, 8*v->keysize, &key2);
261 }
262
263 AES_bi_ige_encrypt(v->in, buf, v->length, &key1, &key2, v->iv,
264 v->encrypt);
265
266 if(memcmp(v->out, buf, v->length))
267 {
268 printf("Bidirectional IGE test vector %d failed\n", n);
269 hexdump(stdout, "key 1", v->key1, sizeof v->key1);
270 hexdump(stdout, "key 2", v->key2, sizeof v->key2);
271 hexdump(stdout, "iv", v->iv, sizeof v->iv);
272 hexdump(stdout, "in", v->in, v->length);
273 hexdump(stdout, "expected", v->out, v->length);
274 hexdump(stdout, "got", buf, v->length);
275
276 ++errs;
277 }
278 }
279
280 return errs;
281 }
282
283int main(int argc, char **argv)
284 {
285 unsigned char rkey[16];
286 unsigned char rkey2[16];
287 AES_KEY key;
288 AES_KEY key2;
289 unsigned char plaintext[BIG_TEST_SIZE];
290 unsigned char ciphertext[BIG_TEST_SIZE];
291 unsigned char checktext[BIG_TEST_SIZE];
292 unsigned char iv[AES_BLOCK_SIZE*4];
293 unsigned char saved_iv[AES_BLOCK_SIZE*4];
294 int err = 0;
295 unsigned int n;
296 unsigned matches;
297
298 assert(BIG_TEST_SIZE >= TEST_SIZE);
299
300 RAND_pseudo_bytes(rkey, sizeof rkey);
301 RAND_pseudo_bytes(plaintext, sizeof plaintext);
302 RAND_pseudo_bytes(iv, sizeof iv);
303 memcpy(saved_iv, iv, sizeof saved_iv);
304
305 /* Forward IGE only... */
306
307 /* Straight encrypt/decrypt */
308 AES_set_encrypt_key(rkey, 8*sizeof rkey, &key);
309 AES_ige_encrypt(plaintext, ciphertext, TEST_SIZE, &key, iv,
310 AES_ENCRYPT);
311
312 AES_set_decrypt_key(rkey, 8*sizeof rkey, &key);
313 memcpy(iv, saved_iv, sizeof iv);
314 AES_ige_encrypt(ciphertext, checktext, TEST_SIZE, &key, iv,
315 AES_DECRYPT);
316
317 if(memcmp(checktext, plaintext, TEST_SIZE))
318 {
319 printf("Encrypt+decrypt doesn't match\n");
320 hexdump(stdout, "Plaintext", plaintext, TEST_SIZE);
321 hexdump(stdout, "Checktext", checktext, TEST_SIZE);
322 ++err;
323 }
324
325 /* Now check encrypt chaining works */
326 AES_set_encrypt_key(rkey, 8*sizeof rkey, &key);
327 memcpy(iv, saved_iv, sizeof iv);
328 AES_ige_encrypt(plaintext, ciphertext, TEST_SIZE/2, &key, iv,
329 AES_ENCRYPT);
330 AES_ige_encrypt(plaintext+TEST_SIZE/2,
331 ciphertext+TEST_SIZE/2, TEST_SIZE/2,
332 &key, iv, AES_ENCRYPT);
333
334 AES_set_decrypt_key(rkey, 8*sizeof rkey, &key);
335 memcpy(iv, saved_iv, sizeof iv);
336 AES_ige_encrypt(ciphertext, checktext, TEST_SIZE, &key, iv,
337 AES_DECRYPT);
338
339 if(memcmp(checktext, plaintext, TEST_SIZE))
340 {
341 printf("Chained encrypt+decrypt doesn't match\n");
342 hexdump(stdout, "Plaintext", plaintext, TEST_SIZE);
343 hexdump(stdout, "Checktext", checktext, TEST_SIZE);
344 ++err;
345 }
346
347 /* And check decrypt chaining */
348 AES_set_encrypt_key(rkey, 8*sizeof rkey, &key);
349 memcpy(iv, saved_iv, sizeof iv);
350 AES_ige_encrypt(plaintext, ciphertext, TEST_SIZE/2, &key, iv,
351 AES_ENCRYPT);
352 AES_ige_encrypt(plaintext+TEST_SIZE/2,
353 ciphertext+TEST_SIZE/2, TEST_SIZE/2,
354 &key, iv, AES_ENCRYPT);
355
356 AES_set_decrypt_key(rkey, 8*sizeof rkey, &key);
357 memcpy(iv, saved_iv, sizeof iv);
358 AES_ige_encrypt(ciphertext, checktext, TEST_SIZE/2, &key, iv,
359 AES_DECRYPT);
360 AES_ige_encrypt(ciphertext+TEST_SIZE/2,
361 checktext+TEST_SIZE/2, TEST_SIZE/2, &key, iv,
362 AES_DECRYPT);
363
364 if(memcmp(checktext, plaintext, TEST_SIZE))
365 {
366 printf("Chained encrypt+chained decrypt doesn't match\n");
367 hexdump(stdout, "Plaintext", plaintext, TEST_SIZE);
368 hexdump(stdout, "Checktext", checktext, TEST_SIZE);
369 ++err;
370 }
371
372 /* make sure garble extends forwards only */
373 AES_set_encrypt_key(rkey, 8*sizeof rkey, &key);
374 memcpy(iv, saved_iv, sizeof iv);
375 AES_ige_encrypt(plaintext, ciphertext, sizeof plaintext, &key, iv,
376 AES_ENCRYPT);
377
378 /* corrupt halfway through */
379 ++ciphertext[sizeof ciphertext/2];
380 AES_set_decrypt_key(rkey, 8*sizeof rkey, &key);
381 memcpy(iv, saved_iv, sizeof iv);
382 AES_ige_encrypt(ciphertext, checktext, sizeof checktext, &key, iv,
383 AES_DECRYPT);
384
385 matches=0;
386 for(n=0 ; n < sizeof checktext ; ++n)
387 if(checktext[n] == plaintext[n])
388 ++matches;
389
390 if(matches > sizeof checktext/2+sizeof checktext/100)
391 {
392 printf("More than 51%% matches after garbling\n");
393 ++err;
394 }
395
396 if(matches < sizeof checktext/2)
397 {
398 printf("Garble extends backwards!\n");
399 ++err;
400 }
401
402 /* Bi-directional IGE */
403
404 /* Note that we don't have to recover the IV, because chaining isn't */
405 /* possible with biIGE, so the IV is not updated. */
406
407 RAND_pseudo_bytes(rkey2, sizeof rkey2);
408
409 /* Straight encrypt/decrypt */
410 AES_set_encrypt_key(rkey, 8*sizeof rkey, &key);
411 AES_set_encrypt_key(rkey2, 8*sizeof rkey2, &key2);
412 AES_bi_ige_encrypt(plaintext, ciphertext, TEST_SIZE, &key, &key2, iv,
413 AES_ENCRYPT);
414
415 AES_set_decrypt_key(rkey, 8*sizeof rkey, &key);
416 AES_set_decrypt_key(rkey2, 8*sizeof rkey2, &key2);
417 AES_bi_ige_encrypt(ciphertext, checktext, TEST_SIZE, &key, &key2, iv,
418 AES_DECRYPT);
419
420 if(memcmp(checktext, plaintext, TEST_SIZE))
421 {
422 printf("Encrypt+decrypt doesn't match\n");
423 hexdump(stdout, "Plaintext", plaintext, TEST_SIZE);
424 hexdump(stdout, "Checktext", checktext, TEST_SIZE);
425 ++err;
426 }
427
428 /* make sure garble extends both ways */
429 AES_set_encrypt_key(rkey, 8*sizeof rkey, &key);
430 AES_set_encrypt_key(rkey2, 8*sizeof rkey2, &key2);
431 AES_ige_encrypt(plaintext, ciphertext, sizeof plaintext, &key, iv,
432 AES_ENCRYPT);
433
434 /* corrupt halfway through */
435 ++ciphertext[sizeof ciphertext/2];
436 AES_set_decrypt_key(rkey, 8*sizeof rkey, &key);
437 AES_set_decrypt_key(rkey2, 8*sizeof rkey2, &key2);
438 AES_ige_encrypt(ciphertext, checktext, sizeof checktext, &key, iv,
439 AES_DECRYPT);
440
441 matches=0;
442 for(n=0 ; n < sizeof checktext ; ++n)
443 if(checktext[n] == plaintext[n])
444 ++matches;
445
446 if(matches > sizeof checktext/100)
447 {
448 printf("More than 1%% matches after bidirectional garbling\n");
449 ++err;
450 }
451
452 /* make sure garble extends both ways (2) */
453 AES_set_encrypt_key(rkey, 8*sizeof rkey, &key);
454 AES_set_encrypt_key(rkey2, 8*sizeof rkey2, &key2);
455 AES_ige_encrypt(plaintext, ciphertext, sizeof plaintext, &key, iv,
456 AES_ENCRYPT);
457
458 /* corrupt right at the end */
459 ++ciphertext[sizeof ciphertext-1];
460 AES_set_decrypt_key(rkey, 8*sizeof rkey, &key);
461 AES_set_decrypt_key(rkey2, 8*sizeof rkey2, &key2);
462 AES_ige_encrypt(ciphertext, checktext, sizeof checktext, &key, iv,
463 AES_DECRYPT);
464
465 matches=0;
466 for(n=0 ; n < sizeof checktext ; ++n)
467 if(checktext[n] == plaintext[n])
468 ++matches;
469
470 if(matches > sizeof checktext/100)
471 {
472 printf("More than 1%% matches after bidirectional garbling (2)\n");
473 ++err;
474 }
475
476 /* make sure garble extends both ways (3) */
477 AES_set_encrypt_key(rkey, 8*sizeof rkey, &key);
478 AES_set_encrypt_key(rkey2, 8*sizeof rkey2, &key2);
479 AES_ige_encrypt(plaintext, ciphertext, sizeof plaintext, &key, iv,
480 AES_ENCRYPT);
481
482 /* corrupt right at the start */
483 ++ciphertext[0];
484 AES_set_decrypt_key(rkey, 8*sizeof rkey, &key);
485 AES_set_decrypt_key(rkey2, 8*sizeof rkey2, &key2);
486 AES_ige_encrypt(ciphertext, checktext, sizeof checktext, &key, iv,
487 AES_DECRYPT);
488
489 matches=0;
490 for(n=0 ; n < sizeof checktext ; ++n)
491 if(checktext[n] == plaintext[n])
492 ++matches;
493
494 if(matches > sizeof checktext/100)
495 {
496 printf("More than 1%% matches after bidirectional garbling (3)\n");
497 ++err;
498 }
499
500 err += run_test_vectors();
501
502 return err;
503 }
diff --git a/src/lib/libssl/test/maketests.com b/src/lib/libssl/test/maketests.com
new file mode 100644
index 0000000000..386e5cf3c1
--- /dev/null
+++ b/src/lib/libssl/test/maketests.com
@@ -0,0 +1,1085 @@
1$!
2$! MAKETESTS.COM
3$! Written By: Robert Byer
4$! Vice-President
5$! A-Com Computing, Inc.
6$! byer@mail.all-net.net
7$!
8$! Changes by Richard Levitte <richard@levitte.org>
9$!
10$! This command files compiles and creates all the various different
11$! "test" programs for the different types of encryption for OpenSSL.
12$! It was written so it would try to determine what "C" compiler to
13$! use or you can specify which "C" compiler to use.
14$!
15$! The test "executables" will be placed in a directory called
16$! [.xxx.EXE.TEST] where "xxx" denotes ALPHA, IA64, or VAX, depending
17$! on your machine architecture.
18$!
19$! Specify DEBUG or NODEBUG P1 to compile with or without debugger
20$! information.
21$!
22$! Specify which compiler at P2 to try to compile under.
23$!
24$! VAXC For VAX C.
25$! DECC For DEC C.
26$! GNUC For GNU C.
27$!
28$! If you don't specify a compiler, it will try to determine which
29$! "C" compiler to use.
30$!
31$! P3, if defined, sets a TCP/IP library to use, through one of the following
32$! keywords:
33$!
34$! UCX for UCX
35$! SOCKETSHR for SOCKETSHR+NETLIB
36$!
37$! P4, if defined, sets a compiler thread NOT needed on OpenVMS 7.1 (and up)
38$!
39$!
40$! P5, if defined, specifies the C pointer size. Ignored on VAX.
41$! ("64=ARGV" gives more efficient code with HP C V7.3 or newer.)
42$! Supported values are:
43$!
44$! "" Compile with default (/NOPOINTER_SIZE)
45$! 32 Compile with /POINTER_SIZE=32 (SHORT)
46$! 64 Compile with /POINTER_SIZE=64[=ARGV] (LONG[=ARGV])
47$! (Automatically select ARGV if compiler supports it.)
48$! 64= Compile with /POINTER_SIZE=64 (LONG).
49$! 64=ARGV Compile with /POINTER_SIZE=64=ARGV (LONG=ARGV).
50$!
51$! P6, if defined, specifies a directory where ZLIB files (zlib.h,
52$! libz.olb) may be found. Optionally, a non-default object library
53$! name may be included ("dev:[dir]libz_64.olb", for example).
54$!
55$!
56$! Announce/identify.
57$!
58$ proc = f$environment( "procedure")
59$ write sys$output "@@@ "+ -
60 f$parse( proc, , , "name")+ f$parse( proc, , , "type")
61$!
62$! Define A TCP/IP Library That We Will Need To Link To.
63$! (That is, If We Need To Link To One.)
64$!
65$ TCPIP_LIB = ""
66$ ZLIB_LIB = ""
67$!
68$! Check Which Architecture We Are Using.
69$!
70$ if (f$getsyi( "cpu") .lt. 128)
71$ then
72$ ARCH = "VAX"
73$ else
74$ ARCH = f$edit( f$getsyi( "ARCH_NAME"), "UPCASE")
75$ if (ARCH .eqs. "") then ARCH = "UNK"
76$ endif
77$!
78$ ARCHD = ARCH
79$ LIB32 = "32"
80$ OPT_FILE = ""
81$ POINTER_SIZE = ""
82$!
83$! Check To Make Sure We Have Valid Command Line Parameters.
84$!
85$ GOSUB CHECK_OPTIONS
86$!
87$! Define The OBJ and EXE Directories.
88$!
89$ OBJ_DIR := SYS$DISK:[-.'ARCHD'.OBJ.TEST]
90$ EXE_DIR := SYS$DISK:[-.'ARCHD'.EXE.TEST]
91$!
92$! Specify the destination directory in any /MAP option.
93$!
94$ if (LINKMAP .eqs. "MAP")
95$ then
96$ LINKMAP = LINKMAP+ "=''EXE_DIR'"
97$ endif
98$!
99$! Add the location prefix to the linker options file name.
100$!
101$ if (OPT_FILE .nes. "")
102$ then
103$ OPT_FILE = EXE_DIR+ OPT_FILE
104$ endif
105$!
106$! Initialise logical names and such
107$!
108$ GOSUB INITIALISE
109$!
110$! Tell The User What Kind of Machine We Run On.
111$!
112$ WRITE SYS$OUTPUT "Host system architecture: ''ARCHD'"
113$!
114$! Define The CRYPTO-LIB We Are To Use.
115$!
116$ CRYPTO_LIB := SYS$DISK:[-.'ARCHD'.EXE.CRYPTO]SSL_LIBCRYPTO'LIB32'.OLB
117$!
118$! Define The SSL We Are To Use.
119$!
120$ SSL_LIB := SYS$DISK:[-.'ARCHD'.EXE.SSL]SSL_LIBSSL'LIB32'.OLB
121$!
122$! Create the OBJ and EXE Directories, if needed.
123$!
124$ IF (F$PARSE(OBJ_DIR).EQS."") THEN -
125 CREATE /DIRECTORY 'OBJ_DIR'
126$ IF (F$PARSE(EXE_DIR).EQS."") THEN -
127 CREATE /DIRECTORY 'EXE_DIR'
128$!
129$! Check To See If We Have The Proper Libraries.
130$!
131$ GOSUB LIB_CHECK
132$!
133$! Check To See If We Have A Linker Option File.
134$!
135$ GOSUB CHECK_OPT_FILE
136$!
137$! Define The TEST Files.
138$! NOTE: Some might think this list ugly. However, it's made this way to
139$! reflect the EXE variable in Makefile as closely as possible,
140$! thereby making it fairly easy to verify that the lists are the same.
141$!
142$ TEST_FILES = "BNTEST,ECTEST,ECDSATEST,ECDHTEST,IDEATEST,"+ -
143 "MD2TEST,MD4TEST,MD5TEST,HMACTEST,WP_TEST,"+ -
144 "RC2TEST,RC4TEST,RC5TEST,"+ -
145 "DESTEST,SHATEST,SHA1TEST,SHA256T,SHA512T,"+ -
146 "MDC2TEST,RMDTEST,"+ -
147 "RANDTEST,DHTEST,ENGINETEST,"+ -
148 "BFTEST,CASTTEST,SSLTEST,EXPTEST,DSATEST,RSA_TEST,"+ -
149 "EVP_TEST,IGETEST,JPAKETEST,ASN1TEST"
150$! Should we add MTTEST,PQ_TEST,LH_TEST,DIVTEST,TABTEST as well?
151$!
152$! Additional directory information.
153$ T_D_BNTEST := [-.crypto.bn]
154$ T_D_ECTEST := [-.crypto.ec]
155$ T_D_ECDSATEST := [-.crypto.ecdsa]
156$ T_D_ECDHTEST := [-.crypto.ecdh]
157$ T_D_IDEATEST := [-.crypto.idea]
158$ T_D_MD2TEST := [-.crypto.md2]
159$ T_D_MD4TEST := [-.crypto.md4]
160$ T_D_MD5TEST := [-.crypto.md5]
161$ T_D_HMACTEST := [-.crypto.hmac]
162$ T_D_WP_TEST := [-.crypto.whrlpool]
163$ T_D_RC2TEST := [-.crypto.rc2]
164$ T_D_RC4TEST := [-.crypto.rc4]
165$ T_D_RC5TEST := [-.crypto.rc5]
166$ T_D_DESTEST := [-.crypto.des]
167$ T_D_SHATEST := [-.crypto.sha]
168$ T_D_SHA1TEST := [-.crypto.sha]
169$ T_D_SHA256T := [-.crypto.sha]
170$ T_D_SHA512T := [-.crypto.sha]
171$ T_D_MDC2TEST := [-.crypto.mdc2]
172$ T_D_RMDTEST := [-.crypto.ripemd]
173$ T_D_RANDTEST := [-.crypto.rand]
174$ T_D_DHTEST := [-.crypto.dh]
175$ T_D_ENGINETEST := [-.crypto.engine]
176$ T_D_BFTEST := [-.crypto.bf]
177$ T_D_CASTTEST := [-.crypto.cast]
178$ T_D_SSLTEST := [-.ssl]
179$ T_D_EXPTEST := [-.crypto.bn]
180$ T_D_DSATEST := [-.crypto.dsa]
181$ T_D_RSA_TEST := [-.crypto.rsa]
182$ T_D_EVP_TEST := [-.crypto.evp]
183$ T_D_IGETEST := [-.test]
184$ T_D_JPAKETEST := [-.crypto.jpake]
185$ T_D_ASN1TEST := [-.test]
186$!
187$ TCPIP_PROGRAMS = ",,"
188$ IF COMPILER .EQS. "VAXC" THEN -
189 TCPIP_PROGRAMS = ",SSLTEST,"
190$!
191$! Define A File Counter And Set It To "0".
192$!
193$ FILE_COUNTER = 0
194$!
195$! Top Of The File Loop.
196$!
197$ NEXT_FILE:
198$!
199$! O.K, Extract The File Name From The File List.
200$!
201$ FILE_NAME = F$ELEMENT(FILE_COUNTER,",",TEST_FILES)
202$!
203$! Check To See If We Are At The End Of The File List.
204$!
205$ IF (FILE_NAME.EQS.",") THEN GOTO FILE_DONE
206$!
207$! Increment The Counter.
208$!
209$ FILE_COUNTER = FILE_COUNTER + 1
210$!
211$! Create The Source File Name.
212$!
213$ SOURCE_FILE = "SYS$DISK:" + T_D_'FILE_NAME' + FILE_NAME + ".C"
214$!
215$! Create The Object File Name.
216$!
217$ OBJECT_FILE = OBJ_DIR + FILE_NAME + ".OBJ"
218$!
219$! Create The Executable File Name.
220$!
221$ EXE_FILE = EXE_DIR + FILE_NAME + ".EXE"
222$ ON WARNING THEN GOTO NEXT_FILE
223$!
224$! Check To See If The File We Want To Compile Actually Exists.
225$!
226$ IF (F$SEARCH(SOURCE_FILE).EQS."")
227$ THEN
228$!
229$! Tell The User That The File Dosen't Exist.
230$!
231$ WRITE SYS$OUTPUT ""
232$ WRITE SYS$OUTPUT "The File ",SOURCE_FILE," Dosen't Exist."
233$ WRITE SYS$OUTPUT ""
234$!
235$! Exit The Build.
236$!
237$ GOTO EXIT
238$ ENDIF
239$!
240$! Tell The User What We Are Building.
241$!
242$ WRITE SYS$OUTPUT "Building The ",FILE_NAME," Test Program."
243$!
244$! Compile The File.
245$!
246$ ON ERROR THEN GOTO NEXT_FILE
247$ CC /OBJECT='OBJECT_FILE' 'SOURCE_FILE'
248$ ON WARNING THEN GOTO NEXT_FILE
249$!
250$! Check If What We Are About To Compile Works Without A TCP/IP Library.
251$!
252$ IF ((TCPIP_LIB.EQS."").AND.((TCPIP_PROGRAMS-FILE_NAME).NES.TCPIP_PROGRAMS))
253$ THEN
254$!
255$! Inform The User That A TCP/IP Library Is Needed To Compile This Program.
256$!
257$ WRITE SYS$OUTPUT -
258 FILE_NAME," Needs A TCP/IP Library. Can't Link. Skipping..."
259$ GOTO NEXT_FILE
260$!
261$! End The TCP/IP Library Check.
262$!
263$ ENDIF
264$!
265$! Link The Program, Check To See If We Need To Link With RSAREF Or Not.
266$! Check To See If We Are To Link With A Specific TCP/IP Library.
267$!
268$! Don't Link With The RSAREF Routines And TCP/IP Library.
269$!
270$ LINK /'DEBUGGER' /'LINKMAP' /'TRACEBACK' /EXECTABLE = 'EXE_FILE' -
271 'OBJECT_FILE', -
272 'SSL_LIB' /LIBRARY, -
273 'CRYPTO_LIB' /LIBRARY -
274 'TCPIP_LIB' -
275 'ZLIB_LIB' -
276 ,'OPT_FILE' /OPTIONS
277$!
278$! Go Back And Do It Again.
279$!
280$ GOTO NEXT_FILE
281$!
282$! All Done With This Library Part.
283$!
284$ FILE_DONE:
285$!
286$! All Done, Time To Exit.
287$!
288$ EXIT:
289$ GOSUB CLEANUP
290$ EXIT
291$!
292$! Check For The Link Option FIle.
293$!
294$ CHECK_OPT_FILE:
295$!
296$! Check To See If We Need To Make A VAX C Option File.
297$!
298$ IF (COMPILER.EQS."VAXC")
299$ THEN
300$!
301$! Check To See If We Already Have A VAX C Linker Option File.
302$!
303$ IF (F$SEARCH(OPT_FILE).EQS."")
304$ THEN
305$!
306$! We Need A VAX C Linker Option File.
307$!
308$ CREATE 'OPT_FILE'
309$DECK
310!
311! Default System Options File To Link Against
312! The Sharable VAX C Runtime Library.
313!
314SYS$SHARE:VAXCRTL.EXE /SHAREABLE
315$EOD
316$!
317$! End The Option File Check.
318$!
319$ ENDIF
320$!
321$! End The VAXC Check.
322$!
323$ ENDIF
324$!
325$! Check To See If We Need A GNU C Option File.
326$!
327$ IF (COMPILER.EQS."GNUC")
328$ THEN
329$!
330$! Check To See If We Already Have A GNU C Linker Option File.
331$!
332$ IF (F$SEARCH(OPT_FILE).EQS."")
333$ THEN
334$!
335$! We Need A GNU C Linker Option File.
336$!
337$ CREATE 'OPT_FILE'
338$DECK
339!
340! Default System Options File To Link Against
341! The Sharable C Runtime Library.
342!
343GNU_CC:[000000]GCCLIB.OLB /LIBRARY
344SYS$SHARE:VAXCRTL.EXE /SHAREABLE
345$EOD
346$!
347$! End The Option File Check.
348$!
349$ ENDIF
350$!
351$! End The GNU C Check.
352$!
353$ ENDIF
354$!
355$! Check To See If We Need A DEC C Option File.
356$!
357$ IF (COMPILER.EQS."DECC")
358$ THEN
359$!
360$! Check To See If We Already Have A DEC C Linker Option File.
361$!
362$ IF (F$SEARCH(OPT_FILE).EQS."")
363$ THEN
364$!
365$! Figure Out If We Need A non-VAX Or A VAX Linker Option File.
366$!
367$ IF (ARCH.EQS."VAX")
368$ THEN
369$!
370$! We Need A DEC C Linker Option File For VAX.
371$!
372$ CREATE 'OPT_FILE'
373$DECK
374!
375! Default System Options File To Link Against
376! The Sharable DEC C Runtime Library.
377!
378SYS$SHARE:DECC$SHR.EXE /SHAREABLE
379$EOD
380$!
381$! Else...
382$!
383$ ELSE
384$!
385$! Create The non-VAX Linker Option File.
386$!
387$ CREATE 'OPT_FILE'
388$DECK
389!
390! Default System Options File For non-VAX To Link Against
391! The Sharable C Runtime Library.
392!
393SYS$SHARE:CMA$OPEN_LIB_SHR.EXE /SHAREABLE
394SYS$SHARE:CMA$OPEN_RTL.EXE /SHAREABLE
395$EOD
396$!
397$! End The DEC C Option File Check.
398$!
399$ ENDIF
400$!
401$! End The Option File Search.
402$!
403$ ENDIF
404$!
405$! End The DEC C Check.
406$!
407$ ENDIF
408$!
409$! Tell The User What Linker Option File We Are Using.
410$!
411$ WRITE SYS$OUTPUT "Using Linker Option File ",OPT_FILE,"."
412$!
413$! Time To RETURN.
414$!
415$ RETURN
416$!
417$! Check To See If We Have The Appropiate Libraries.
418$!
419$ LIB_CHECK:
420$!
421$! Look For The Library LIBCRYPTO.OLB.
422$!
423$ IF (F$SEARCH(CRYPTO_LIB).EQS."")
424$ THEN
425$!
426$! Tell The User We Can't Find The LIBCRYPTO.OLB Library.
427$!
428$ WRITE SYS$OUTPUT ""
429$ WRITE SYS$OUTPUT "Can't Find The Library ",CRYPTO_LIB,"."
430$ WRITE SYS$OUTPUT "We Can't Link Without It."
431$ WRITE SYS$OUTPUT ""
432$!
433$! Since We Can't Link Without It, Exit.
434$!
435$ EXIT
436$!
437$! End The Crypto Library Check.
438$!
439$ ENDIF
440$!
441$! Look For The Library LIBSSL.OLB.
442$!
443$ IF (F$SEARCH(SSL_LIB).EQS."")
444$ THEN
445$!
446$! Tell The User We Can't Find The LIBSSL.OLB Library.
447$!
448$ WRITE SYS$OUTPUT ""
449$ WRITE SYS$OUTPUT "Can't Find The Library ",SSL_LIB,"."
450$ WRITE SYS$OUTPUT "Some Of The Test Programs Need To Link To It."
451$ WRITE SYS$OUTPUT ""
452$!
453$! Since We Can't Link Without It, Exit.
454$!
455$ EXIT
456$!
457$! End The SSL Library Check.
458$!
459$ ENDIF
460$!
461$! Time To Return.
462$!
463$ RETURN
464$!
465$! Check The User's Options.
466$!
467$ CHECK_OPTIONS:
468$!
469$! Set basic C compiler /INCLUDE directories.
470$!
471$ CC_INCLUDES = "SYS$DISK:[-],SYS$DISK:[-.CRYPTO]"
472$!
473$! Check To See If P1 Is Blank.
474$!
475$ IF (P1.EQS."NODEBUG")
476$ THEN
477$!
478$! P1 Is NODEBUG, So Compile Without Debugger Information.
479$!
480$ DEBUGGER = "NODEBUG"
481$ LINKMAP = "NOMAP"
482$ TRACEBACK = "NOTRACEBACK"
483$ GCC_OPTIMIZE = "OPTIMIZE"
484$ CC_OPTIMIZE = "OPTIMIZE"
485$ WRITE SYS$OUTPUT "No Debugger Information Will Be Produced During Compile."
486$ WRITE SYS$OUTPUT "Compiling With Compiler Optimization."
487$!
488$! Else...
489$!
490$ ELSE
491$!
492$! Check To See If We Are To Compile With Debugger Information.
493$!
494$ IF (P1.EQS."DEBUG")
495$ THEN
496$!
497$! Compile With Debugger Information.
498$!
499$ DEBUGGER = "DEBUG"
500$ LINKMAP = "MAP"
501$ TRACEBACK = "TRACEBACK"
502$ GCC_OPTIMIZE = "NOOPTIMIZE"
503$ CC_OPTIMIZE = "NOOPTIMIZE"
504$ WRITE SYS$OUTPUT "Debugger Information Will Be Produced During Compile."
505$ WRITE SYS$OUTPUT "Compiling Without Compiler Optimization."
506$!
507$! Else...
508$!
509$ ELSE
510$!
511$! Tell The User Entered An Invalid Option.
512$!
513$ WRITE SYS$OUTPUT ""
514$ WRITE SYS$OUTPUT "The Option ",P1," Is Invalid. The Valid Options Are:"
515$ WRITE SYS$OUTPUT ""
516$ WRITE SYS$OUTPUT " DEBUG : Compile With The Debugger Information."
517$ WRITE SYS$OUTPUT " NODEBUG : Compile Without The Debugger Information."
518$ WRITE SYS$OUTPUT ""
519$!
520$! Time To EXIT.
521$!
522$ EXIT
523$!
524$! End The Valid Argument Check.
525$!
526$ ENDIF
527$!
528$! End The P1 Check.
529$!
530$ ENDIF
531$!
532$! Check P5 (POINTER_SIZE).
533$!
534$ IF (P5 .NES. "") .AND. (ARCH .NES. "VAX")
535$ THEN
536$!
537$ IF (P5 .EQS. "32")
538$ THEN
539$ POINTER_SIZE = " /POINTER_SIZE=32"
540$ ELSE
541$ POINTER_SIZE = F$EDIT( P5, "COLLAPSE, UPCASE")
542$ IF ((POINTER_SIZE .EQS. "64") .OR. -
543 (POINTER_SIZE .EQS. "64=") .OR. -
544 (POINTER_SIZE .EQS. "64=ARGV"))
545$ THEN
546$ ARCHD = ARCH+ "_64"
547$ LIB32 = ""
548$ IF (F$EXTRACT( 2, 1, POINTER_SIZE) .EQS. "=")
549$ THEN
550$! Explicit user choice: "64" or "64=ARGV".
551$ IF (POINTER_SIZE .EQS. "64=") THEN POINTER_SIZE = "64"
552$ ELSE
553$ SET NOON
554$ DEFINE /USER_MODE SYS$OUTPUT NL:
555$ DEFINE /USER_MODE SYS$ERROR NL:
556$ CC /NOLIST /NOOBJECT /POINTER_SIZE=64=ARGV NL:
557$ IF ($STATUS .AND. %X0FFF0000) .EQ. %X00030000
558$ THEN
559$ ! If we got here, it means DCL complained like this:
560$ ! %DCL-W-NOVALU, value not allowed - remove value specification
561$ ! \64=\
562$ !
563$ ! If the compiler was run, logicals defined in /USER would
564$ ! have been deassigned automatically. However, when DCL
565$ ! complains, they aren't, so we do it here (it might be
566$ ! unnecessary, but just in case there will be another error
567$ ! message further on that we don't want to miss)
568$ DEASSIGN /USER_MODE SYS$ERROR
569$ DEASSIGN /USER_MODE SYS$OUTPUT
570$ ELSE
571$ POINTER_SIZE = POINTER_SIZE + "=ARGV"
572$ ENDIF
573$ SET ON
574$ ENDIF
575$ POINTER_SIZE = " /POINTER_SIZE=''POINTER_SIZE'"
576$ ELSE
577$!
578$! Tell The User Entered An Invalid Option.
579$!
580$ WRITE SYS$OUTPUT ""
581$ WRITE SYS$OUTPUT "The Option ", P5, -
582 " Is Invalid. The Valid Options Are:"
583$ WRITE SYS$OUTPUT ""
584$ WRITE SYS$OUTPUT -
585 " """" : Compile with default (short) pointers."
586$ WRITE SYS$OUTPUT -
587 " 32 : Compile with 32-bit (short) pointers."
588$ WRITE SYS$OUTPUT -
589 " 64 : Compile with 64-bit (long) pointers (auto ARGV)."
590$ WRITE SYS$OUTPUT -
591 " 64= : Compile with 64-bit (long) pointers (no ARGV)."
592$ WRITE SYS$OUTPUT -
593 " 64=ARGV : Compile with 64-bit (long) pointers (ARGV)."
594$ WRITE SYS$OUTPUT ""
595$!
596$! Time To EXIT.
597$!
598$ EXIT
599$!
600$ ENDIF
601$!
602$ ENDIF
603$!
604$! End The P5 (POINTER_SIZE) Check.
605$!
606$ ENDIF
607$!
608$! Check To See If P2 Is Blank.
609$!
610$ IF (P2.EQS."")
611$ THEN
612$!
613$! O.K., The User Didn't Specify A Compiler, Let's Try To
614$! Find Out Which One To Use.
615$!
616$! Check To See If We Have GNU C.
617$!
618$ IF (F$TRNLNM("GNU_CC").NES."")
619$ THEN
620$!
621$! Looks Like GNUC, Set To Use GNUC.
622$!
623$ P2 = "GNUC"
624$!
625$! End The GNU C Compiler Check.
626$!
627$ ELSE
628$!
629$! Check To See If We Have VAXC Or DECC.
630$!
631$ IF (ARCH.NES."VAX").OR.(F$TRNLNM("DECC$CC_DEFAULT").NES."")
632$ THEN
633$!
634$! Looks Like DECC, Set To Use DECC.
635$!
636$ P2 = "DECC"
637$!
638$! Else...
639$!
640$ ELSE
641$!
642$! Looks Like VAXC, Set To Use VAXC.
643$!
644$ P2 = "VAXC"
645$!
646$! End The VAXC Compiler Check.
647$!
648$ ENDIF
649$!
650$! End The DECC & VAXC Compiler Check.
651$!
652$ ENDIF
653$!
654$! End The Compiler Check.
655$!
656$ ENDIF
657$!
658$! Check To See If We Have A Option For P3.
659$!
660$ IF (P3.EQS."")
661$ THEN
662$!
663$! Find out what socket library we have available
664$!
665$ IF F$PARSE("SOCKETSHR:") .NES. ""
666$ THEN
667$!
668$! We have SOCKETSHR, and it is my opinion that it's the best to use.
669$!
670$ P3 = "SOCKETSHR"
671$!
672$! Tell the user
673$!
674$ WRITE SYS$OUTPUT "Using SOCKETSHR for TCP/IP"
675$!
676$! Else, let's look for something else
677$!
678$ ELSE
679$!
680$! Like UCX (the reason to do this before Multinet is that the UCX
681$! emulation is easier to use...)
682$!
683$ IF F$TRNLNM("UCX$IPC_SHR") .NES. "" -
684 .OR. F$PARSE("SYS$SHARE:UCX$IPC_SHR.EXE") .NES. "" -
685 .OR. F$PARSE("SYS$LIBRARY:UCX$IPC.OLB") .NES. ""
686$ THEN
687$!
688$! Last resort: a UCX or UCX-compatible library
689$!
690$ P3 = "UCX"
691$!
692$! Tell the user
693$!
694$ WRITE SYS$OUTPUT "Using UCX or an emulation thereof for TCP/IP"
695$!
696$! That was all...
697$!
698$ ENDIF
699$ ENDIF
700$ ENDIF
701$!
702$! Set Up Initial CC Definitions, Possibly With User Ones
703$!
704$ CCDEFS = "TCPIP_TYPE_''P3'"
705$ IF F$TYPE(USER_CCDEFS) .NES. "" THEN CCDEFS = CCDEFS + "," + USER_CCDEFS
706$ CCEXTRAFLAGS = ""
707$ IF F$TYPE(USER_CCFLAGS) .NES. "" THEN CCEXTRAFLAGS = USER_CCFLAGS
708$ CCDISABLEWARNINGS = "" !!! "LONGLONGTYPE,LONGLONGSUFX,FOUNDCR"
709$ IF F$TYPE(USER_CCDISABLEWARNINGS) .NES. "" THEN -
710 CCDISABLEWARNINGS = CCDISABLEWARNINGS + "," + USER_CCDISABLEWARNINGS
711$!
712$! Check To See If We Have A ZLIB Option.
713$!
714$ ZLIB = P6
715$ IF (ZLIB .NES. "")
716$ THEN
717$!
718$! Check for expected ZLIB files.
719$!
720$ err = 0
721$ file1 = f$parse( "zlib.h", ZLIB, , , "SYNTAX_ONLY")
722$ if (f$search( file1) .eqs. "")
723$ then
724$ WRITE SYS$OUTPUT ""
725$ WRITE SYS$OUTPUT "The Option ", ZLIB, " Is Invalid."
726$ WRITE SYS$OUTPUT " Can't find header: ''file1'"
727$ err = 1
728$ endif
729$ file1 = f$parse( "A.;", ZLIB)- "A.;"
730$!
731$ file2 = f$parse( ZLIB, "libz.olb", , , "SYNTAX_ONLY")
732$ if (f$search( file2) .eqs. "")
733$ then
734$ if (err .eq. 0)
735$ then
736$ WRITE SYS$OUTPUT ""
737$ WRITE SYS$OUTPUT "The Option ", ZLIB, " Is Invalid."
738$ endif
739$ WRITE SYS$OUTPUT " Can't find library: ''file2'"
740$ WRITE SYS$OUTPUT ""
741$ err = err+ 2
742$ endif
743$ if (err .eq. 1)
744$ then
745$ WRITE SYS$OUTPUT ""
746$ endif
747$!
748$ if (err .ne. 0)
749$ then
750$ GOTO EXIT
751$ endif
752$!
753$ CCDEFS = """ZLIB=1"", "+ CCDEFS
754$ CC_INCLUDES = CC_INCLUDES+ ", "+ file1
755$ ZLIB_LIB = ", ''file2' /library"
756$!
757$! Print info
758$!
759$ WRITE SYS$OUTPUT "ZLIB library spec: ", file2
760$!
761$! End The P8 Check.
762$!
763$ ENDIF
764$!
765$! Check To See If The User Entered A Valid Parameter.
766$!
767$ IF (P2.EQS."VAXC").OR.(P2.EQS."DECC").OR.(P2.EQS."GNUC")
768$ THEN
769$!
770$! Check To See If The User Wanted DECC.
771$!
772$ IF (P2.EQS."DECC")
773$ THEN
774$!
775$! Looks Like DECC, Set To Use DECC.
776$!
777$ COMPILER = "DECC"
778$!
779$! Tell The User We Are Using DECC.
780$!
781$ WRITE SYS$OUTPUT "Using DECC 'C' Compiler."
782$!
783$! Use DECC...
784$!
785$ CC = "CC"
786$ IF ARCH.EQS."VAX" .AND. F$TRNLNM("DECC$CC_DEFAULT").NES."/DECC" -
787 THEN CC = "CC /DECC"
788$ CC = CC + " /''CC_OPTIMIZE' /''DEBUGGER' /STANDARD=RELAXED"+ -
789 "''POINTER_SIZE' /NOLIST /PREFIX=ALL" + -
790 " /INCLUDE=(''CC_INCLUDES') " + CCEXTRAFLAGS
791$!
792$! Define The Linker Options File Name.
793$!
794$ OPT_FILE = "VAX_DECC_OPTIONS.OPT"
795$!
796$! End DECC Check.
797$!
798$ ENDIF
799$!
800$! Check To See If We Are To Use VAXC.
801$!
802$ IF (P2.EQS."VAXC")
803$ THEN
804$!
805$! Looks Like VAXC, Set To Use VAXC.
806$!
807$ COMPILER = "VAXC"
808$!
809$! Tell The User We Are Using VAX C.
810$!
811$ WRITE SYS$OUTPUT "Using VAXC 'C' Compiler."
812$!
813$! Compile Using VAXC.
814$!
815$ CC = "CC"
816$ IF ARCH.NES."VAX"
817$ THEN
818$ WRITE SYS$OUTPUT "There is no VAX C on ''ARCH'!"
819$ EXIT
820$ ENDIF
821$ IF F$TRNLNM("DECC$CC_DEFAULT").EQS."/DECC" THEN CC = "CC /VAXC"
822$ CC = CC + "/''CC_OPTIMIZE' /''DEBUGGER' /NOLIST" + -
823 "/INCLUDE=(''CC_INCLUDES')" + CCEXTRAFLAGS
824$ CCDEFS = CCDEFS + ",""VAXC"""
825$!
826$! Define <sys> As SYS$COMMON:[SYSLIB]
827$!
828$ DEFINE /NOLOG SYS SYS$COMMON:[SYSLIB]
829$!
830$! Define The Linker Options File Name.
831$!
832$ OPT_FILE = "VAX_VAXC_OPTIONS.OPT"
833$!
834$! End VAXC Check
835$!
836$ ENDIF
837$!
838$! Check To See If We Are To Use GNU C.
839$!
840$ IF (P2.EQS."GNUC")
841$ THEN
842$!
843$! Looks Like GNUC, Set To Use GNUC.
844$!
845$ COMPILER = "GNUC"
846$!
847$! Tell The User We Are Using GNUC.
848$!
849$ WRITE SYS$OUTPUT "Using GNU 'C' Compiler."
850$!
851$! Use GNU C...
852$!
853$ CC = "GCC /NOCASE_HACK /''GCC_OPTIMIZE' /''DEBUGGER' /NOLIST" + -
854 "/INCLUDE=(''CC_INCLUDES')" + CCEXTRAFLAGS
855$!
856$! Define The Linker Options File Name.
857$!
858$ OPT_FILE = "VAX_GNUC_OPTIONS.OPT"
859$!
860$! End The GNU C Check.
861$!
862$ ENDIF
863$!
864$! Set up default defines
865$!
866$ CCDEFS = """FLAT_INC=1""," + CCDEFS
867$!
868$! Finish up the definition of CC.
869$!
870$ IF COMPILER .EQS. "DECC"
871$ THEN
872$ IF CCDISABLEWARNINGS .EQS. ""
873$ THEN
874$ CC4DISABLEWARNINGS = "DOLLARID"
875$ ELSE
876$ CC4DISABLEWARNINGS = CCDISABLEWARNINGS + ",DOLLARID"
877$ CCDISABLEWARNINGS = " /WARNING=(DISABLE=(" + CCDISABLEWARNINGS + "))"
878$ ENDIF
879$ CC4DISABLEWARNINGS = " /WARNING=(DISABLE=(" + CC4DISABLEWARNINGS + "))"
880$ ELSE
881$ CCDISABLEWARNINGS = ""
882$ CC4DISABLEWARNINGS = ""
883$ ENDIF
884$ CC = CC + " /DEFINE=(" + CCDEFS + ")" + CCDISABLEWARNINGS
885$!
886$! Show user the result
887$!
888$ WRITE /SYMBOL SYS$OUTPUT "Main Compiling Command: ", CC
889$!
890$! Else The User Entered An Invalid Argument.
891$!
892$ ELSE
893$!
894$! Tell The User We Don't Know What They Want.
895$!
896$ WRITE SYS$OUTPUT ""
897$ WRITE SYS$OUTPUT "The Option ",P2," Is Invalid. The Valid Options Are:"
898$ WRITE SYS$OUTPUT ""
899$ WRITE SYS$OUTPUT " VAXC : To Compile With VAX C."
900$ WRITE SYS$OUTPUT " DECC : To Compile With DEC C."
901$ WRITE SYS$OUTPUT " GNUC : To Compile With GNU C."
902$ WRITE SYS$OUTPUT ""
903$!
904$! Time To EXIT.
905$!
906$ EXIT
907$ ENDIF
908$!
909$! Time to check the contents, and to make sure we get the correct library.
910$!
911$ IF P3.EQS."SOCKETSHR" .OR. P3.EQS."MULTINET" .OR. P3.EQS."UCX" -
912 .OR. P3.EQS."TCPIP" .OR. P3.EQS."NONE"
913$ THEN
914$!
915$! Check to see if SOCKETSHR was chosen
916$!
917$ IF P3.EQS."SOCKETSHR"
918$ THEN
919$!
920$! Set the library to use SOCKETSHR
921$!
922$ TCPIP_LIB = ",SYS$DISK:[-.VMS]SOCKETSHR_SHR.OPT /OPTIONS"
923$!
924$! Done with SOCKETSHR
925$!
926$ ENDIF
927$!
928$! Check to see if MULTINET was chosen
929$!
930$ IF P3.EQS."MULTINET"
931$ THEN
932$!
933$! Set the library to use UCX emulation.
934$!
935$ P3 = "UCX"
936$!
937$! Done with MULTINET
938$!
939$ ENDIF
940$!
941$! Check to see if UCX was chosen
942$!
943$ IF P3.EQS."UCX"
944$ THEN
945$!
946$! Set the library to use UCX.
947$!
948$ TCPIP_LIB = ",SYS$DISK:[-.VMS]UCX_SHR_DECC.OPT /OPTIONS"
949$ IF F$TRNLNM("UCX$IPC_SHR") .NES. ""
950$ THEN
951$ TCPIP_LIB = ",SYS$DISK:[-.VMS]UCX_SHR_DECC_LOG.OPT /OPTIONS"
952$ ELSE
953$ IF COMPILER .NES. "DECC" .AND. ARCH .EQS. "VAX" THEN -
954 TCPIP_LIB = ",SYS$DISK:[-.VMS]UCX_SHR_VAXC.OPT /OPTIONS"
955$ ENDIF
956$!
957$! Done with UCX
958$!
959$ ENDIF
960$!
961$! Check to see if TCPIP was chosen
962$!
963$ IF P3.EQS."TCPIP"
964$ THEN
965$!
966$! Set the library to use TCPIP (post UCX).
967$!
968$ TCPIP_LIB = ",SYS$DISK:[-.VMS]TCPIP_SHR_DECC.OPT /OPTIONS"
969$!
970$! Done with TCPIP
971$!
972$ ENDIF
973$!
974$! Check to see if NONE was chosen
975$!
976$ IF P3.EQS."NONE"
977$ THEN
978$!
979$! Do not use a TCPIP library.
980$!
981$ TCPIP_LIB = ""
982$!
983$! Done with NONE
984$!
985$ ENDIF
986$!
987$! Print info
988$!
989$ WRITE SYS$OUTPUT "TCP/IP library spec: ", TCPIP_LIB- ","
990$!
991$! Else The User Entered An Invalid Argument.
992$!
993$ ELSE
994$!
995$! Tell The User We Don't Know What They Want.
996$!
997$ WRITE SYS$OUTPUT ""
998$ WRITE SYS$OUTPUT "The Option ",P3," Is Invalid. The Valid Options Are:"
999$ WRITE SYS$OUTPUT ""
1000$ WRITE SYS$OUTPUT " SOCKETSHR : To link with SOCKETSHR TCP/IP library."
1001$ WRITE SYS$OUTPUT " UCX : To link with UCX TCP/IP library."
1002$ WRITE SYS$OUTPUT " TCPIP : To link with TCPIP (post UCX) TCP/IP library."
1003$ WRITE SYS$OUTPUT ""
1004$!
1005$! Time To EXIT.
1006$!
1007$ EXIT
1008$!
1009$! Done with TCP/IP libraries
1010$!
1011$ ENDIF
1012$!
1013$! Special Threads For OpenVMS v7.1 Or Later
1014$!
1015$! Written By: Richard Levitte
1016$! richard@levitte.org
1017$!
1018$!
1019$! Check To See If We Have A Option For P4.
1020$!
1021$ IF (P4.EQS."")
1022$ THEN
1023$!
1024$! Get The Version Of VMS We Are Using.
1025$!
1026$ ISSEVEN :=
1027$ TMP = F$ELEMENT(0,"-",F$EXTRACT(1,4,F$GETSYI("VERSION")))
1028$ TMP = F$INTEGER(F$ELEMENT(0,".",TMP)+F$ELEMENT(1,".",TMP))
1029$!
1030$! Check To See If The VMS Version Is v7.1 Or Later.
1031$!
1032$ IF (TMP.GE.71)
1033$ THEN
1034$!
1035$! We Have OpenVMS v7.1 Or Later, So Use The Special Threads.
1036$!
1037$ ISSEVEN := ,PTHREAD_USE_D4
1038$!
1039$! End The VMS Version Check.
1040$!
1041$ ENDIF
1042$!
1043$! End The P4 Check.
1044$!
1045$ ENDIF
1046$!
1047$! Time To RETURN...
1048$!
1049$ RETURN
1050$!
1051$ INITIALISE:
1052$!
1053$! Save old value of the logical name OPENSSL
1054$!
1055$ __SAVE_OPENSSL = F$TRNLNM("OPENSSL","LNM$PROCESS_TABLE")
1056$!
1057$! Save directory information
1058$!
1059$ __HERE = F$PARSE(F$PARSE("A.;",F$ENVIRONMENT("PROCEDURE"))-"A.;","[]A.;") - "A.;"
1060$ __HERE = F$EDIT(__HERE,"UPCASE")
1061$ __TOP = __HERE - "TEST]"
1062$ __INCLUDE = __TOP + "INCLUDE.OPENSSL]"
1063$!
1064$! Set up the logical name OPENSSL to point at the include directory
1065$!
1066$ DEFINE OPENSSL /NOLOG '__INCLUDE'
1067$!
1068$! Done
1069$!
1070$ RETURN
1071$!
1072$ CLEANUP:
1073$!
1074$! Restore the logical name OPENSSL if it had a value
1075$!
1076$ IF __SAVE_OPENSSL .EQS. ""
1077$ THEN
1078$ DEASSIGN OPENSSL
1079$ ELSE
1080$ DEFINE /NOLOG OPENSSL '__SAVE_OPENSSL'
1081$ ENDIF
1082$!
1083$! Done
1084$!
1085$ RETURN
diff --git a/src/lib/libssl/test/tcrl.com b/src/lib/libssl/test/tcrl.com
new file mode 100644
index 0000000000..dd96a2b6dd
--- /dev/null
+++ b/src/lib/libssl/test/tcrl.com
@@ -0,0 +1,88 @@
1$! TCRL.COM -- Tests crl keys
2$
3$ __arch = "VAX"
4$ if f$getsyi("cpu") .ge. 128 then -
5 __arch = f$edit( f$getsyi( "ARCH_NAME"), "UPCASE")
6$ if __arch .eqs. "" then __arch = "UNK"
7$!
8$ if (p2 .eqs. "64") then __arch = __arch+ "_64"
9$!
10$ exe_dir = "sys$disk:[-.''__arch'.exe.apps]"
11$
12$ cmd = "mcr ''exe_dir'openssl crl"
13$
14$ t = "testcrl.pem"
15$ if p1 .nes. "" then t = p1
16$
17$ write sys$output "testing CRL conversions"
18$ if f$search("fff.*") .nes "" then delete fff.*;*
19$ if f$search("ff.*") .nes "" then delete ff.*;*
20$ if f$search("f.*") .nes "" then delete f.*;*
21$ convert/fdl=sys$input: 't' fff.p
22RECORD
23 FORMAT STREAM_LF
24$
25$ write sys$output "p -> d"
26$ 'cmd' -in fff.p -inform p -outform d -out f.d
27$ if $severity .ne. 1 then exit 3
28$! write sys$output "p -> t"
29$! 'cmd' -in fff.p -inform p -outform t -out f.t
30$! if $severity .ne. 1 then exit 3
31$ write sys$output "p -> p"
32$ 'cmd' -in fff.p -inform p -outform p -out f.p
33$ if $severity .ne. 1 then exit 3
34$
35$ write sys$output "d -> d"
36$ 'cmd' -in f.d -inform d -outform d -out ff.d1
37$ if $severity .ne. 1 then exit 3
38$! write sys$output "t -> d"
39$! 'cmd' -in f.t -inform t -outform d -out ff.d2
40$! if $severity .ne. 1 then exit 3
41$ write sys$output "p -> d"
42$ 'cmd' -in f.p -inform p -outform d -out ff.d3
43$ if $severity .ne. 1 then exit 3
44$
45$! write sys$output "d -> t"
46$! 'cmd' -in f.d -inform d -outform t -out ff.t1
47$! if $severity .ne. 1 then exit 3
48$! write sys$output "t -> t"
49$! 'cmd' -in f.t -inform t -outform t -out ff.t2
50$! if $severity .ne. 1 then exit 3
51$! write sys$output "p -> t"
52$! 'cmd' -in f.p -inform p -outform t -out ff.t3
53$! if $severity .ne. 1 then exit 3
54$
55$ write sys$output "d -> p"
56$ 'cmd' -in f.d -inform d -outform p -out ff.p1
57$ if $severity .ne. 1 then exit 3
58$! write sys$output "t -> p"
59$! 'cmd' -in f.t -inform t -outform p -out ff.p2
60$! if $severity .ne. 1 then exit 3
61$ write sys$output "p -> p"
62$ 'cmd' -in f.p -inform p -outform p -out ff.p3
63$ if $severity .ne. 1 then exit 3
64$
65$ backup/compare fff.p f.p
66$ if $severity .ne. 1 then exit 3
67$ backup/compare fff.p ff.p1
68$ if $severity .ne. 1 then exit 3
69$! backup/compare fff.p ff.p2
70$! if $severity .ne. 1 then exit 3
71$ backup/compare fff.p ff.p3
72$ if $severity .ne. 1 then exit 3
73$
74$! backup/compare f.t ff.t1
75$! if $severity .ne. 1 then exit 3
76$! backup/compare f.t ff.t2
77$! if $severity .ne. 1 then exit 3
78$! backup/compare f.t ff.t3
79$! if $severity .ne. 1 then exit 3
80$
81$ backup/compare f.p ff.p1
82$ if $severity .ne. 1 then exit 3
83$! backup/compare f.p ff.p2
84$! if $severity .ne. 1 then exit 3
85$ backup/compare f.p ff.p3
86$ if $severity .ne. 1 then exit 3
87$
88$ delete f.*;*,ff.*;*,fff.*;*
diff --git a/src/lib/libssl/test/test_aesni b/src/lib/libssl/test/test_aesni
new file mode 100644
index 0000000000..e8fb63ee2b
--- /dev/null
+++ b/src/lib/libssl/test/test_aesni
@@ -0,0 +1,69 @@
1#!/bin/sh
2
3PROG=$1
4
5if [ -x $PROG ]; then
6 if expr "x`$PROG version`" : "xOpenSSL" > /dev/null; then
7 :
8 else
9 echo "$PROG is not OpenSSL executable"
10 exit 1
11 fi
12else
13 echo "$PROG is not executable"
14 exit 1;
15fi
16
17if $PROG engine aesni | grep -v no-aesni; then
18
19 HASH=`cat $PROG | $PROG dgst -hex`
20
21 AES_ALGS=" aes-128-ecb aes-192-ecb aes-256-ecb \
22 aes-128-cbc aes-192-cbc aes-256-cbc \
23 aes-128-cfb aes-192-cfb aes-256-cfb \
24 aes-128-ofb aes-192-ofb aes-256-ofb"
25 BUFSIZE="16 32 48 64 80 96 128 144 999"
26
27 nerr=0
28
29 for alg in $AES_ALGS; do
30 echo $alg
31 for bufsize in $BUFSIZE; do
32 TEST=`( cat $PROG | \
33 $PROG enc -e -k "$HASH" -$alg -bufsize $bufsize -engine aesni | \
34 $PROG enc -d -k "$HASH" -$alg | \
35 $PROG dgst -hex ) 2>/dev/null`
36 if [ "$TEST" != "$HASH" ]; then
37 echo "-$alg/$bufsize encrypt test failed"
38 nerr=`expr $nerr + 1`
39 fi
40 done
41 for bufsize in $BUFSIZE; do
42 TEST=`( cat $PROG | \
43 $PROG enc -e -k "$HASH" -$alg | \
44 $PROG enc -d -k "$HASH" -$alg -bufsize $bufsize -engine aesni | \
45 $PROG dgst -hex ) 2>/dev/null`
46 if [ "$TEST" != "$HASH" ]; then
47 echo "-$alg/$bufsize decrypt test failed"
48 nerr=`expr $nerr + 1`
49 fi
50 done
51 TEST=`( cat $PROG | \
52 $PROG enc -e -k "$HASH" -$alg -engine aesni | \
53 $PROG enc -d -k "$HASH" -$alg -engine aesni | \
54 $PROG dgst -hex ) 2>/dev/null`
55 if [ "$TEST" != "$HASH" ]; then
56 echo "-$alg en/decrypt test failed"
57 nerr=`expr $nerr + 1`
58 fi
59 done
60
61 if [ $nerr -gt 0 ]; then
62 echo "AESNI engine test failed."
63 exit 1;
64 fi
65else
66 echo "AESNI engine is not available"
67fi
68
69exit 0
diff --git a/src/lib/libssl/test/testca.com b/src/lib/libssl/test/testca.com
new file mode 100644
index 0000000000..78cda9ec5a
--- /dev/null
+++ b/src/lib/libssl/test/testca.com
@@ -0,0 +1,52 @@
1$! TESTCA.COM
2$
3$ __arch = "VAX"
4$ if f$getsyi("cpu") .ge. 128 then -
5 __arch = f$edit( f$getsyi( "ARCH_NAME"), "UPCASE")
6$ if __arch .eqs. "" then __arch = "UNK"
7$!
8$ if (p1 .eqs. "64") then __arch = __arch+ "_64"
9$
10$ openssl = "mcr ''exe_dir'openssl"
11$
12$ SSLEAY_CONFIG="-config ""CAss.cnf"""
13$
14$ set noon
15$ if f$search("demoCA.dir") .nes. ""
16$ then
17$ @[-.util]deltree [.demoCA]*.*
18$ set file/prot=(S:RWED,O:RWED,G:RWED,W:RWED) demoCA.dir;*
19$ delete demoCA.dir;*
20$ endif
21$ set on
22$ open/read sys$ca_input VMSca-response.1
23$ @[-.apps]CA.com -input sys$ca_input -newca
24$ close sys$ca_input
25$ if $severity .ne. 1 then exit 3
26$
27$
28$ SSLEAY_CONFIG="-config ""Uss.cnf"""
29$ @[-.apps]CA.com -newreq
30$ if $severity .ne. 1 then exit 3
31$
32$
33$ SSLEAY_CONFIG="-config [-.apps]openssl-vms.cnf"
34$ open/read sys$ca_input VMSca-response.2
35$ @[-.apps]CA.com -input sys$ca_input -sign
36$ close sys$ca_input
37$ if $severity .ne. 1 then exit 3
38$
39$
40$ @[-.apps]CA.com -verify newcert.pem
41$ if $severity .ne. 1 then exit 3
42$
43$ set noon
44$ @[-.util]deltree [.demoCA]*.*
45$ set file/prot=(S:RWED,O:RWED,G:RWED,W:RWED) demoCA.dir;*
46$ delete demoCA.dir;*
47$ if f$search("newcert.pem") .nes. "" then delete newcert.pem;*
48$ if f$search("newcert.pem") .nes. "" then delete newreq.pem;*
49$ set on
50$! #usage: CA -newcert|-newreq|-newca|-sign|-verify
51$
52$ exit
diff --git a/src/lib/libssl/test/testenc.com b/src/lib/libssl/test/testenc.com
new file mode 100644
index 0000000000..75acd6f07f
--- /dev/null
+++ b/src/lib/libssl/test/testenc.com
@@ -0,0 +1,66 @@
1$! TESTENC.COM -- Test encoding and decoding
2$
3$ __arch = "VAX"
4$ if f$getsyi("cpu") .ge. 128 then -
5 __arch = f$edit( f$getsyi( "ARCH_NAME"), "UPCASE")
6$ if __arch .eqs. "" then __arch = "UNK"
7$!
8$ if (p1 .eqs. 64) then __arch = __arch+ "_64"
9$
10$ exe_dir = "sys$disk:[-.''__arch'.exe.apps]"
11$ testsrc = "makefile."
12$ test = "p.txt"
13$ cmd = "mcr ''exe_dir'openssl"
14$
15$ if f$search(test) .nes. "" then delete 'test';*
16$ convert/fdl=sys$input: 'testsrc' 'test'
17RECORD
18 FORMAT STREAM_LF
19$
20$ if f$search(test+"-cipher") .nes. "" then delete 'test'-cipher;*
21$ if f$search(test+"-clear") .nes. "" then delete 'test'-clear;*
22$
23$ write sys$output "cat"
24$ 'cmd' enc -in 'test' -out 'test'-cipher
25$ 'cmd' enc -in 'test'-cipher -out 'test'-clear
26$ backup/compare 'test' 'test'-clear
27$ if $severity .ne. 1 then exit 3
28$ delete 'test'-cipher;*,'test'-clear;*
29$
30$ write sys$output "base64"
31$ 'cmd' enc -a -e -in 'test' -out 'test'-cipher
32$ 'cmd' enc -a -d -in 'test'-cipher -out 'test'-clear
33$ backup/compare 'test' 'test'-clear
34$ if $severity .ne. 1 then exit 3
35$ delete 'test'-cipher;*,'test'-clear;*
36$
37$ define/user sys$output 'test'-cipher-commands
38$ 'cmd' list-cipher-commands
39$ open/read f 'test'-cipher-commands
40$ loop_cipher_commands:
41$ read/end=loop_cipher_commands_end f i
42$ write sys$output i
43$
44$ if f$search(test+"-"+i+"-cipher") .nes. "" then -
45 delete 'test'-'i'-cipher;*
46$ if f$search(test+"-"+i+"-clear") .nes. "" then -
47 delete 'test'-'i'-clear;*
48$
49$ 'cmd' 'i' -bufsize 113 -e -k test -in 'test' -out 'test'-'i'-cipher
50$ 'cmd' 'i' -bufsize 157 -d -k test -in 'test'-'i'-cipher -out 'test'-'i'-clear
51$ backup/compare 'test' 'test'-'i'-clear
52$ if $severity .ne. 1 then exit 3
53$ delete 'test'-'i'-cipher;*,'test'-'i'-clear;*
54$
55$ write sys$output i," base64"
56$ 'cmd' 'i' -bufsize 113 -a -e -k test -in 'test' -out 'test'-'i'-cipher
57$ 'cmd' 'i' -bufsize 157 -a -d -k test -in 'test'-'i'-cipher -out 'test'-'i'-clear
58$ backup/compare 'test' 'test'-'i'-clear
59$ if $severity .ne. 1 then exit 3
60$ delete 'test'-'i'-cipher;*,'test'-'i'-clear;*
61$
62$ goto loop_cipher_commands
63$ loop_cipher_commands_end:
64$ close f
65$ delete 'test'-cipher-commands;*
66$ delete 'test';*
diff --git a/src/lib/libssl/test/testgen.com b/src/lib/libssl/test/testgen.com
new file mode 100644
index 0000000000..e076da2f30
--- /dev/null
+++ b/src/lib/libssl/test/testgen.com
@@ -0,0 +1,58 @@
1$! TESTGEN.COM
2$
3$ __arch = "VAX"
4$ if f$getsyi("cpu") .ge. 128 then -
5 __arch = f$edit( f$getsyi( "ARCH_NAME"), "UPCASE")
6$ if __arch .eqs. "" then __arch = "UNK"
7$ if (p1 .eqs. 64) then __arch = __arch+ "_64"
8$ exe_dir = "sys$disk:[-.''__arch'.exe.apps]"
9$
10$ T = "testcert"
11$ KEY = 512
12$ CA = "[-.certs]testca.pem"
13$
14$ set noon
15$ if f$search(T+".1;*") .nes. "" then delete 'T'.1;*
16$ if f$search(T+".2;*") .nes. "" then delete 'T'.2;*
17$ if f$search(T+".key;*") .nes. "" then delete 'T'.key;*
18$ set on
19$
20$ write sys$output "generating certificate request"
21$
22$ append/new nl: .rnd
23$ open/append random_file .rnd
24$ write random_file -
25 "string to make the random number generator think it has entropy"
26$ close random_file
27$
28$ set noon
29$ define/user sys$output nla0:
30$ mcr 'exe_dir'openssl no-rsa
31$ save_severity=$SEVERITY
32$ set on
33$ if save_severity
34$ then
35$ req_new="-newkey dsa:[-.apps]dsa512.pem"
36$ else
37$ req_new="-new"
38$ write sys$output -
39 "There should be a 2 sequences of .'s and some +'s."
40$ write sys$output -
41 "There should not be more that at most 80 per line"
42$ endif
43$
44$ write sys$output "This could take some time."
45$
46$ mcr 'exe_dir'openssl req -config test.cnf 'req_new' -out testreq.pem
47$ if $severity .ne. 1
48$ then
49$ write sys$output "problems creating request"
50$ exit 3
51$ endif
52$
53$ mcr 'exe_dir'openssl req -config test.cnf -verify -in testreq.pem -noout
54$ if $severity .ne. 1
55$ then
56$ write sys$output "signature on req is wrong"
57$ exit 3
58$ endif
diff --git a/src/lib/libssl/test/tests.com b/src/lib/libssl/test/tests.com
new file mode 100644
index 0000000000..373dd16eac
--- /dev/null
+++ b/src/lib/libssl/test/tests.com
@@ -0,0 +1,366 @@
1$! TESTS.COM -- Performs the necessary tests
2$!
3$! P1 tests to be performed. Empty means all.
4$! P2 Pointer size: "", "32", or "64".
5$!
6$! Announce/identify.
7$!
8$ proc = f$environment( "procedure")
9$ write sys$output "@@@ "+ -
10 f$parse( proc, , , "name")+ f$parse( proc, , , "type")
11$!
12$ __proc = f$element(0,";",f$environment("procedure"))
13$ __here = f$parse(f$parse("A.;",__proc) - "A.;","[]A.;") - "A.;"
14$ __save_default = f$environment("default")
15$ __arch = "VAX"
16$ if f$getsyi("cpu") .ge. 128 then -
17 __arch = f$edit( f$getsyi( "ARCH_NAME"), "UPCASE")
18$ if __arch .eqs. "" then __arch = "UNK"
19$!
20$ __archd = __arch
21$ pointer_size = ""
22$ if (p2 .eq. "64")
23$ then
24$ pointer_size = "64"
25$ __archd = __arch+ "_64"
26$ endif
27$!
28$ texe_dir := sys$disk:[-.'__archd'.exe.test]
29$ exe_dir := sys$disk:[-.'__archd'.exe.apps]
30$
31$ set default '__here'
32$
33$ ROOT = F$PARSE("sys$disk:[-]A.;0",,,,"SYNTAX_ONLY,NO_CONCEAL") - "A.;0"
34$ ROOT_DEV = F$PARSE(ROOT,,,"DEVICE","SYNTAX_ONLY")
35$ ROOT_DIR = F$PARSE(ROOT,,,"DIRECTORY","SYNTAX_ONLY") -
36 - ".][000000" - "[000000." - "][" - "[" - "]"
37$ ROOT = ROOT_DEV + "[" + ROOT_DIR
38$ DEFINE/NOLOG SSLROOT 'ROOT'.APPS.] /TRANS=CONC
39$ openssl_conf := sslroot:[000000]openssl-vms.cnf
40$
41$ on control_y then goto exit
42$ on error then goto exit
43$
44$ if p1 .nes. ""
45$ then
46$ tests = p1
47$ else
48$! NOTE: This list reflects the list of dependencies following the
49$! "alltests" target in Makefile. This should make it easy to see
50$! if there's a difference that needs to be taken care of.
51$ tests := -
52 test_des,test_idea,test_sha,test_md4,test_md5,test_hmac,-
53 test_md2,test_mdc2,test_wp,-
54 test_rmd,test_rc2,test_rc4,test_rc5,test_bf,test_cast,test_aes,-
55 test_rand,test_bn,test_ec,test_ecdsa,test_ecdh,-
56 test_enc,test_x509,test_rsa,test_crl,test_sid,-
57 test_gen,test_req,test_pkcs7,test_verify,test_dh,test_dsa,-
58 test_ss,test_ca,test_engine,test_evp,test_ssl,test_tsa,test_ige,-
59 test_jpake,test_cms
60$ endif
61$ tests = f$edit(tests,"COLLAPSE")
62$
63$ BNTEST := bntest
64$ ECTEST := ectest
65$ ECDSATEST := ecdsatest
66$ ECDHTEST := ecdhtest
67$ EXPTEST := exptest
68$ IDEATEST := ideatest
69$ SHATEST := shatest
70$ SHA1TEST := sha1test
71$ MDC2TEST := mdc2test
72$ RMDTEST := rmdtest
73$ MD2TEST := md2test
74$ MD4TEST := md4test
75$ MD5TEST := md5test
76$ HMACTEST := hmactest
77$ WPTEST := wp_test
78$ RC2TEST := rc2test
79$ RC4TEST := rc4test
80$ RC5TEST := rc5test
81$ BFTEST := bftest
82$ CASTTEST := casttest
83$ DESTEST := destest
84$ RANDTEST := randtest
85$ DHTEST := dhtest
86$ DSATEST := dsatest
87$ METHTEST := methtest
88$ SSLTEST := ssltest
89$ RSATEST := rsa_test
90$ ENGINETEST := enginetest
91$ EVPTEST := evp_test
92$ IGETEST := igetest
93$ JPAKETEST := jpaketest
94$ ASN1TEST := asn1test
95$!
96$ tests_i = 0
97$ loop_tests:
98$ tests_e = f$element(tests_i,",",tests)
99$ tests_i = tests_i + 1
100$ if tests_e .eqs. "," then goto exit
101$ write sys$output "---> ''tests_e'"
102$ gosub 'tests_e'
103$ goto loop_tests
104$
105$ test_evp:
106$ mcr 'texe_dir''evptest' 'ROOT'.CRYPTO.EVP]evptests.txt
107$ return
108$ test_des:
109$ mcr 'texe_dir''destest'
110$ return
111$ test_idea:
112$ mcr 'texe_dir''ideatest'
113$ return
114$ test_sha:
115$ mcr 'texe_dir''shatest'
116$ mcr 'texe_dir''sha1test'
117$ return
118$ test_mdc2:
119$ mcr 'texe_dir''mdc2test'
120$ return
121$ test_md5:
122$ mcr 'texe_dir''md5test'
123$ return
124$ test_md4:
125$ mcr 'texe_dir''md4test'
126$ return
127$ test_hmac:
128$ mcr 'texe_dir''hmactest'
129$ return
130$ test_wp:
131$ mcr 'texe_dir''wptest'
132$ return
133$ test_md2:
134$ mcr 'texe_dir''md2test'
135$ return
136$ test_rmd:
137$ mcr 'texe_dir''rmdtest'
138$ return
139$ test_bf:
140$ mcr 'texe_dir''bftest'
141$ return
142$ test_cast:
143$ mcr 'texe_dir''casttest'
144$ return
145$ test_rc2:
146$ mcr 'texe_dir''rc2test'
147$ return
148$ test_rc4:
149$ mcr 'texe_dir''rc4test'
150$ return
151$ test_rc5:
152$ mcr 'texe_dir''rc5test'
153$ return
154$ test_rand:
155$ mcr 'texe_dir''randtest'
156$ return
157$ test_enc:
158$ @testenc.com 'pointer_size'
159$ return
160$ test_x509:
161$ set noon
162$ define sys$error test_x509.err
163$ write sys$output "test normal x509v1 certificate"
164$ @tx509.com "" 'pointer_size'
165$ write sys$output "test first x509v3 certificate"
166$ @tx509.com v3-cert1.pem 'pointer_size'
167$ write sys$output "test second x509v3 certificate"
168$ @tx509.com v3-cert2.pem 'pointer_size'
169$ deassign sys$error
170$ set on
171$ return
172$ test_rsa:
173$ set noon
174$ define sys$error test_rsa.err
175$ @trsa.com "" 'pointer_size'
176$ deassign sys$error
177$ mcr 'texe_dir''rsatest'
178$ set on
179$ return
180$ test_crl:
181$ set noon
182$ define sys$error test_crl.err
183$ @tcrl.com "" 'pointer_size'
184$ deassign sys$error
185$ set on
186$ return
187$ test_sid:
188$ set noon
189$ define sys$error test_sid.err
190$ @tsid.com "" 'pointer_size'
191$ deassign sys$error
192$ set on
193$ return
194$ test_req:
195$ set noon
196$ define sys$error test_req.err
197$ @treq.com "" 'pointer_size'
198$ @treq.com testreq2.pem 'pointer_size'
199$ deassign sys$error
200$ set on
201$ return
202$ test_pkcs7:
203$ set noon
204$ define sys$error test_pkcs7.err
205$ @tpkcs7.com "" 'pointer_size'
206$ @tpkcs7d.com "" 'pointer_size'
207$ deassign sys$error
208$ set on
209$ return
210$ test_bn:
211$ write sys$output -
212 "starting big number library test, could take a while..."
213$ set noon
214$ define sys$error test_bn.err
215$ define sys$output test_bn.out
216$ @ bctest.com
217$ status = $status
218$ deassign sys$error
219$ deassign sys$output
220$ set on
221$ if (status)
222$ then
223$ create /fdl = sys$input bntest-vms.tmp
224FILE
225 ORGANIZATION sequential
226RECORD
227 FORMAT stream_lf
228$ define /user_mode sys$output bntest-vms.tmp
229$ mcr 'texe_dir''bntest'
230$ define /user_mode sys$input bntest-vms.tmp
231$ define /user_mode sys$output bntest-vms.out
232$ bc
233$ @ bntest.com bntest-vms.out
234$ status = $status
235$ if (status)
236$ then
237$ delete bntest-vms.out;*
238$ delete bntest-vms.tmp;*
239$ endif
240$ else
241$ create /fdl = sys$input bntest-vms.sh
242FILE
243 ORGANIZATION sequential
244RECORD
245 FORMAT stream_lf
246$ open /append bntest_file bntest-vms.sh
247$ type /output = bntest_file sys$input:
248<< __FOO__ sh -c "`sh ./bctest`" | perl -e '$i=0; while (<STDIN>) {if (/^test (.*)/) {print STDERR "\nverify $1";} elsif (!/^0$/) {die "\nFailed! bc: $_";} else {print STDERR "."; $i++;}} print STDERR "\n$i tests passed\n"'
249$ define /user_mode sys$output bntest-vms.tmp
250$ mcr 'texe_dir''bntest'
251$ copy bntest-vms.tmp bntest_file
252$ delete bntest-vms.tmp;*
253$ type /output = bntest_file sys$input:
254__FOO__
255$ close bntest_file
256$ write sys$output "-- copy the [.test]bntest-vms.sh and [.test]bctest files to a Unix system and"
257$ write sys$output "-- run bntest-vms.sh through sh or bash to verify that the bignum operations"
258$ write sys$output "-- went well."
259$ write sys$output ""
260$ endif
261$ write sys$output "test a^b%c implementations"
262$ mcr 'texe_dir''exptest'
263$ return
264$ test_ec:
265$ write sys$output "test elliptic curves"
266$ mcr 'texe_dir''ectest'
267$ return
268$ test_ecdsa:
269$ write sys$output "test ecdsa"
270$ mcr 'texe_dir''ecdsatest'
271$ return
272$ test_ecdh:
273$ write sys$output "test ecdh"
274$ mcr 'texe_dir''ecdhtest'
275$ return
276$ test_verify:
277$ write sys$output "The following command should have some OK's and some failures"
278$ write sys$output "There are definitly a few expired certificates"
279$ @tverify.com 'pointer_size'
280$ return
281$ test_dh:
282$ write sys$output "Generate a set of DH parameters"
283$ mcr 'texe_dir''dhtest'
284$ return
285$ test_dsa:
286$ write sys$output "Generate a set of DSA parameters"
287$ mcr 'texe_dir''dsatest'
288$ return
289$ test_gen:
290$ write sys$output "Generate and verify a certificate request"
291$ @testgen.com 'pointer_size'
292$ return
293$ maybe_test_ss:
294$ testss_RDT = f$cvtime(f$file_attributes("testss.com","RDT"))
295$ if f$cvtime(f$file_attributes("keyU.ss","RDT")) .les. testss_RDT then -
296 goto test_ss
297$ if f$cvtime(f$file_attributes("certU.ss","RDT")) .les. testss_RDT then -
298 goto test_ss
299$ if f$cvtime(f$file_attributes("certCA.ss","RDT")) .les. testss_RDT then -
300 goto test_ss
301$ return
302$ test_ss:
303$ write sys$output "Generate and certify a test certificate"
304$ @testss.com 'pointer_size'
305$ return
306$ test_engine:
307$ write sys$output "Manipulate the ENGINE structures"
308$ mcr 'texe_dir''enginetest'
309$ return
310$ test_ssl:
311$ write sys$output "test SSL protocol"
312$ gosub maybe_test_ss
313$ @testssl.com keyU.ss certU.ss certCA.ss 'pointer_size'
314$ return
315$ test_ca:
316$ set noon
317$ define /user_mode sys$output test_ca.out
318$ mcr 'exe_dir'openssl no-rsa
319$ save_severity=$SEVERITY
320$ set on
321$ if save_severity
322$ then
323$ write sys$output "skipping CA.com test -- requires RSA"
324$ else
325$ write sys$output "Generate and certify a test certificate via the 'ca' program"
326$ @testca.com 'pointer_size'
327$ endif
328$ return
329$ test_aes:
330$! write sys$output "test AES"
331$! !mcr 'texe_dir''aestest'
332$ return
333$ test_tsa:
334$ set noon
335$ define /user_mode sys$output nla0:
336$ mcr 'exe_dir'openssl no-rsa
337$ save_severity=$SEVERITY
338$ set on
339$ if save_severity
340$ then
341$ write sys$output "skipping testtsa.com test -- requires RSA"
342$ else
343$ @testtsa.com "" "" "" 'pointer_size'
344$ endif
345$ return
346$ test_ige:
347$ write sys$output "Test IGE mode"
348$ mcr 'texe_dir''igetest'
349$ return
350$ test_jpake:
351$ write sys$output "Test JPAKE"
352$ mcr 'texe_dir''jpaketest'
353$ return
354$ test_cms:
355$ write sys$output "CMS consistency test"
356$ ! Define the logical name used to find openssl.exe in the perl script.
357$ define /user_mode osslx 'exe_dir'
358$ perl CMS-TEST.PL
359$ return
360$
361$
362$ exit:
363$ mcr 'exe_dir'openssl version -a
364$ set default '__save_default'
365$ deassign sslroot
366$ exit
diff --git a/src/lib/libssl/test/testss.com b/src/lib/libssl/test/testss.com
new file mode 100644
index 0000000000..32a74d0fc2
--- /dev/null
+++ b/src/lib/libssl/test/testss.com
@@ -0,0 +1,123 @@
1$! TESTSS.COM
2$
3$ __arch = "VAX"
4$ if f$getsyi("cpu") .ge. 128 then -
5 __arch = f$edit( f$getsyi( "ARCH_NAME"), "UPCASE")
6$ if __arch .eqs. "" then __arch = "UNK"
7$!
8$ if (p1 .eqs. "64") then __arch = __arch+ "_64"
9$!
10$ exe_dir = "sys$disk:[-.''__arch'.exe.apps]"
11$
12$ digest="-md5"
13$ reqcmd = "mcr ''exe_dir'openssl req"
14$ x509cmd = "mcr ''exe_dir'openssl x509 ''digest'"
15$ verifycmd = "mcr ''exe_dir'openssl verify"
16$ dummycnf = "sys$disk:[-.apps]openssl-vms.cnf"
17$
18$ CAkey="""keyCA.ss"""
19$ CAcert="""certCA.ss"""
20$ CAreq="""reqCA.ss"""
21$ CAconf="""CAss.cnf"""
22$ CAreq2="""req2CA.ss""" ! temp
23$
24$ Uconf="""Uss.cnf"""
25$ Ukey="""keyU.ss"""
26$ Ureq="""reqU.ss"""
27$ Ucert="""certU.ss"""
28$
29$ write sys$output ""
30$ write sys$output "make a certificate request using 'req'"
31$
32$ set noon
33$ define/user sys$output nla0:
34$ mcr 'exe_dir'openssl no-rsa
35$ save_severity=$SEVERITY
36$ set on
37$ if save_severity
38$ then
39$ req_new="-newkey dsa:[-.apps]dsa512.pem"
40$ else
41$ req_new="-new"
42$ endif
43$
44$ 'reqcmd' -config 'CAconf' -out 'CAreq' -keyout 'CAkey' 'req_new' ! -out err.ss
45$ if $severity .ne. 1
46$ then
47$ write sys$output "error using 'req' to generate a certificate request"
48$ exit 3
49$ endif
50$ write sys$output ""
51$ write sys$output "convert the certificate request into a self signed certificate using 'x509'"
52$ define /user sys$output err.ss
53$ 'x509cmd' "-CAcreateserial" -in 'CAreq' -days 30 -req -out 'CAcert' -signkey 'CAkey'
54$ if $severity .ne. 1
55$ then
56$ write sys$output "error using 'x509' to self sign a certificate request"
57$ exit 3
58$ endif
59$
60$ write sys$output ""
61$ write sys$output "convert a certificate into a certificate request using 'x509'"
62$ define /user sys$output err.ss
63$ 'x509cmd' -in 'CAcert' -x509toreq -signkey 'CAkey' -out 'CAreq2'
64$ if $severity .ne. 1
65$ then
66$ write sys$output "error using 'x509' convert a certificate to a certificate request"
67$ exit 3
68$ endif
69$
70$ 'reqcmd' -config 'dummycnf' -verify -in 'CAreq' -noout
71$ if $severity .ne. 1
72$ then
73$ write sys$output "first generated request is invalid"
74$ exit 3
75$ endif
76$
77$ 'reqcmd' -config 'dummycnf' -verify -in 'CAreq2' -noout
78$ if $severity .ne. 1
79$ then
80$ write sys$output "second generated request is invalid"
81$ exit 3
82$ endif
83$
84$ 'verifycmd' "-CAfile" 'CAcert' 'CAcert'
85$ if $severity .ne. 1
86$ then
87$ write sys$output "first generated cert is invalid"
88$ exit 3
89$ endif
90$
91$ write sys$output ""
92$ write sys$output "make another certificate request using 'req'"
93$ define /user sys$output err.ss
94$ 'reqcmd' -config 'Uconf' -out 'Ureq' -keyout 'Ukey' 'req_new'
95$ if $severity .ne. 1
96$ then
97$ write sys$output "error using 'req' to generate a certificate request"
98$ exit 3
99$ endif
100$
101$ write sys$output ""
102$ write sys$output "sign certificate request with the just created CA via 'x509'"
103$ define /user sys$output err.ss
104$ 'x509cmd' "-CAcreateserial" -in 'Ureq' -days 30 -req -out 'Ucert' "-CA" 'CAcert' "-CAkey" 'CAkey'
105$ if $severity .ne. 1
106$ then
107$ write sys$output "error using 'x509' to sign a certificate request"
108$ exit 3
109$ endif
110$
111$ 'verifycmd' "-CAfile" 'CAcert' 'Ucert'
112$ write sys$output ""
113$ write sys$output "Certificate details"
114$ 'x509cmd' -subject -issuer -startdate -enddate -noout -in 'Ucert'
115$
116$ write sys$output ""
117$ write sys$output "The generated CA certificate is ",CAcert
118$ write sys$output "The generated CA private key is ",CAkey
119$
120$ write sys$output "The generated user certificate is ",Ucert
121$ write sys$output "The generated user private key is ",Ukey
122$
123$ if f$search("err.ss;*") .nes. "" then delete err.ss;*
diff --git a/src/lib/libssl/test/testssl b/src/lib/libssl/test/testssl
index 5ae4dc8720..b55364ae88 100644
--- a/src/lib/libssl/test/testssl
+++ b/src/lib/libssl/test/testssl
@@ -148,14 +148,4 @@ $ssltest -tls1 -cipher PSK -psk abc123 $extra || exit 1
148echo test tls1 with PSK via BIO pair 148echo test tls1 with PSK via BIO pair
149$ssltest -bio_pair -tls1 -cipher PSK -psk abc123 $extra || exit 1 149$ssltest -bio_pair -tls1 -cipher PSK -psk abc123 $extra || exit 1
150 150
151if ../util/shlib_wrap.sh ../apps/openssl no-srp; then
152 echo skipping SRP tests
153else
154 echo test tls1 with SRP
155 $ssltest -tls1 -cipher SRP -srpuser test -srppass abc123
156
157 echo test tls1 with SRP via BIO pair
158 $ssltest -bio_pair -tls1 -cipher SRP -srpuser test -srppass abc123
159fi
160
161exit 0 151exit 0
diff --git a/src/lib/libssl/test/testssl.com b/src/lib/libssl/test/testssl.com
new file mode 100644
index 0000000000..f19edc4719
--- /dev/null
+++ b/src/lib/libssl/test/testssl.com
@@ -0,0 +1,208 @@
1$! TESTSSL.COM
2$
3$ __arch = "VAX"
4$ if f$getsyi("cpu") .ge. 128 then -
5 __arch = f$edit( f$getsyi( "ARCH_NAME"), "UPCASE")
6$ if __arch .eqs. "" then __arch = "UNK"
7$!
8$ if (p4 .eqs. "64") then __arch = __arch+ "_64"
9$!
10$ texe_dir = "sys$disk:[-.''__arch'.exe.test]"
11$ exe_dir = "sys$disk:[-.''__arch'.exe.apps]"
12$
13$ if p1 .eqs. ""
14$ then
15$ key="[-.apps]server.pem"
16$ else
17$ key=p1
18$ endif
19$ if p2 .eqs. ""
20$ then
21$ cert="[-.apps]server.pem"
22$ else
23$ cert=p2
24$ endif
25$ ssltest = "mcr ''texe_dir'ssltest -key ''key'"+ -
26 " -cert ''cert' -c_key ''key' -c_cert ''cert'"
27$!
28$ set noon
29$ define/user sys$output testssl-x509-output.
30$ define/user sys$error nla0:
31$ mcr 'exe_dir'openssl x509 -in 'cert' -text -noout
32$ define/user sys$error nla0:
33$ search/output=nla0: testssl-x509-output. "DSA Public Key"/exact
34$ if $severity .eq. 1
35$ then
36$ dsa_cert = "YES"
37$ else
38$ dsa_cert = "NO"
39$ endif
40$ delete testssl-x509-output.;*
41$
42$ if p3 .eqs. ""
43$ then
44$ copy/concatenate [-.certs]*.pem certs.tmp
45$ CA = """-CAfile"" certs.tmp"
46$ else
47$ CA = """-CAfile"" "+p3
48$ endif
49$
50$!###########################################################################
51$
52$ write sys$output "test sslv2"
53$ 'ssltest' -ssl2
54$ if $severity .ne. 1 then goto exit3
55$
56$ write sys$output "test sslv2 with server authentication"
57$ 'ssltest' -ssl2 -server_auth 'CA'
58$ if $severity .ne. 1 then goto exit3
59$
60$ if .not. dsa_cert
61$ then
62$ write sys$output "test sslv2 with client authentication"
63$ 'ssltest' -ssl2 -client_auth 'CA'
64$ if $severity .ne. 1 then goto exit3
65$
66$ write sys$output "test sslv2 with both client and server authentication"
67$ 'ssltest' -ssl2 -server_auth -client_auth 'CA'
68$ if $severity .ne. 1 then goto exit3
69$ endif
70$
71$ write sys$output "test sslv3"
72$ 'ssltest' -ssl3
73$ if $severity .ne. 1 then goto exit3
74$
75$ write sys$output "test sslv3 with server authentication"
76$ 'ssltest' -ssl3 -server_auth 'CA'
77$ if $severity .ne. 1 then goto exit3
78$
79$ write sys$output "test sslv3 with client authentication"
80$ 'ssltest' -ssl3 -client_auth 'CA'
81$ if $severity .ne. 1 then goto exit3
82$
83$ write sys$output "test sslv3 with both client and server authentication"
84$ 'ssltest' -ssl3 -server_auth -client_auth 'CA'
85$ if $severity .ne. 1 then goto exit3
86$
87$ write sys$output "test sslv2/sslv3"
88$ 'ssltest'
89$ if $severity .ne. 1 then goto exit3
90$
91$ write sys$output "test sslv2/sslv3 with server authentication"
92$ 'ssltest' -server_auth 'CA'
93$ if $severity .ne. 1 then goto exit3
94$
95$ write sys$output "test sslv2/sslv3 with client authentication"
96$ 'ssltest' -client_auth 'CA'
97$ if $severity .ne. 1 then goto exit3
98$
99$ write sys$output "test sslv2/sslv3 with both client and server authentication"
100$ 'ssltest' -server_auth -client_auth 'CA'
101$ if $severity .ne. 1 then goto exit3
102$
103$ write sys$output "test sslv2 via BIO pair"
104$ 'ssltest' -bio_pair -ssl2
105$ if $severity .ne. 1 then goto exit3
106$
107$ write sys$output "test sslv2 with server authentication via BIO pair"
108$ 'ssltest' -bio_pair -ssl2 -server_auth 'CA'
109$ if $severity .ne. 1 then goto exit3
110$
111$ if .not. dsa_cert
112$ then
113$ write sys$output "test sslv2 with client authentication via BIO pair"
114$ 'ssltest' -bio_pair -ssl2 -client_auth 'CA'
115$ if $severity .ne. 1 then goto exit3
116$
117$ write sys$output "test sslv2 with both client and server authentication via BIO pair"
118$ 'ssltest' -bio_pair -ssl2 -server_auth -client_auth 'CA'
119$ if $severity .ne. 1 then goto exit3
120$ endif
121$
122$ write sys$output "test sslv3 via BIO pair"
123$ 'ssltest' -bio_pair -ssl3
124$ if $severity .ne. 1 then goto exit3
125$
126$ write sys$output "test sslv3 with server authentication via BIO pair"
127$ 'ssltest' -bio_pair -ssl3 -server_auth 'CA'
128$ if $severity .ne. 1 then goto exit3
129$
130$ write sys$output "test sslv3 with client authentication via BIO pair"
131$ 'ssltest' -bio_pair -ssl3 -client_auth 'CA'
132$ if $severity .ne. 1 then goto exit3
133
134$ write sys$output "test sslv3 with both client and server authentication via BIO pair"
135$ 'ssltest' -bio_pair -ssl3 -server_auth -client_auth 'CA'
136$ if $severity .ne. 1 then goto exit3
137$
138$ write sys$output "test sslv2/sslv3 via BIO pair"
139$ 'ssltest'
140$ if $severity .ne. 1 then goto exit3
141$
142$ if .not. dsa_cert
143$ then
144$ write sys$output "test sslv2/sslv3 w/o DHE via BIO pair"
145$ 'ssltest' -bio_pair -no_dhe
146$ if $severity .ne. 1 then goto exit3
147$ endif
148$
149$ write sys$output "test sslv2/sslv3 with 1024 bit DHE via BIO pair"
150$ 'ssltest' -bio_pair -dhe1024dsa -v
151$ if $severity .ne. 1 then goto exit3
152$
153$ write sys$output "test sslv2/sslv3 with server authentication"
154$ 'ssltest' -bio_pair -server_auth 'CA'
155$ if $severity .ne. 1 then goto exit3
156$
157$ write sys$output "test sslv2/sslv3 with client authentication via BIO pair"
158$ 'ssltest' -bio_pair -client_auth 'CA'
159$ if $severity .ne. 1 then goto exit3
160$
161$ write sys$output "test sslv2/sslv3 with both client and server authentication via BIO pair"
162$ 'ssltest' -bio_pair -server_auth -client_auth 'CA'
163$ if $severity .ne. 1 then goto exit3
164$
165$!###########################################################################
166$
167$ define/user sys$output nla0:
168$ mcr 'exe_dir'openssl no-rsa
169$ no_rsa=$SEVERITY
170$ define/user sys$output nla0:
171$ mcr 'exe_dir'openssl no-dh
172$ no_dh=$SEVERITY
173$
174$ if no_dh
175$ then
176$ write sys$output "skipping anonymous DH tests"
177$ else
178$ write sys$output "test tls1 with 1024bit anonymous DH, multiple handshakes"
179$ 'ssltest' -v -bio_pair -tls1 -cipher "ADH" -dhe1024dsa -num 10 -f -time
180$ if $severity .ne. 1 then goto exit3
181$ endif
182$
183$ if no_rsa
184$ then
185$ write sys$output "skipping RSA tests"
186$ else
187$ write sys$output "test tls1 with 1024bit RSA, no DHE, multiple handshakes"
188$ mcr 'texe_dir'ssltest -v -bio_pair -tls1 -cert [-.apps]server2.pem -no_dhe -num 10 -f -time
189$ if $severity .ne. 1 then goto exit3
190$
191$ if no_dh
192$ then
193$ write sys$output "skipping RSA+DHE tests"
194$ else
195$ write sys$output "test tls1 with 1024bit RSA, 1024bit DHE, multiple handshakes"
196$ mcr 'texe_dir'ssltest -v -bio_pair -tls1 -cert [-.apps]server2.pem -dhe1024dsa -num 10 -f -time
197$ if $severity .ne. 1 then goto exit3
198$ endif
199$ endif
200$
201$ RET = 1
202$ goto exit
203$ exit3:
204$ RET = 3
205$ exit:
206$ if p3 .eqs. "" then delete certs.tmp;*
207$ set on
208$ exit 'RET'
diff --git a/src/lib/libssl/test/testtsa.com b/src/lib/libssl/test/testtsa.com
new file mode 100644
index 0000000000..29fb1d0e63
--- /dev/null
+++ b/src/lib/libssl/test/testtsa.com
@@ -0,0 +1,255 @@
1$!
2$! A few very basic tests for the 'ts' time stamping authority command.
3$!
4$
5$ __arch = "VAX"
6$ if f$getsyi("cpu") .ge. 128 then -
7 __arch = f$edit( f$getsyi( "ARCH_NAME"), "UPCASE")
8$ if __arch .eqs. "" then __arch = "UNK"
9$!
10$ if (p4 .eqs. "64") then __arch = __arch+ "_64"
11$!
12$ exe_dir = "sys$disk:[-.''__arch'.exe.apps]"
13$
14$ openssl = "mcr ''f$parse(exe_dir+"openssl.exe")'"
15$ OPENSSL_CONF = "[-]CAtsa.cnf"
16$ ! Because that's what ../apps/CA.sh really looks at
17$ SSLEAY_CONFIG = "-config " + OPENSSL_CONF
18$
19$ error:
20$ subroutine
21$ write sys$error "TSA test failed!"
22$ exit 3
23$ endsubroutine
24$
25$ setup_dir:
26$ subroutine
27$
28$ if f$search("tsa.dir") .nes ""
29$ then
30$ @[-.util]deltree [.tsa]*.*
31$ set file/prot=(S:RWED,O:RWED,G:RWED,W:RWED) tsa.dir;*
32$ delete tsa.dir;*
33$ endif
34$
35$ create/dir [.tsa]
36$ set default [.tsa]
37$ endsubroutine
38$
39$ clean_up_dir:
40$ subroutine
41$
42$ set default [-]
43$ @[-.util]deltree [.tsa]*.*
44$ set file/prot=(S:RWED,O:RWED,G:RWED,W:RWED) tsa.dir;*
45$ delete tsa.dir;*
46$ endsubroutine
47$
48$ create_ca:
49$ subroutine
50$
51$ write sys$output "Creating a new CA for the TSA tests..."
52$ TSDNSECT = "ts_ca_dn"
53$ openssl req -new -x509 -nodes -
54 -out tsaca.pem -keyout tsacakey.pem
55$ if $severity .ne. 1 then call error
56$ endsubroutine
57$
58$ create_tsa_cert:
59$ subroutine
60$
61$ INDEX=p1
62$ EXT=p2
63$ TSDNSECT = "ts_cert_dn"
64$
65$ openssl req -new -
66 -out tsa_req'INDEX'.pem -keyout tsa_key'INDEX'.pem
67$ if $severity .ne. 1 then call error
68$
69$ write sys$output "Using extension ''EXT'"
70$ openssl x509 -req -
71 -in tsa_req'INDEX'.pem -out tsa_cert'INDEX'.pem -
72 "-CA" tsaca.pem "-CAkey" tsacakey.pem "-CAcreateserial" -
73 -extfile 'OPENSSL_CONF' -extensions "''EXT'"
74$ if $severity .ne. 1 then call error
75$ endsubroutine
76$
77$ print_request:
78$ subroutine
79$
80$ openssl ts -query -in 'p1' -text
81$ endsubroutine
82$
83$ create_time_stamp_request1: subroutine
84$
85$ openssl ts -query -data [-]testtsa.com -policy tsa_policy1 -
86 -cert -out req1.tsq
87$ if $severity .ne. 1 then call error
88$ endsubroutine
89$
90$ create_time_stamp_request2: subroutine
91$
92$ openssl ts -query -data [-]testtsa.com -policy tsa_policy2 -
93 -no_nonce -out req2.tsq
94$ if $severity .ne. 1 then call error
95$ endsubroutine
96$
97$ create_time_stamp_request3: subroutine
98$
99$ openssl ts -query -data [-]CAtsa.cnf -no_nonce -out req3.tsq
100$ if $severity .ne. 1 then call error
101$ endsubroutine
102$
103$ print_response:
104$ subroutine
105$
106$ openssl ts -reply -in 'p1' -text
107$ if $severity .ne. 1 then call error
108$ endsubroutine
109$
110$ create_time_stamp_response:
111$ subroutine
112$
113$ openssl ts -reply -section 'p3' -queryfile 'p1' -out 'p2'
114$ if $severity .ne. 1 then call error
115$ endsubroutine
116$
117$ time_stamp_response_token_test:
118$ subroutine
119$
120$ RESPONSE2 = p2+ "-copy_tsr"
121$ TOKEN_DER = p2+ "-token_der"
122$ openssl ts -reply -in 'p2' -out 'TOKEN_DER' -token_out
123$ if $severity .ne. 1 then call error
124$ openssl ts -reply -in 'TOKEN_DER' -token_in -out 'RESPONSE2'
125$ if $severity .ne. 1 then call error
126$ backup/compare 'RESPONSE2' 'p2'
127$ if $severity .ne. 1 then call error
128$ openssl ts -reply -in 'p2' -text -token_out
129$ if $severity .ne. 1 then call error
130$ openssl ts -reply -in 'TOKEN_DER' -token_in -text -token_out
131$ if $severity .ne. 1 then call error
132$ openssl ts -reply -queryfile 'p1' -text -token_out
133$ if $severity .ne. 1 then call error
134$ endsubroutine
135$
136$ verify_time_stamp_response:
137$ subroutine
138$
139$ openssl ts -verify -queryfile 'p1' -in 'p2' -
140 "-CAfile" tsaca.pem -untrusted tsa_cert1.pem
141$ if $severity .ne. 1 then call error
142$ openssl ts -verify -data 'p3' -in 'p2' -
143 "-CAfile" tsaca.pem -untrusted tsa_cert1.pem
144$ if $severity .ne. 1 then call error
145$ endsubroutine
146$
147$ verify_time_stamp_token:
148$ subroutine
149$
150$ ! create the token from the response first
151$ openssl ts -reply -in "''p2'" -out "''p2'-token" -token_out
152$ if $severity .ne. 1 then call error
153$ openssl ts -verify -queryfile "''p1'" -in "''p2'-token" -
154 -token_in "-CAfile" tsaca.pem -untrusted tsa_cert1.pem
155$ if $severity .ne. 1 then call error
156$ openssl ts -verify -data "''p3'" -in "''p2'-token" -
157 -token_in "-CAfile" tsaca.pem -untrusted tsa_cert1.pem
158$ if $severity .ne. 1 then call error
159$ endsubroutine
160$
161$ verify_time_stamp_response_fail:
162$ subroutine
163$
164$ openssl ts -verify -queryfile 'p1' -in 'p2' -
165 "-CAfile" tsaca.pem -untrusted tsa_cert1.pem
166$ ! Checks if the verification failed, as it should have.
167$ if $severity .eq. 1 then call error
168$ write sys$output "Ok"
169$ endsubroutine
170$
171$ ! Main body ----------------------------------------------------------
172$
173$ set noon
174$
175$ write sys$output "Setting up TSA test directory..."
176$ call setup_dir
177$
178$ write sys$output "Creating CA for TSA tests..."
179$ call create_ca
180$
181$ write sys$output "Creating tsa_cert1.pem TSA server cert..."
182$ call create_tsa_cert 1 "tsa_cert"
183$
184$ write sys$output "Creating tsa_cert2.pem non-TSA server cert..."
185$ call create_tsa_cert 2 "non_tsa_cert"
186$
187$ write sys$output "Creating req1.req time stamp request for file testtsa..."
188$ call create_time_stamp_request1
189$
190$ write sys$output "Printing req1.req..."
191$ call print_request "req1.tsq"
192$
193$ write sys$output "Generating valid response for req1.req..."
194$ call create_time_stamp_response "req1.tsq" "resp1.tsr" "tsa_config1"
195$
196$ write sys$output "Printing response..."
197$ call print_response "resp1.tsr"
198$
199$ write sys$output "Verifying valid response..."
200$ call verify_time_stamp_response "req1.tsq" "resp1.tsr" "[-]testtsa.com"
201$
202$ write sys$output "Verifying valid token..."
203$ call verify_time_stamp_token "req1.tsq" "resp1.tsr" "[-]testtsa.com"
204$
205$ ! The tests below are commented out, because invalid signer certificates
206$ ! can no longer be specified in the config file.
207$
208$ ! write sys$output "Generating _invalid_ response for req1.req..."
209$ ! call create_time_stamp_response "req1.tsq" "resp1_bad.tsr" "tsa_config2"
210$
211$ ! write sys$output "Printing response..."
212$ ! call print_response "resp1_bad.tsr"
213$
214$ ! write sys$output "Verifying invalid response, it should fail..."
215$ ! call verify_time_stamp_response_fail "req1.tsq" "resp1_bad.tsr"
216$
217$ write sys$output "Creating req2.req time stamp request for file testtsa..."
218$ call create_time_stamp_request2
219$
220$ write sys$output "Printing req2.req..."
221$ call print_request "req2.tsq"
222$
223$ write sys$output "Generating valid response for req2.req..."
224$ call create_time_stamp_response "req2.tsq" "resp2.tsr" "tsa_config1"
225$
226$ write sys$output "Checking '-token_in' and '-token_out' options with '-reply'..."
227$ call time_stamp_response_token_test "req2.tsq" "resp2.tsr"
228$
229$ write sys$output "Printing response..."
230$ call print_response "resp2.tsr"
231$
232$ write sys$output "Verifying valid response..."
233$ call verify_time_stamp_response "req2.tsq" "resp2.tsr" "[-]testtsa.com"
234$
235$ write sys$output "Verifying response against wrong request, it should fail..."
236$ call verify_time_stamp_response_fail "req1.tsq" "resp2.tsr"
237$
238$ write sys$output "Verifying response against wrong request, it should fail..."
239$ call verify_time_stamp_response_fail "req2.tsq" "resp1.tsr"
240$
241$ write sys$output "Creating req3.req time stamp request for file CAtsa.cnf..."
242$ call create_time_stamp_request3
243$
244$ write sys$output "Printing req3.req..."
245$ call print_request "req3.tsq"
246$
247$ write sys$output "Verifying response against wrong request, it should fail..."
248$ call verify_time_stamp_response_fail "req3.tsq" "resp1.tsr"
249$
250$ write sys$output "Cleaning up..."
251$ call clean_up_dir
252$
253$ set on
254$
255$ exit
diff --git a/src/lib/libssl/test/tpkcs7.com b/src/lib/libssl/test/tpkcs7.com
new file mode 100644
index 0000000000..3fc4982bb0
--- /dev/null
+++ b/src/lib/libssl/test/tpkcs7.com
@@ -0,0 +1,59 @@
1$! TPKCS7.COM -- Tests pkcs7 keys
2$
3$ __arch = "VAX"
4$ if f$getsyi("cpu") .ge. 128 then -
5 __arch = f$edit( f$getsyi( "ARCH_NAME"), "UPCASE")
6$ if __arch .eqs. "" then __arch = "UNK"
7$!
8$ if (p2 .eqs. "64") then __arch = __arch+ "_64"
9$!
10$ exe_dir = "sys$disk:[-.''__arch'.exe.apps]"
11$
12$ cmd = "mcr ''exe_dir'openssl pkcs7"
13$
14$ t = "testp7.pem"
15$ if p1 .nes. "" then t = p1
16$
17$ write sys$output "testing PKCS7 conversions"
18$ if f$search("fff.*") .nes "" then delete fff.*;*
19$ if f$search("ff.*") .nes "" then delete ff.*;*
20$ if f$search("f.*") .nes "" then delete f.*;*
21$ convert/fdl=sys$input: 't' fff.p
22RECORD
23 FORMAT STREAM_LF
24$
25$ write sys$output "p -> d"
26$ 'cmd' -in fff.p -inform p -outform d -out f.d
27$ if $severity .ne. 1 then exit 3
28$ write sys$output "p -> p"
29$ 'cmd' -in fff.p -inform p -outform p -out f.p
30$ if $severity .ne. 1 then exit 3
31$
32$ write sys$output "d -> d"
33$ 'cmd' -in f.d -inform d -outform d -out ff.d1
34$ if $severity .ne. 1 then exit 3
35$ write sys$output "p -> d"
36$ 'cmd' -in f.p -inform p -outform d -out ff.d3
37$ if $severity .ne. 1 then exit 3
38$
39$
40$ write sys$output "d -> p"
41$ 'cmd' -in f.d -inform d -outform p -out ff.p1
42$ if $severity .ne. 1 then exit 3
43$ write sys$output "p -> p"
44$ 'cmd' -in f.p -inform p -outform p -out ff.p3
45$ if $severity .ne. 1 then exit 3
46$
47$ backup/compare fff.p f.p
48$ if $severity .ne. 1 then exit 3
49$ backup/compare fff.p ff.p1
50$ if $severity .ne. 1 then exit 3
51$ backup/compare fff.p ff.p3
52$ if $severity .ne. 1 then exit 3
53$
54$ backup/compare f.p ff.p1
55$ if $severity .ne. 1 then exit 3
56$ backup/compare f.p ff.p3
57$ if $severity .ne. 1 then exit 3
58$
59$ delete f.*;*,ff.*;*,fff.*;*
diff --git a/src/lib/libssl/test/tpkcs7d.com b/src/lib/libssl/test/tpkcs7d.com
new file mode 100644
index 0000000000..eea8c888ee
--- /dev/null
+++ b/src/lib/libssl/test/tpkcs7d.com
@@ -0,0 +1,52 @@
1$! TPKCS7.COM -- Tests pkcs7 keys
2$
3$ __arch = "VAX"
4$ if f$getsyi("cpu") .ge. 128 then -
5 __arch = f$edit( f$getsyi( "ARCH_NAME"), "UPCASE")
6$ if __arch .eqs. "" then __arch = "UNK"
7$!
8$ if (p2 .eqs. "64") then __arch = __arch+ "_64"
9$!
10$ exe_dir = "sys$disk:[-.''__arch'.exe.apps]"
11$
12$ cmd = "mcr ''exe_dir'openssl pkcs7"
13$
14$ t = "pkcs7-1.pem"
15$ if p1 .nes. "" then t = p1
16$
17$ write sys$output "testing PKCS7 conversions (2)"
18$ if f$search("fff.*") .nes "" then delete fff.*;*
19$ if f$search("ff.*") .nes "" then delete ff.*;*
20$ if f$search("f.*") .nes "" then delete f.*;*
21$ convert/fdl=sys$input: 't' fff.p
22RECORD
23 FORMAT STREAM_LF
24$
25$ write sys$output "p -> d"
26$ 'cmd' -in fff.p -inform p -outform d -out f.d
27$ if $severity .ne. 1 then exit 3
28$ write sys$output "p -> p"
29$ 'cmd' -in fff.p -inform p -outform p -out f.p
30$ if $severity .ne. 1 then exit 3
31$
32$ write sys$output "d -> d"
33$ 'cmd' -in f.d -inform d -outform d -out ff.d1
34$ if $severity .ne. 1 then exit 3
35$ write sys$output "p -> d"
36$ 'cmd' -in f.p -inform p -outform d -out ff.d3
37$ if $severity .ne. 1 then exit 3
38$
39$
40$ write sys$output "d -> p"
41$ 'cmd' -in f.d -inform d -outform p -out ff.p1
42$ if $severity .ne. 1 then exit 3
43$ write sys$output "p -> p"
44$ 'cmd' -in f.p -inform p -outform p -out ff.p3
45$ if $severity .ne. 1 then exit 3
46$
47$ backup/compare f.p ff.p1
48$ if $severity .ne. 1 then exit 3
49$ backup/compare f.p ff.p3
50$ if $severity .ne. 1 then exit 3
51$
52$ delete f.*;*,ff.*;*,fff.*;*
diff --git a/src/lib/libssl/test/treq.com b/src/lib/libssl/test/treq.com
new file mode 100644
index 0000000000..acf08b79ef
--- /dev/null
+++ b/src/lib/libssl/test/treq.com
@@ -0,0 +1,88 @@
1$! TREQ.COM -- Tests req keys
2$
3$ __arch = "VAX"
4$ if f$getsyi("cpu") .ge. 128 then -
5 __arch = f$edit( f$getsyi( "ARCH_NAME"), "UPCASE")
6$ if __arch .eqs. "" then __arch = "UNK"
7$!
8$ if (p2 .eqs. "64") then __arch = __arch+ "_64"
9$!
10$ exe_dir = "sys$disk:[-.''__arch'.exe.apps]"
11$
12$ cmd = "mcr ''exe_dir'openssl req -config [-.apps]openssl-vms.cnf"
13$
14$ t = "testreq.pem"
15$ if p1 .nes. "" then t = p1
16$
17$ write sys$output "testing req conversions"
18$ if f$search("fff.*") .nes "" then delete fff.*;*
19$ if f$search("ff.*") .nes "" then delete ff.*;*
20$ if f$search("f.*") .nes "" then delete f.*;*
21$ convert/fdl=sys$input: 't' fff.p
22RECORD
23 FORMAT STREAM_LF
24$
25$ write sys$output "p -> d"
26$ 'cmd' -in fff.p -inform p -outform d -out f.d
27$ if $severity .ne. 1 then exit 3
28$! write sys$output "p -> t"
29$! 'cmd' -in fff.p -inform p -outform t -out f.t
30$! if $severity .ne. 1 then exit 3
31$ write sys$output "p -> p"
32$ 'cmd' -in fff.p -inform p -outform p -out f.p
33$ if $severity .ne. 1 then exit 3
34$
35$ write sys$output "d -> d"
36$ 'cmd' -verify -in f.d -inform d -outform d -out ff.d1
37$ if $severity .ne. 1 then exit 3
38$! write sys$output "t -> d"
39$! 'cmd' -verify -in f.t -inform t -outform d -out ff.d2
40$! if $severity .ne. 1 then exit 3
41$ write sys$output "p -> d"
42$ 'cmd' -verify -in f.p -inform p -outform d -out ff.d3
43$ if $severity .ne. 1 then exit 3
44$
45$! write sys$output "d -> t"
46$! 'cmd' -in f.d -inform d -outform t -out ff.t1
47$! if $severity .ne. 1 then exit 3
48$! write sys$output "t -> t"
49$! 'cmd' -in f.t -inform t -outform t -out ff.t2
50$! if $severity .ne. 1 then exit 3
51$! write sys$output "p -> t"
52$! 'cmd' -in f.p -inform p -outform t -out ff.t3
53$! if $severity .ne. 1 then exit 3
54$
55$ write sys$output "d -> p"
56$ 'cmd' -in f.d -inform d -outform p -out ff.p1
57$ if $severity .ne. 1 then exit 3
58$! write sys$output "t -> p"
59$! 'cmd' -in f.t -inform t -outform p -out ff.p2
60$! if $severity .ne. 1 then exit 3
61$ write sys$output "p -> p"
62$ 'cmd' -in f.p -inform p -outform p -out ff.p3
63$ if $severity .ne. 1 then exit 3
64$
65$ backup/compare fff.p f.p
66$ if $severity .ne. 1 then exit 3
67$ backup/compare fff.p ff.p1
68$ if $severity .ne. 1 then exit 3
69$! backup/compare fff.p ff.p2
70$! if $severity .ne. 1 then exit 3
71$ backup/compare fff.p ff.p3
72$ if $severity .ne. 1 then exit 3
73$
74$! backup/compare f.t ff.t1
75$! if $severity .ne. 1 then exit 3
76$! backup/compare f.t ff.t2
77$! if $severity .ne. 1 then exit 3
78$! backup/compare f.t ff.t3
79$! if $severity .ne. 1 then exit 3
80$
81$ backup/compare f.p ff.p1
82$ if $severity .ne. 1 then exit 3
83$! backup/compare f.p ff.p2
84$! if $severity .ne. 1 then exit 3
85$ backup/compare f.p ff.p3
86$ if $severity .ne. 1 then exit 3
87$
88$ delete f.*;*,ff.*;*,fff.*;*
diff --git a/src/lib/libssl/test/trsa.com b/src/lib/libssl/test/trsa.com
new file mode 100644
index 0000000000..54180843ee
--- /dev/null
+++ b/src/lib/libssl/test/trsa.com
@@ -0,0 +1,99 @@
1$! TRSA.COM -- Tests rsa keys
2$
3$ __arch = "VAX"
4$ if f$getsyi("cpu") .ge. 128 then -
5 __arch = f$edit( f$getsyi( "ARCH_NAME"), "UPCASE")
6$ if __arch .eqs. "" then __arch = "UNK"
7$!
8$ if (p2 .eqs. "64") then __arch = __arch+ "_64"
9$!
10$ exe_dir = "sys$disk:[-.''__arch'.exe.apps]"
11$
12$ set noon
13$ define/user sys$output nla0:
14$ mcr 'exe_dir'openssl no-rsa
15$ save_severity=$SEVERITY
16$ set on
17$ if save_severity
18$ then
19$ write sys$output "skipping RSA conversion test"
20$ exit
21$ endif
22$
23$ cmd = "mcr ''exe_dir'openssl rsa"
24$
25$ t = "testrsa.pem"
26$ if p1 .nes. "" then t = p1
27$
28$ write sys$output "testing RSA conversions"
29$ if f$search("fff.*") .nes "" then delete fff.*;*
30$ if f$search("ff.*") .nes "" then delete ff.*;*
31$ if f$search("f.*") .nes "" then delete f.*;*
32$ convert/fdl=sys$input: 't' fff.p
33RECORD
34 FORMAT STREAM_LF
35$
36$ write sys$output "p -> d"
37$ 'cmd' -in fff.p -inform p -outform d -out f.d
38$ if $severity .ne. 1 then exit 3
39$! write sys$output "p -> t"
40$! 'cmd' -in fff.p -inform p -outform t -out f.t
41$! if $severity .ne. 1 then exit 3
42$ write sys$output "p -> p"
43$ 'cmd' -in fff.p -inform p -outform p -out f.p
44$ if $severity .ne. 1 then exit 3
45$
46$ write sys$output "d -> d"
47$ 'cmd' -in f.d -inform d -outform d -out ff.d1
48$ if $severity .ne. 1 then exit 3
49$! write sys$output "t -> d"
50$! 'cmd' -in f.t -inform t -outform d -out ff.d2
51$! if $severity .ne. 1 then exit 3
52$ write sys$output "p -> d"
53$ 'cmd' -in f.p -inform p -outform d -out ff.d3
54$ if $severity .ne. 1 then exit 3
55$
56$! write sys$output "d -> t"
57$! 'cmd' -in f.d -inform d -outform t -out ff.t1
58$! if $severity .ne. 1 then exit 3
59$! write sys$output "t -> t"
60$! 'cmd' -in f.t -inform t -outform t -out ff.t2
61$! if $severity .ne. 1 then exit 3
62$! write sys$output "p -> t"
63$! 'cmd' -in f.p -inform p -outform t -out ff.t3
64$! if $severity .ne. 1 then exit 3
65$
66$ write sys$output "d -> p"
67$ 'cmd' -in f.d -inform d -outform p -out ff.p1
68$ if $severity .ne. 1 then exit 3
69$! write sys$output "t -> p"
70$! 'cmd' -in f.t -inform t -outform p -out ff.p2
71$! if $severity .ne. 1 then exit 3
72$ write sys$output "p -> p"
73$ 'cmd' -in f.p -inform p -outform p -out ff.p3
74$ if $severity .ne. 1 then exit 3
75$
76$ backup/compare fff.p f.p
77$ if $severity .ne. 1 then exit 3
78$ backup/compare fff.p ff.p1
79$ if $severity .ne. 1 then exit 3
80$! backup/compare fff.p ff.p2
81$! if $severity .ne. 1 then exit 3
82$ backup/compare fff.p ff.p3
83$ if $severity .ne. 1 then exit 3
84$
85$! backup/compare f.t ff.t1
86$! if $severity .ne. 1 then exit 3
87$! backup/compare f.t ff.t2
88$! if $severity .ne. 1 then exit 3
89$! backup/compare f.t ff.t3
90$! if $severity .ne. 1 then exit 3
91$
92$ backup/compare f.p ff.p1
93$ if $severity .ne. 1 then exit 3
94$! backup/compare f.p ff.p2
95$! if $severity .ne. 1 then exit 3
96$ backup/compare f.p ff.p3
97$ if $severity .ne. 1 then exit 3
98$
99$ delete f.*;*,ff.*;*,fff.*;*
diff --git a/src/lib/libssl/test/tsid.com b/src/lib/libssl/test/tsid.com
new file mode 100644
index 0000000000..b6c4e49473
--- /dev/null
+++ b/src/lib/libssl/test/tsid.com
@@ -0,0 +1,88 @@
1$! TSID.COM -- Tests sid keys
2$
3$ __arch = "VAX"
4$ if f$getsyi("cpu") .ge. 128 then -
5 __arch = f$edit( f$getsyi( "ARCH_NAME"), "UPCASE")
6$ if __arch .eqs. "" then __arch = "UNK"
7$!
8$ if (p2 .eqs. "64") then __arch = __arch+ "_64"
9$!
10$ exe_dir = "sys$disk:[-.''__arch'.exe.apps]"
11$
12$ cmd = "mcr ''exe_dir'openssl sess_id"
13$
14$ t = "testsid.pem"
15$ if p1 .nes. "" then t = p1
16$
17$ write sys$output "testing session-id conversions"
18$ if f$search("fff.*") .nes "" then delete fff.*;*
19$ if f$search("ff.*") .nes "" then delete ff.*;*
20$ if f$search("f.*") .nes "" then delete f.*;*
21$ convert/fdl=sys$input: 't' fff.p
22RECORD
23 FORMAT STREAM_LF
24$
25$ write sys$output "p -> d"
26$ 'cmd' -in fff.p -inform p -outform d -out f.d
27$ if $severity .ne. 1 then exit 3
28$! write sys$output "p -> t"
29$! 'cmd' -in fff.p -inform p -outform t -out f.t
30$! if $severity .ne. 1 then exit 3
31$ write sys$output "p -> p"
32$ 'cmd' -in fff.p -inform p -outform p -out f.p
33$ if $severity .ne. 1 then exit 3
34$
35$ write sys$output "d -> d"
36$ 'cmd' -in f.d -inform d -outform d -out ff.d1
37$ if $severity .ne. 1 then exit 3
38$! write sys$output "t -> d"
39$! 'cmd' -in f.t -inform t -outform d -out ff.d2
40$! if $severity .ne. 1 then exit 3
41$ write sys$output "p -> d"
42$ 'cmd' -in f.p -inform p -outform d -out ff.d3
43$ if $severity .ne. 1 then exit 3
44$
45$! write sys$output "d -> t"
46$! 'cmd' -in f.d -inform d -outform t -out ff.t1
47$! if $severity .ne. 1 then exit 3
48$! write sys$output "t -> t"
49$! 'cmd' -in f.t -inform t -outform t -out ff.t2
50$! if $severity .ne. 1 then exit 3
51$! write sys$output "p -> t"
52$! 'cmd' -in f.p -inform p -outform t -out ff.t3
53$! if $severity .ne. 1 then exit 3
54$
55$ write sys$output "d -> p"
56$ 'cmd' -in f.d -inform d -outform p -out ff.p1
57$ if $severity .ne. 1 then exit 3
58$! write sys$output "t -> p"
59$! 'cmd' -in f.t -inform t -outform p -out ff.p2
60$! if $severity .ne. 1 then exit 3
61$ write sys$output "p -> p"
62$ 'cmd' -in f.p -inform p -outform p -out ff.p3
63$ if $severity .ne. 1 then exit 3
64$
65$ backup/compare fff.p f.p
66$ if $severity .ne. 1 then exit 3
67$ backup/compare fff.p ff.p1
68$ if $severity .ne. 1 then exit 3
69$! backup/compare fff.p ff.p2
70$! if $severity .ne. 1 then exit 3
71$ backup/compare fff.p ff.p3
72$ if $severity .ne. 1 then exit 3
73$
74$! backup/compare f.t ff.t1
75$! if $severity .ne. 1 then exit 3
76$! backup/compare f.t ff.t2
77$! if $severity .ne. 1 then exit 3
78$! backup/compare f.t ff.t3
79$! if $severity .ne. 1 then exit 3
80$
81$ backup/compare f.p ff.p1
82$ if $severity .ne. 1 then exit 3
83$! backup/compare f.p ff.p2
84$! if $severity .ne. 1 then exit 3
85$ backup/compare f.p ff.p3
86$ if $severity .ne. 1 then exit 3
87$
88$ delete f.*;*,ff.*;*,fff.*;*
diff --git a/src/lib/libssl/test/tverify.com b/src/lib/libssl/test/tverify.com
new file mode 100644
index 0000000000..d888344637
--- /dev/null
+++ b/src/lib/libssl/test/tverify.com
@@ -0,0 +1,65 @@
1$! TVERIFY.COM
2$
3$ __arch = "VAX"
4$ if f$getsyi("cpu") .ge. 128 then -
5 __arch = f$edit( f$getsyi( "ARCH_NAME"), "UPCASE")
6$ if __arch .eqs. "" then __arch = "UNK"
7$!
8$ if (p1 .eqs. "64") then __arch = __arch+ "_64"
9$!
10$ line_max = 255 ! Could be longer on modern non-VAX.
11$ temp_file_name = "certs_"+ f$getjpi( "", "PID")+ ".tmp"
12$ exe_dir = "sys$disk:[-.''__arch'.exe.apps]"
13$ cmd = "mcr ''exe_dir'openssl verify ""-CAfile"" ''temp_file_name'"
14$ cmd_len = f$length( cmd)
15$ pems = "[-.certs...]*.pem"
16$!
17$! Concatenate all the certificate files.
18$!
19$ copy /concatenate 'pems' 'temp_file_name'
20$!
21$! Loop through all the certificate files.
22$!
23$ args = ""
24$ old_f = ""
25$ loop_file:
26$ f = f$search( pems)
27$ if ((f .nes. "") .and. (f .nes. old_f))
28$ then
29$ old_f = f
30$!
31$! If this file name would over-extend the command line, then
32$! run the command now.
33$!
34$ if (cmd_len+ f$length( args)+ 1+ f$length( f) .gt. line_max)
35$ then
36$ if (args .eqs. "") then goto disaster
37$ 'cmd''args'
38$ args = ""
39$ endif
40$! Add the next file to the argument list.
41$ args = args+ " "+ f
42$ else
43$! No more files in the list
44$ goto loop_file_end
45$ endif
46$ goto loop_file
47$ loop_file_end:
48$!
49$! Run the command for any left-over arguments.
50$!
51$ if (args .nes. "")
52$ then
53$ 'cmd''args'
54$ endif
55$!
56$! Delete the temporary file.
57$!
58$ if (f$search( "''temp_file_name';*") .nes. "") then -
59 delete 'temp_file_name';*
60$!
61$ exit
62$!
63$ disaster:
64$ write sys$output " Command line too long. Doomed."
65$!
diff --git a/src/lib/libssl/test/tx509.com b/src/lib/libssl/test/tx509.com
new file mode 100644
index 0000000000..93ce988b41
--- /dev/null
+++ b/src/lib/libssl/test/tx509.com
@@ -0,0 +1,88 @@
1$! TX509.COM -- Tests x509 certificates
2$
3$ __arch = "VAX"
4$ if f$getsyi("cpu") .ge. 128 then -
5 __arch = f$edit( f$getsyi( "ARCH_NAME"), "UPCASE")
6$ if __arch .eqs. "" then __arch = "UNK"
7$!
8$ if (p2 .eqs. "64") then __arch = __arch+ "_64"
9$!
10$ exe_dir = "sys$disk:[-.''__arch'.exe.apps]"
11$
12$ cmd = "mcr ''exe_dir'openssl x509"
13$
14$ t = "testx509.pem"
15$ if p1 .nes. "" then t = p1
16$
17$ write sys$output "testing X509 conversions"
18$ if f$search("fff.*") .nes "" then delete fff.*;*
19$ if f$search("ff.*") .nes "" then delete ff.*;*
20$ if f$search("f.*") .nes "" then delete f.*;*
21$ convert/fdl=sys$input: 't' fff.p
22RECORD
23 FORMAT STREAM_LF
24$
25$ write sys$output "p -> d"
26$ 'cmd' -in fff.p -inform p -outform d -out f.d
27$ if $severity .ne. 1 then exit 3
28$ write sys$output "p -> n"
29$ 'cmd' -in fff.p -inform p -outform n -out f.n
30$ if $severity .ne. 1 then exit 3
31$ write sys$output "p -> p"
32$ 'cmd' -in fff.p -inform p -outform p -out f.p
33$ if $severity .ne. 1 then exit 3
34$
35$ write sys$output "d -> d"
36$ 'cmd' -in f.d -inform d -outform d -out ff.d1
37$ if $severity .ne. 1 then exit 3
38$ write sys$output "n -> d"
39$ 'cmd' -in f.n -inform n -outform d -out ff.d2
40$ if $severity .ne. 1 then exit 3
41$ write sys$output "p -> d"
42$ 'cmd' -in f.p -inform p -outform d -out ff.d3
43$ if $severity .ne. 1 then exit 3
44$
45$ write sys$output "d -> n"
46$ 'cmd' -in f.d -inform d -outform n -out ff.n1
47$ if $severity .ne. 1 then exit 3
48$ write sys$output "n -> n"
49$ 'cmd' -in f.n -inform n -outform n -out ff.n2
50$ if $severity .ne. 1 then exit 3
51$ write sys$output "p -> n"
52$ 'cmd' -in f.p -inform p -outform n -out ff.n3
53$ if $severity .ne. 1 then exit 3
54$
55$ write sys$output "d -> p"
56$ 'cmd' -in f.d -inform d -outform p -out ff.p1
57$ if $severity .ne. 1 then exit 3
58$ write sys$output "n -> p"
59$ 'cmd' -in f.n -inform n -outform p -out ff.p2
60$ if $severity .ne. 1 then exit 3
61$ write sys$output "p -> p"
62$ 'cmd' -in f.p -inform p -outform p -out ff.p3
63$ if $severity .ne. 1 then exit 3
64$
65$ backup/compare fff.p f.p
66$ if $severity .ne. 1 then exit 3
67$ backup/compare fff.p ff.p1
68$ if $severity .ne. 1 then exit 3
69$ backup/compare fff.p ff.p2
70$ if $severity .ne. 1 then exit 3
71$ backup/compare fff.p ff.p3
72$ if $severity .ne. 1 then exit 3
73$
74$ backup/compare f.n ff.n1
75$ if $severity .ne. 1 then exit 3
76$ backup/compare f.n ff.n2
77$ if $severity .ne. 1 then exit 3
78$ backup/compare f.n ff.n3
79$ if $severity .ne. 1 then exit 3
80$
81$ backup/compare f.p ff.p1
82$ if $severity .ne. 1 then exit 3
83$ backup/compare f.p ff.p2
84$ if $severity .ne. 1 then exit 3
85$ backup/compare f.p ff.p3
86$ if $severity .ne. 1 then exit 3
87$
88$ delete f.*;*,ff.*;*,fff.*;*