Skip to content

Commit

Permalink
Add a test for pkeyutl encrypt/decrypt using SM2
Browse files Browse the repository at this point in the history
Reviewed-by: Hugo Landau <hlandau@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Paul Dale <pauli@openssl.org>
(Merged from #21272)

(cherry picked from commit 810f7dc)
  • Loading branch information
mattcaswell committed Jun 26, 2023
1 parent 8ebc734 commit e64f67e
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 2 deletions.
4 changes: 4 additions & 0 deletions test/certs/sm2-pub.key
@@ -0,0 +1,4 @@
-----BEGIN PUBLIC KEY-----
MFkwEwYHKoZIzj0CAQYIKoEcz1UBgi0DQgAEMKnjZFqe34rtSmZ7g5ALnKTPKYhM
xEy9cpq3Kzgb7/JoTTZHm9tGrG1oBUCNszq0jPff7Fxp/azNv7rDPzJXGg==
-----END PUBLIC KEY-----
17 changes: 15 additions & 2 deletions test/recipes/20-test_pkeyutl.t
Expand Up @@ -13,15 +13,16 @@ use File::Spec;
use File::Basename;
use OpenSSL::Test qw/:DEFAULT srctop_file ok_nofips/;
use OpenSSL::Test::Utils;
use File::Compare qw/compare_text/;

setup("test_pkeyutl");

plan tests => 12;
plan tests => 14;

# For the tests below we use the cert itself as the TBS file

SKIP: {
skip "Skipping tests that require EC, SM2 or SM3", 2
skip "Skipping tests that require EC, SM2 or SM3", 4
if disabled("ec") || disabled("sm2") || disabled("sm3");

# SM2
Expand All @@ -38,6 +39,18 @@ SKIP: {
'-sigfile', 'sm2.sig', '-rawin',
'-digest', 'sm3', '-pkeyopt', 'distid:someid']))),
"Verify an SM2 signature against a piece of data");
ok_nofips(run(app(([ 'openssl', 'pkeyutl', '-encrypt',
'-in', srctop_file('test', 'data2.bin'),
'-inkey', srctop_file('test', 'certs', 'sm2-pub.key'),
'-pubin', '-out', 'sm2.enc']))),
"Encrypt a piece of data using SM2");
ok_nofips(run(app(([ 'openssl', 'pkeyutl', '-decrypt',
'-in', 'sm2.enc',
'-inkey', srctop_file('test', 'certs', 'sm2.key'),
'-out', 'sm2.dat'])))
&& compare_text('sm2.dat',
srctop_file('test', 'data2.bin')) == 0,
"Decrypt a piece of data using SM2");
}

SKIP: {
Expand Down

0 comments on commit e64f67e

Please sign in to comment.