From 497f3bf9a75a2917e50b16b7985e87c89b86a39b Mon Sep 17 00:00:00 2001 From: Richard Levitte Date: Tue, 13 Sep 2016 23:23:51 +0200 Subject: [PATCH] Add a test for 'openssl passwd' Also, enlarge test group 20 to include openssl commands that aren't tested otherwise Reviewed-by: Rich Salz --- test/README | 2 +- test/recipes/20-test_passwd.t | 38 +++++++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 test/recipes/20-test_passwd.t 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|; +} -- 2.40.0