1*b7c941bbSAndroid Build Coastguard Worker// Copyright (C) 2023 The Android Open Source Project 2*b7c941bbSAndroid Build Coastguard Worker// 3*b7c941bbSAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License"); 4*b7c941bbSAndroid Build Coastguard Worker// you may not use this file except in compliance with the License. 5*b7c941bbSAndroid Build Coastguard Worker// You may obtain a copy of the License at 6*b7c941bbSAndroid Build Coastguard Worker// 7*b7c941bbSAndroid Build Coastguard Worker// http://www.apache.org/licenses/LICENSE-2.0 8*b7c941bbSAndroid Build Coastguard Worker// 9*b7c941bbSAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software 10*b7c941bbSAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS, 11*b7c941bbSAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12*b7c941bbSAndroid Build Coastguard Worker// See the License for the specific language governing permissions and 13*b7c941bbSAndroid Build Coastguard Worker// limitations under the License. 14*b7c941bbSAndroid Build Coastguard Worker 15*b7c941bbSAndroid Build Coastguard Workerpackage main 16*b7c941bbSAndroid Build Coastguard Worker 17*b7c941bbSAndroid Build Coastguard Workerimport ( 18*b7c941bbSAndroid Build Coastguard Worker "android.com/libcore/certutil" 19*b7c941bbSAndroid Build Coastguard Worker "crypto/x509" 20*b7c941bbSAndroid Build Coastguard Worker "path/filepath" 21*b7c941bbSAndroid Build Coastguard Worker) 22*b7c941bbSAndroid Build Coastguard Worker 23*b7c941bbSAndroid Build Coastguard Worker// Build the required certs for X509CertChainBuildingTest. 24*b7c941bbSAndroid Build Coastguard Worker// See that class for the requirements. 25*b7c941bbSAndroid Build Coastguard Workerfunc main() { 26*b7c941bbSAndroid Build Coastguard Worker a := certutil.NewCA("Root A") 27*b7c941bbSAndroid Build Coastguard Worker b := certutil.NewCA("Root B") 28*b7c941bbSAndroid Build Coastguard Worker intermediate := certutil.NewCA("intermediate") 29*b7c941bbSAndroid Build Coastguard Worker leaf1 := certutil.NewEntity("Leaf") 30*b7c941bbSAndroid Build Coastguard Worker leaf2 := certutil.NewEntity("Leaf 2") 31*b7c941bbSAndroid Build Coastguard Worker 32*b7c941bbSAndroid Build Coastguard Worker outdir := "assets/path_building/" 33*b7c941bbSAndroid Build Coastguard Worker a.SignToPEM(a, filepath.Join(outdir, "a")) 34*b7c941bbSAndroid Build Coastguard Worker a.SignWithAlgorithmToPEM(a, x509.ECDSAWithSHA1, filepath.Join(outdir, "a_sha1")) 35*b7c941bbSAndroid Build Coastguard Worker b.SignToPEM(b, filepath.Join(outdir, "b")) 36*b7c941bbSAndroid Build Coastguard Worker 37*b7c941bbSAndroid Build Coastguard Worker a.SignToPEM(b, filepath.Join(outdir, "b_to_a")) 38*b7c941bbSAndroid Build Coastguard Worker b.SignToPEM(a, filepath.Join(outdir, "a_to_b")) 39*b7c941bbSAndroid Build Coastguard Worker 40*b7c941bbSAndroid Build Coastguard Worker a.SignToPEM(leaf1, filepath.Join(outdir, "leaf1")) 41*b7c941bbSAndroid Build Coastguard Worker 42*b7c941bbSAndroid Build Coastguard Worker a.SignToPEM(intermediate, filepath.Join(outdir, "intermediate_a")) 43*b7c941bbSAndroid Build Coastguard Worker b.SignToPEM(intermediate, filepath.Join(outdir, "intermediate_b")) 44*b7c941bbSAndroid Build Coastguard Worker 45*b7c941bbSAndroid Build Coastguard Worker intermediate.SignToPEM(leaf2, outdir+"leaf2") 46*b7c941bbSAndroid Build Coastguard Worker} 47