1#! /usr/bin/env perl 2# Copyright 2015-2021 The OpenSSL Project Authors. All Rights Reserved. 3# 4# Licensed under the Apache License 2.0 (the "License"). You may not use 5# this file except in compliance with the License. You can obtain a copy 6# in the file LICENSE in the source distribution or at 7# https://www.openssl.org/source/license.html 8 9 10use strict; 11use warnings; 12 13use File::Spec; 14use OpenSSL::Test qw/:DEFAULT srctop_file/; 15use OpenSSL::Test::Utils; 16 17setup("test_ec"); 18 19plan skip_all => 'EC is not supported in this build' if disabled('ec'); 20 21plan tests => 14; 22 23require_ok(srctop_file('test','recipes','tconversion.pl')); 24 25ok(run(test(["ectest"])), "running ectest"); 26 27# TODO: remove these when the 'ec' app is removed. 28# Also consider moving this to the 20-25 test section because it is testing 29# the command line tool in addition to the algorithm. 30subtest 'EC conversions -- private key' => sub { 31 tconversion( -type => 'ec', -prefix => 'ec-priv', 32 -in => srctop_file("test","testec-p256.pem") ); 33}; 34subtest 'EC conversions -- private key PKCS#8' => sub { 35 tconversion( -type => 'ec', -prefix => 'ec-pkcs8', 36 -in => srctop_file("test","testec-p256.pem"), 37 -args => "pkey" ); 38}; 39subtest 'EC conversions -- public key' => sub { 40 tconversion( -type => 'ec', -prefix => 'ec-pub', 41 -in => srctop_file("test","testecpub-p256.pem"), 42 -args => [ "ec", "-pubin", "-pubout" ] ); 43}; 44 45subtest 'PKEY conversions -- private key' => sub { 46 tconversion( -type => 'pkey', -prefix => 'ec-pkey-priv', 47 -in => srctop_file("test","testec-p256.pem") ); 48}; 49subtest 'PKEY conversions -- private key PKCS#8' => sub { 50 tconversion( -type => 'pkey', -prefix => 'ec-pkey-pkcs8', 51 -in => srctop_file("test","testec-p256.pem"), 52 -args => "pkey" ); 53}; 54subtest 'PKEY conversions -- public key' => sub { 55 tconversion( -type => 'pkey', -prefix => 'ec-pkey-pub', 56 -in => srctop_file("test","testecpub-p256.pem"), 57 -args => [ "pkey", "-pubin", "-pubout" ] ); 58}; 59 60subtest 'Ed25519 conversions -- private key' => sub { 61 tconversion( -type => "pkey", -prefix => "ed25519-pkey-priv", 62 -in => srctop_file("test", "tested25519.pem") ); 63}; 64subtest 'Ed25519 conversions -- private key PKCS#8' => sub { 65 tconversion( -type => "pkey", -prefix => "ed25519-pkey-pkcs8", 66 -in => srctop_file("test", "tested25519.pem"), 67 -args => ["pkey"] ); 68}; 69subtest 'Ed25519 conversions -- public key' => sub { 70 tconversion( -type => "pkey", -prefix => "ed25519-pkey-pub", 71 -in => srctop_file("test", "tested25519pub.pem"), 72 -args => ["pkey", "-pubin", "-pubout"] ); 73}; 74subtest 'Ed448 conversions -- private key' => sub { 75 tconversion( -type => "pkey", -prefix => "ed448-pkey-priv", 76 -in => srctop_file("test", "tested448.pem") ); 77}; 78subtest 'Ed448 conversions -- private key PKCS#8' => sub { 79 tconversion( -type => "pkey", -prefix => "ed448-pkey-pkcs8", 80 -in => srctop_file("test", "tested448.pem"), 81 -args => ["pkey"] ); 82}; 83subtest 'Ed448 conversions -- public key' => sub { 84 tconversion( -type => "pkey", -prefix => "ed448-pkey-pub", 85 -in => srctop_file("test", "tested448pub.pem"), 86 -args => ["pkey", "-pubin", "-pubout"] ); 87}; 88