t_netpgpkeys.sh revision 1.1
11.1Swiz#! /bin/sh
21.1Swiz
31.1Swiz# $NetBSD: t_netpgpkeys.sh,v 1.1 2026/01/23 20:57:10 wiz Exp $
41.1Swiz
51.1Swiz#
61.1Swiz# Copyright (c) 2026 The NetBSD Foundation, Inc.
71.1Swiz# All rights reserved.
81.1Swiz#
91.1Swiz# This code is derived from software contributed to The NetBSD Foundation
101.1Swiz# by Thomas Klausner <wiz@NetBSD.org>
111.1Swiz#
121.1Swiz# Redistribution and use in source and binary forms, with or without
131.1Swiz# modification, are permitted provided that the following conditions
141.1Swiz# are met:
151.1Swiz# 1. Redistributions of source code must retain the above copyright
161.1Swiz#    notice, this list of conditions and the following disclaimer.
171.1Swiz# 2. Redistributions in binary form must reproduce the above copyright
181.1Swiz#    notice, this list of conditions and the following disclaimer in the
191.1Swiz#    documentation and/or other materials provided with the distribution.
201.1Swiz#
211.1Swiz# THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
221.1Swiz# AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
231.1Swiz# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
241.1Swiz# PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
251.1Swiz# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
261.1Swiz# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
271.1Swiz# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
281.1Swiz# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
291.1Swiz# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
301.1Swiz# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
311.1Swiz# POSSIBILITY OF SUCH DAMAGE.
321.1Swiz#
331.1Swiz
341.1Swiz# Test set 1 (rsa key) for netpgpkeys
351.1Swizatf_test_case netpgpkeys_testset_1_rsa_keys
361.1Swiz
371.1Swiznetpgpkeys_testset_1_rsa_keys_head() {
381.1Swiz	atf_set "descr" "Test set 1 (rsa_keys) for netpgpkeys"
391.1Swiz}
401.1Swiznetpgpkeys_testset_1_rsa_keys_body() {
411.1Swiz        atf_expect_fail "PR bin/59936 - does not support keys generated by gnugp2"
421.1Swiz	uudecode << EOF
431.1Swizbegin-base64 664 testkey-rsa.pub
441.1SwizmQINBGlz2mABEADOhQSqLh3zpdtL5s25l6VG5S3EGYFixiSOX3qy+/GfZpAAmNni
451.1SwizQJwYPAMe6pyJ34/lJclmQu3yaxLfelLwb0feh0N0GWqfRGa5tVKrMxaz8S6FAAWQ
461.1Swizr17MUsXsqFHJiCqU3+5/70fn+3gPSS/KP+3s7GaXtYoXfuf0J1c/pfqy4OeY5OEf
471.1Swiz1KtF4mIFBCqF+fnrt1R66VQh8/WwS0052+s4EOcJzVi7qEiMB9A6dYVGYJ47HyNF
481.1SwizOiIm+jpUfUyZCbh0b7b/ZB1oMvGSiU5r+R5FGShBUOmMT5c6x+BRNizeCLWgwKA3
491.1Swiz5+/ecOoEaWwArIeKTHLyFmhIse6YdD7G4jIKVngLle+bR9RwfctO9iyB14m7nrfZ
501.1SwizcFsLW36JW7D2FsJTEA74FU02/tT9Mcr/UDr+ZMxewxPADLDPUX6l8EuG+8vWo+qK
511.1SwizAWs7r9f7Kwv/ZnY0Z+bhWwq6oGKauNn1pJqpfbJoeAobh9ynwnDFvxvXOPnuu2zS
521.1SwizzJIfIAzGM7p2XDtMg3D0WWul1/q6U8Rmie7iaroYsaPPcGf1KpGz8W3hSmRW4FZ6
531.1SwizddX47S2Sa5qF6ggwmF/KzWI60PXXUzf/fxk66YIjp4geAzXMM2n6i4jzFeLkg2Wh
541.1Swiz6+2zASMIGnsxlF+Sp01OcI6L51velWzC6UZQmBnKnX23mYbT0JUF4BPlhQARAQAB
551.1SwiztBZ0ZXN0IDx0ZXN0QE5ldEJTRC5vcmc+iQJRBBMBCAA7FiEEWFZ/P6oG3WjQHypk
561.1SwizZ1NP82elnLAFAmlz2mACGwMFCwkIBwICIgIGFQoJCAsCBBYCAwECHgcCF4AACgkQ
571.1SwizZ1NP82elnLBfXA/8DEaN4lQkt0L/iTpLFeSJ0p2XNW4wC6ABmg+HRPE0F7YYnnSm
581.1SwizLFy3xm3NOFy6bpw660nAi/Pv7KB1FAbMFd/F+KYT+kv6yhS/XVZSvL/RQrUdUDBJ
591.1SwizNIbwiD+Cp3J220EBviyh61R4f2SZRdYsJPS7Vo0J7S3lcJHMxBlTSVyo/SMPwdiE
601.1SwizJo5vOGh7QmuskmaHl6Cdnv9/k36DhVTvabCmgunGd3saaWaRoSI7uEnTR2qFKAVs
611.1Swiz0eB2AJQdrM5T7CmGn1KBQClV/3nzifuv4KDF3UDg3gKwEUoPjlmzVuF2BvXVpAH4
621.1SwizOPZq7GthLHNHgOvfzKn3A+/PAooHnWqsCN54GrloStbrR9B2BUzoo5DCmLp9wDJF
631.1SwizpWoWTFWOQbYmjNEjqJmS1iZv/dm2pTZbzqcYIEdKprj+Ua+Tw5qjC+0TVVoki4f+
641.1SwizuqfO2GQeJ5AthGwR5o8W9BYiRFL1ncR5YEXmpnZdjxiq6Ub0p8tz5UQyOip8hLen
651.1SwizJkGfBpxl9Wo+z3morTbJQ3z3gNuoey5O47tJE+FYmM3e9TilxJcqVjqAPFNjG6QD
661.1SwizWM19hA2G7Y0KRvokJun2zLeK4ZjGXbceQTp8Rwybd9EO4i7vdh6UTYaduDhKbS8B
671.1SwizkWwQcol8U4xbBPXB1/Ks+AsrCzmMAdKi4T9uNmILzec2F32N65I0T+T0PRO5Ag0E
681.1SwizaXPaYAEQAMFT9cLS7ED1SqLmNzmEC+CYcRyGzKXTtrL0hoSF/wCcAWGMrWBbMCg7
691.1Swizi4MmOrRY3WtNaWr6TZ6bz36kX+at7N3wzn6rAft2/NAmEAkNtBEddOyAMHQv1UL1
701.1Swizc4kQQ8qaGD5TF64Ga3E8a/gyCQ7j3/ftzvB8fKRG7m/bDlmVqw97L1HZoVh6qgLQ
711.1SwizfR7vZ7XzJ+aC4M1q2XZ4kcqoWtcYUfWSLSkS0t4qK/ea7wkYKykseBEd2yrNWKng
721.1SwizqYeLDZgbuJApQwEVWaI9T/0m46VmGaSvcU1UgpeGWRiiXAmH3R7eiFLzZF4zwc1Z
731.1SwizoXF6Y95+mlPbsfq2CKlbGq2QgE45ykv3z1h/MwpnAZCcu/y0RVmVqsROHiSjQTga
741.1SwizEKSlMYMj8kMFpCKPlPsOmQXqp9DFNEgFSNs+k6spPwCyP6O83vnSnkgQmk1eOwkd
751.1SwiztM7xDivlZlQKwWGyqqqIeoj4Qs4RLLvr9g02ZnzRpjpRd8xv6tF8et4JGdFpOyNu
761.1SwizxYJ67IZ5VCWOyPnvPFgVILQbhIjXVwFjTY+sQtxRaVUmw1dswx///PJI/EGmF4Rb
771.1Swizg4EUqqPvJjMXG6l4iG+LNd0KOzVu/YbLsWRJBKuSGZ8DrKCdyRi5e7oaNtcEJFnE
781.1SwizqXgc8XacWeAsTr5cTL0zqypoJcAWqh/qr/qcZ4wek1YXyud4E4k/ABEBAAGJAjYE
791.1SwizGAEIACAWIQRYVn8/qgbdaNAfKmRnU0/zZ6WcsAUCaXPaYAIbDAAKCRBnU0/zZ6Wc
801.1SwizsOY1EACe9olfRYIYrBhQoC8gHWoH9dzANEnKKzetPoxskEdiB3EqLl0fjV2rJ44M
811.1SwizygFc482JTOx4LAq/tfd6YHa0k9nvXvxIFndZ9xbB4lZkXVc0olNUFQ5j5OQIHeNF
821.1Swizm98MU167kvIhpAomVHIWaIZlNI4J5NesDgnvAJYaxl86bPeMR3z5O4NziE2OqWp6
831.1SwizGZTuMQAWl6IZlmHmfavizU/kiVPWh8lkiiUZaIolMIs/f1GrzXU/LCFfTP1nClic
841.1SwizmKiq22bNbeSH7GgnwvE+pBMf3M37Crlw7ftZ8ILTElYp5kHQ37Ov4gnOJOGMz41M
851.1Swizc5+pdHk2OKh0MZwElEUXTkSMNaU+bMK3fw/LKjlDbIaRUYaBha1ahATbm0lGsdy4
861.1Swiz3vVNqMWojnHKlnWkMRgpWs3Q1pMan1BtczB1tQtmid01pc/RqZqjfiac5qaeeJGi
871.1SwizaIZASR7DJ3TPHLvMm4hKuyxr/clEqEZCo94xVXVkeKrz76U0Bo34yteruZK8llpx
881.1Swizf4Q3IRqjtxl2weU6ko8WBUWtmh1fBhXEWLpAr0tHgcJE5XIWTtlk68t18nRCgF8x
891.1SwizIw0H82nu+zERxpKhu6xT4PcnOGinQtC7uaAKn6M9rLrOZT0Gus42w+d2ABuyECs7
901.1SwizUVuYOxUw6lXquwOl4WO37imwmqIhFuqQaVLlVCrhc1QRcnHZ0g==
911.1Swiz====
921.1SwizEOF
931.1Swiz	# TODO: fix netpgpkeys so it doesn't need an empty keyring
941.1Swiz	uudecode << EOF
951.1Swizbegin-base64 664 pubring.gpg
961.1Swiz====
971.1SwizEOF
981.1Swiz	# TODO: needs fixing once netpgpkeys accepts the key
991.1Swiz	uudecode << EOF
1001.1Swizbegin-base64 664 expected_rsa.out
1011.1Swiz====
1021.1SwizEOF
1031.1Swiz	atf_check -s exit:0 -o file:expected_rsa.out -e empty env TZ=US/Pacific netpgpkeys --keyring pubring.gpg --import-key testkey-rsa.pub
1041.1Swiz}
1051.1Swiz
1061.1Swiz# Test set 2 (elliptic curve keys) for netpgpkeys
1071.1Swizatf_test_case netpgpkeys_testset_2_ec_keys
1081.1Swiz
1091.1Swiznetpgpkeys_testset_2_ec_keys_head() {
1101.1Swiz	atf_set "descr" "Test set 2 (ec_keys) for netpgpkeys"
1111.1Swiz}
1121.1Swiznetpgpkeys_testset_2_ec_keys_body() {
1131.1Swiz        atf_expect_fail "PR bin/59936 - does not support keys generated by gnugp2 - dumps core for EC keys"
1141.1Swiz	uudecode << EOF
1151.1Swizbegin-base64 664 testkey-ec.pub
1161.1SwizmDMEaXPYGBYJKwYBBAHaRw8BAQdAJItrcRJ05uSrXI4pWRwwYBzcqq+DMVL951D6
1171.1SwizUta3t/m0FnRlc3QgPHRlc3RATmV0QlNELm9yZz6ImQQTFgoAQRYhBCSzfniW90FO
1181.1SwizSQjiiNqj8eXPHLOfBQJpc9gYAhsDBQkFo5qABQsJCAcCAiICBhUKCQgLAgQWAgMB
1191.1SwizAh4HAheAAAoJENqj8eXPHLOfgBQA/1dkSm8JHk1nKDbsAugPyEPhrCRXOdSPq/mH
1201.1Swizrjii7/M4AP0VteJ7uuxW7BNYNXQHaHokWVIrUaIjdybnB3SmCZnwBrg4BGlz2BgS
1211.1SwizCisGAQQBl1UBBQEBB0AoRgnCTqdaT7uCOLC/zzG0Ul15Sx36OxNBsYwBfrbkGwMB
1221.1SwizCAeIfgQYFgoAJhYhBCSzfniW90FOSQjiiNqj8eXPHLOfBQJpc9gYAhsMBQkFo5qA
1231.1SwizAAoJENqj8eXPHLOfGxkBAM+FmClSgZIon6yACCuhz8gSDtUAsaIhACG0tWVVYxaR
1241.1SwizAQCGIvbI0ZmcpPZ2ptYKiLxSfeOk1JigVxGG61Sy8k+oDg==
1251.1Swiz====
1261.1SwizEOF
1271.1Swiz	# TODO: fix netpgpkeys so it doesn't need an empty keyring
1281.1Swiz	uudecode << EOF
1291.1Swizbegin-base64 664 pubring.gpg
1301.1Swiz====
1311.1SwizEOF
1321.1Swiz	# TODO: needs fixing once netpgpkeys doesn't dump core
1331.1Swiz	uudecode << EOF
1341.1Swizbegin-base64 664 expected_ec.out
1351.1Swiz====
1361.1SwizEOF
1371.1Swiz	atf_check -s exit:0 -o file:expected_ec.out -e empty env TZ=US/Pacific netpgpkeys --keyring pubring.gpg --import-key testkey-ec.pub
1381.1Swiz}
1391.1Swiz
1401.1Swiz# all test sets
1411.1Swizatf_init_test_cases() {
1421.1Swiz	atf_add_test_case netpgpkeys_testset_1_rsa_keys
1431.1Swiz	atf_add_test_case netpgpkeys_testset_2_ec_keys
1441.1Swiz}
1451.1Swiz
146