diff options
author | Richard Levitte <levitte@openssl.org> | 2016-09-13 23:23:51 +0200 |
---|---|---|
committer | Richard Levitte <levitte@openssl.org> | 2016-09-14 00:30:50 +0200 |
commit | 497f3bf9a75a2917e50b16b7985e87c89b86a39b (patch) | |
tree | e8f386437ee1fa80c22a1d6c4395579972c05a25 /test | |
parent | 9f9f962d96425ed741569460791eee0280fcf942 (diff) |
Add a test for 'openssl passwd'
Also, enlarge test group 20 to include openssl commands that aren't
tested otherwise
Reviewed-by: Rich Salz <rsalz@openssl.org>
Diffstat (limited to 'test')
-rw-r--r-- | test/README | 2 | ||||
-rw-r--r-- | test/recipes/20-test_passwd.t | 38 |
2 files changed, 39 insertions, 1 deletions
diff --git a/test/README b/test/README index 34ef29a060..bca7ab830c 100644 --- a/test/README +++ b/test/README @@ -22,7 +22,7 @@ The number {nn} is (somewhat loosely) grouped as follows: 05 individual symmetric cipher algorithms 10 math (bignum) 15 individual asymmetric cipher algorithms -20 openssl enc +20 openssl commands (some otherwise not tested) 25 certificate forms, generation and verification 30 engine and evp 70 PACKET layer diff --git a/test/recipes/20-test_passwd.t b/test/recipes/20-test_passwd.t new file mode 100644 index 0000000000..68169ac473 --- /dev/null +++ b/test/recipes/20-test_passwd.t @@ -0,0 +1,38 @@ +#! /usr/bin/env perl +# Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved. +# +# Licensed under the OpenSSL license (the "License"). You may not use +# this file except in compliance with the License. You can obtain a copy +# in the file LICENSE in the source distribution or at +# https://www.openssl.org/source/license.html + + +use strict; +use warnings; + +use OpenSSL::Test; + +setup("test_passwd"); + +plan tests => 6; + +ok(compare1stline([qw{openssl passwd password}], '^.{13}\R$'), + 'crypt password with random salt'); +ok(compare1stline([qw{openssl passwd -1 password}], '^\$1\$.{8}\$.{22}\R$'), + 'BSD style MD5 password with random salt'); +ok(compare1stline([qw{openssl passwd -apr1 password}], '^\$apr1\$.{8}\$.{22}\R$'), + 'Apache style MD5 password with random salt'); +ok(compare1stline([qw{openssl passwd -salt xx password}], '^xxj31ZMTZzkVA\R$'), + 'crypt password with salt xx'); +ok(compare1stline([qw{openssl passwd -salt xxxxxxxx -1 password}], '^\$1\$xxxxxxxx\$UYCIxa628\.9qXjpQCjM4a\.\R$'), + 'BSD style MD5 password with salt xxxxxxxx'); +ok(compare1stline([qw{openssl passwd -salt xxxxxxxx -apr1 password}], '^\$apr1\$xxxxxxxx\$dxHfLAsjHkDRmG83UXe8K0\R$'), + 'Apache style MD5 password with salt xxxxxxxx'); + + +sub compare1stline { + my ($cmdarray, $regexp) = @_; + my @lines = run(app($cmdarray), capture => 1); + + return $lines[0] =~ m|$regexp|; +} |