1#!/usr/bin/perl -I.. 2# 22.10.1999, Sampo Kellomaki <sampo@iki.fi> 3# 4# Regression tests for smime command line tool. This also regression 5# tests the library to considerable extent. 6# 7# Usage: ./test-smime.pl [-fast] 8 9use filex; 10 11print "Tests will be done inside directory t$$\n"; 12mkdir "t$$", 0774 or die $!; 13 14if ($ARGV[0] eq '-fast') { 15 shift; 16 $fast = 1; 17} 18 19$|=1; 20$n = 11; 21 22filex::barf("t$$/dn$n", <<DN); 23countryName=PT 24organizationName=Universidade T�cnica de Lisboa 25organizationalUnitName=IST 26commonName=t$n 27emailAddress=t$n\@test.com 28DN 29 ; 30 31 32$attr = "description=t$n"; 33 34print "1. Keygen..."; 35system "./smime -kg '$attr' pw t$$/r$n.pem <t$$/dn$n >t$$/t$n.pem" and die $?; 36print "OK\n"; 37 38print "2. Make PKCS12..."; 39system "./smime -pem-p12 t$n\@test.com pw pw <t$$/t$n.pem >t$$/t$n.p12" 40 and die $?; 41print "OK\n"; 42 43print "3. Read PKCS12..."; 44system "./smime -p12-pem pw pw <t$$/t$n.p12 >t$$/tt$n.pem" and die $?; 45print "OK\n"; 46 47print "4. Certification Authority..."; 48system "./smime -ca t$$/t$n.pem pw $$ <t$$/r$n.pem >t$$/c$n.pem" and die $?; 49print "OK\n"; 50 51if ($fast) { 52 print "Skipping tests 5-9 on fast mode.\n"; 53} else { 54 print "5. Make multipart..."; 55 system "./smime -m application/octetstream smime <t$$/dn$n >t$$/m$n.mime" 56 and die $?; 57 print "OK\n"; 58 59 print "6. Clear sign..."; 60 system "./smime -cs t$$/tt$n.pem pw <t$$/m$n.mime >t$$/m$n.p7s" and die $?; 61 print "OK\n"; 62 63 print "7. Encrypt..."; 64 system "./smime -e t$$/tt$n.pem <t$$/m$n.p7s >t$$/m$n.p7m" and die $?; 65 print "OK\n"; 66 67 print "8. Decrypt..."; 68 system "./smime -d t$$/t$n.pem pw <t$$/m$n.p7m >t$$/mm$n.p7s" and die $?; 69 print "OK\n"; 70 71 print "9. Comparing plain texts..."; 72 system "diff t$$/m$n.p7s t$$/mm$n.p7s" and die $?; 73 print "OK\n"; 74} 75 76print "10. Sign..."; 77system "./smime -s t$$/tt$n.pem pw <t$$/dn$n >t$$/s$n.p7m" and die $?; 78print "OK\n"; 79 80print "11. Verify..."; 81system "./smime -v t$$/t$n.pem <t$$/s$n.p7m >t$$/ddn$n" and die $?; 82print "OK\n"; 83 84print "12. Comparing plain texts..."; 85system "diff -b t$$/dn$n t$$/ddn$n" and die $?; 86print "OK\n"; 87 88print "13. Query req..."; 89system "./smime -qr <t$$/r$n.pem >t$$/qr$n" and die $?; 90print "OK\n"; 91 92print "14. Query cert..."; 93system "./smime -qc <t$$/t$n.pem >t$$/qc$n" and die $?; 94print "OK\n"; 95 96print "15. Base64 encode..."; 97system "./smime -base64 <smime >t$$/f$n.b64" and die $?; 98print "OK\n"; 99 100print "16. Base64 decode..."; 101system "./smime -unbase64 <t$$/f$n.b64 >t$$/f$n" and die $?; 102print "OK\n"; 103 104print "17. Comparing files..."; 105system "cmp smime t$$/f$n" and die $?; 106print "OK\n"; 107 108print "18. Querying signature..."; 109system "./smime -qs <t$$/s$n.p7m" and die $?; 110print "OK\n"; 111 112print "19. Verifying certificate against CA cert..."; 113system "./smime -cv t$$/t$n.pem <t$$/t$n.pem" and die $?; 114print "OK\n"; 115 116#print "9. Checking clear sig..."; 117#system "./smime -cv <t$$/mm$n.p7s >t$$/sig-dn$n" and die $?; 118#print "OK\n"; 119 120if (0) { 121print "10. ..."; 122system "./smime" and die $?; 123print "OK\n"; 124} 125 126print "rm -rf t$$"; 127 128#EOF 129