1*62c56f98SSadaf Ebrahimi#!/usr/bin/env perl 2*62c56f98SSadaf Ebrahimi# 3*62c56f98SSadaf Ebrahimi# Copyright The Mbed TLS Contributors 4*62c56f98SSadaf Ebrahimi# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later 5*62c56f98SSadaf Ebrahimi 6*62c56f98SSadaf Ebrahimiuse strict; 7*62c56f98SSadaf Ebrahimiuse warnings; 8*62c56f98SSadaf Ebrahimi 9*62c56f98SSadaf Ebrahimiif (!@ARGV || $ARGV[0] == '--help') { 10*62c56f98SSadaf Ebrahimi print <<EOF; 11*62c56f98SSadaf EbrahimiUsage: $0 mbedtls_test_foo <file.pem 12*62c56f98SSadaf Ebrahimi $0 TEST_FOO mbedtls_test_foo <file.pem 13*62c56f98SSadaf EbrahimiPrint out a PEM file as C code defining a string constant. 14*62c56f98SSadaf Ebrahimi 15*62c56f98SSadaf EbrahimiUsed to include some of the test data in /library/certs.c for 16*62c56f98SSadaf Ebrahimiself-tests and sample programs. 17*62c56f98SSadaf EbrahimiEOF 18*62c56f98SSadaf Ebrahimi exit; 19*62c56f98SSadaf Ebrahimi} 20*62c56f98SSadaf Ebrahimi 21*62c56f98SSadaf Ebrahimimy $pp_name = @ARGV > 1 ? shift @ARGV : undef; 22*62c56f98SSadaf Ebrahimimy $name = shift @ARGV; 23*62c56f98SSadaf Ebrahimi 24*62c56f98SSadaf Ebrahimimy @lines = map {chomp; s/([\\"])/\\$1/g; "\"$_\\r\\n\""} <STDIN>; 25*62c56f98SSadaf Ebrahimi 26*62c56f98SSadaf Ebrahimiif (defined $pp_name) { 27*62c56f98SSadaf Ebrahimi foreach ("#define $pp_name", @lines[0..@lines-2]) { 28*62c56f98SSadaf Ebrahimi printf "%-72s\\\n", $_; 29*62c56f98SSadaf Ebrahimi } 30*62c56f98SSadaf Ebrahimi print "$lines[@lines-1]\n"; 31*62c56f98SSadaf Ebrahimi print "const char $name\[\] = $pp_name;\n"; 32*62c56f98SSadaf Ebrahimi} else { 33*62c56f98SSadaf Ebrahimi print "const char $name\[\] ="; 34*62c56f98SSadaf Ebrahimi foreach (@lines) { 35*62c56f98SSadaf Ebrahimi print "\n$_"; 36*62c56f98SSadaf Ebrahimi } 37*62c56f98SSadaf Ebrahimi print ";\n"; 38*62c56f98SSadaf Ebrahimi} 39