1$         ! OpenSSL Internal Verification Procedure
2$         !
3$         ! This script checks the consistency of a OpenSSL installation
4$         ! It had better be spawned, as it creates process logicals
5$
6$         ! Generated information
7$         INSTALLTOP := {- $config{INSTALLTOP} -}
8$         OPENSSLDIR := {- $config{OPENSSLDIR} -}
9$
10$         ! Make sure that INSTALLTOP and OPENSSLDIR become something one
11$         ! can use to call the startup procedure
12$         INSTALLTOP_ = F$PARSE("A.;",INSTALLTOP,,,"NO_CONCEAL") -
13                         - ".][000000" - "[000000." - "][" - "]A.;" + "."
14$         OPENSSLDIR_ = F$PARSE("A.;",OPENSSLDIR,,,"NO_CONCEAL") -
15                         - ".][000000" - "[000000." - "][" - "]A.;" + "."
16$
17$         v    := {- sprintf "%02d", split(/\./, $config{version}) -}
18$         pz   := {- $target{pointer_size} -}
19$
20$         @'INSTALLTOP_'SYS$STARTUP]openssl_startup'v'
21$         @'INSTALLTOP_'SYS$STARTUP]openssl_utils'v'
22$
23$         IF F$SEARCH("OSSL$LIBCRYPTO''pz'") .EQS. "" -
24           .OR. F$SEARCH("OSSL$LIBSSL''pz'") .EQS. "" {- output_off() if $disabled{shared}; "" -}-
25           .OR. F$SEARCH("OSSL$LIBCRYPTO_SHR''pz'") .EQS. "" -
26           .OR. F$SEARCH("OSSL$LIBSSL_SHR''pz'") .EQS. "" {- output_on() if $disabled{shared}; "" -}-
27           .OR. F$SEARCH("OSSL$INCLUDE:[OPENSSL]crypto.h") .EQS. "" -
28           .OR. F$SEARCH("OPENSSL:crypto.h") .EQS. "" -
29           .OR. F$SEARCH("OSSL$EXE:OPENSSL''v'.EXE") .EQS. ""
30$         THEN
31$             WRITE SYS$ERROR "Installation inconsistent"
32$             EXIT %x00018292 ! RMS$_FNF, file not found
33$         ENDIF
34$
35$         ON ERROR THEN GOTO error
36$
37$         ! If something else is wrong with the installation, we're likely
38$         ! to get an image activation error here
39$         openssl version -a
40$
41$         ! FUTURE ENHANCEMENT: Verify that engines are where they should be.
42$         ! openssl engine -c -t checker
43$
44$         ! Verify that the built in providers are reachable.  If they aren't,
45$         ! then we're likely to get an image activation error here
46$         openssl list -provider base -providers
47$         openssl list -provider default -providers
48$         openssl list -provider legacy -providers
49$
50$         WRITE SYS$ERROR "OpenSSL IVP passed"
51$         EXIT %x10000001
52$
53$ error:
54$         save_status = $STATUS
55$         WRITE SYS$ERROR "OpenSSL IVP failed"
56$         EXIT 'save_status'
57