1e1051a39Sopenharmony_ci#! /usr/bin/env perl 2e1051a39Sopenharmony_ci# Copyright 2023 The OpenSSL Project Authors. All Rights Reserved. 3e1051a39Sopenharmony_ci# 4e1051a39Sopenharmony_ci# Licensed under the Apache License 2.0 (the "License"). You may not use 5e1051a39Sopenharmony_ci# this file except in compliance with the License. You can obtain a copy 6e1051a39Sopenharmony_ci# in the file LICENSE in the source distribution or at 7e1051a39Sopenharmony_ci# https://www.openssl.org/source/license.html 8e1051a39Sopenharmony_ci 9e1051a39Sopenharmony_ci 10e1051a39Sopenharmony_ciuse strict; 11e1051a39Sopenharmony_ciuse warnings; 12e1051a39Sopenharmony_ci 13e1051a39Sopenharmony_ciuse POSIX; 14e1051a39Sopenharmony_ciuse OpenSSL::Test qw/:DEFAULT srctop_file with data_file/; 15e1051a39Sopenharmony_ci 16e1051a39Sopenharmony_ciuse OpenSSL::Test::Utils; 17e1051a39Sopenharmony_ciuse OpenSSL::Glob; 18e1051a39Sopenharmony_ci 19e1051a39Sopenharmony_cisetup("test_policy_tree"); 20e1051a39Sopenharmony_ci 21e1051a39Sopenharmony_ciplan skip_all => "No EC support" if disabled("ec"); 22e1051a39Sopenharmony_ci 23e1051a39Sopenharmony_ciplan tests => 2; 24e1051a39Sopenharmony_ci 25e1051a39Sopenharmony_ci# The small pathological tree is expected to work 26e1051a39Sopenharmony_cimy $small_chain = srctop_file("test", "recipes", "80-test_policy_tree_data", 27e1051a39Sopenharmony_ci "small_policy_tree.pem"); 28e1051a39Sopenharmony_cimy $small_leaf = srctop_file("test", "recipes", "80-test_policy_tree_data", 29e1051a39Sopenharmony_ci "small_leaf.pem"); 30e1051a39Sopenharmony_ci 31e1051a39Sopenharmony_ciok(run(app(["openssl", "verify", "-CAfile", $small_chain, 32e1051a39Sopenharmony_ci "-policy_check", $small_leaf])), 33e1051a39Sopenharmony_ci "test small policy tree"); 34e1051a39Sopenharmony_ci 35e1051a39Sopenharmony_ci# The large pathological tree is expected to fail 36e1051a39Sopenharmony_cimy $large_chain = srctop_file("test", "recipes", "80-test_policy_tree_data", 37e1051a39Sopenharmony_ci "large_policy_tree.pem"); 38e1051a39Sopenharmony_cimy $large_leaf = srctop_file("test", "recipes", "80-test_policy_tree_data", 39e1051a39Sopenharmony_ci "large_leaf.pem"); 40e1051a39Sopenharmony_ci 41e1051a39Sopenharmony_ciok(!run(app(["openssl", "verify", "-CAfile", $large_chain, 42e1051a39Sopenharmony_ci "-policy_check", $large_leaf])), 43e1051a39Sopenharmony_ci "test large policy tree"); 44