• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2024 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #include <cstddef>
17 #include <cstdint>
18 #include <cstdio>
19 #include "params_run_tool.h"
20 
21 namespace OHOS {
22 namespace SignatureTools {
GenerateAppCertTest2()23 bool GenerateAppCertTest2()
24 {
25     char arg0[] = "";
26     char arg1[] = "generate-app-cert";
27     char arg2[] = "-keyAlias";
28     char arg3[] = "oh-app1-key-v1";
29     char arg4[] = "-keyPwd";
30     char arg5[] = "123456";
31     char arg6[] = "-issuer";
32     char arg7[] = "C=CN;O=OpenHarmony;OU=OpenHarmony Community;CN=Application Signature Service CA";
33     char arg8[] = "-issuerKeyAlias";
34     char arg9[] = "oh-app-sign-srv-ca-key-v1";
35     char arg10[] = "-subject";
36     char arg11[] = "C=CN;O=OpenHarmony;OU=OpenHarmony Community;CN=App1 Release";
37     char arg12[] = "-validity";
38     char arg13[] = "365";
39     char arg14[] = "-signAlg";
40     char arg15[] = "SHA256withECDSA";
41     char arg16[] = "-keystoreFile";
42     char arg17[] = "./generateKeyPair/OpenHarmony.p12";
43     char arg18[] = "-keystorePwd";
44     char arg19[] = "123456";
45     char arg20[] = "-subCaCertFile";
46     char arg21[] = "./generateKeyPair/app-sign-srv-ca1.cer";
47     char arg22[] = "-outForm";
48     char arg23[] = "certChain";
49     char arg24[] = "-rootCaCertFile";
50     char arg25[] = "./generateKeyPair/root-ca1.cer";
51     char arg26[] = "-issuerKeyPwd";
52     char arg27[] = "123456";
53     char* argv[] = {arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12,
54                     arg13, arg14, arg15, arg16, arg17, arg18, arg19, arg20, arg21,
55                     arg22, arg23, arg24, arg25, arg26, arg27};
56     int argc = 27;
57 
58     return ParamsRunTool::ProcessCmd(argv, argc);
59 }
GenerateAppCertTest3()60 bool GenerateAppCertTest3()
61 {
62     char arg0[] = "";
63     char arg1[] = "generate-app-cert";
64     char arg2[] = "-keyAlias";
65     char arg3[] = "oh-app1-key-v1";
66     char arg4[] = "-keyPwd";
67     char arg5[] = "123456";
68     char arg6[] = "-issuer";
69     char arg7[] = "C=CN;O=OpenHarmony;OU=OpenHarmony Community;CN=Application Signature Service CA";
70     char arg8[] = "-issuerKeyAlias";
71     char arg9[] = "oh-app-sign-srv-ca-key-v1";
72     char arg10[] = "-subject";
73     char arg11[] = "C=CN;O=OpenHarmony;OU=OpenHarmony Community;CN=App1 Release";
74     char arg12[] = "-validity";
75     char arg13[] = "365";
76     char arg14[] = "-signAlg";
77     char arg15[] = "SHA256withECDSA";
78     char arg16[] = "-keystoreFile";
79     char arg17[] = "./generateKeyPair/OpenHarmony.p12";
80     char arg18[] = "-keystorePwd";
81     char arg19[] = "123456";
82     char arg20[] = "-subCaCertFile";
83     char arg21[] = "./generateKeyPair/app-sign-srv-ca1.cer";
84     char arg22[] = "-outForm";
85     char arg23[] = "cert";
86     char arg24[] = "-rootCaCertFile";
87     char arg25[] = "./generateKeyPair/root-ca1.cer";
88     char arg26[] = "-issuerKeyPwd";
89     char arg27[] = "123456";
90     char* argv[] = {arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12,
91                     arg13, arg14, arg15, arg16, arg17, arg18, arg19, arg20, arg21,
92                     arg22, arg23, arg24, arg25, arg26, arg27};
93     int argc = 27;
94 
95     return ParamsRunTool::ProcessCmd(argv, argc);
96 }
DoSomethingInterestingWithMyAPI(const uint8_t * data,size_t size)97 bool DoSomethingInterestingWithMyAPI(const uint8_t* data, size_t size)
98 {
99     if (!data || !size) {
100         return true;
101     }
102 
103     char arg0[] = "";
104     char arg1[] = "generate-app-cert";
105     char arg2[] = "-keyAlias";
106     char arg3[] = "oh-app1-key-v1";
107     char arg4[] = "-keyPwd";
108     char arg5[] = "123456";
109     char arg6[] = "-issuer";
110     char arg7[] = "C=CN;O=OpenHarmony;OU=OpenHarmony Community;CN=Application Signature Service CA";
111     char arg8[] = "-issuerKeyAlias";
112     char arg9[] = "oh-app-sign-srv-ca-key-v1";
113     char arg10[] = "-subject";
114     char arg11[] = "C=CN;O=OpenHarmony;OU=OpenHarmony Community;CN=App1 Release";
115     char arg12[] = "-validity";
116     char arg13[] = "365";
117     char arg14[] = "-signAlg";
118     char arg15[] = "SHA256withECDSA";
119     char arg16[] = "-keystoreFile";
120     char arg17[] = "./generateKeyPair/OpenHarmony.p12";
121     char arg18[] = "-keystorePwd";
122     char arg19[] = "123456";
123     char arg20[] = "-outFile";
124     char arg21[] = "./generateKeyPair/app-release1.pem";
125     char arg22[] = "-subCaCertFile";
126     char arg23[] = "./generateKeyPair/app-sign-srv-ca1.cer";
127     char arg24[] = "-outForm";
128     char arg25[] = "cert";
129     char arg26[] = "-rootCaCertFile";
130     char arg27[] = "./generateKeyPair/root-ca1.cer";
131     char arg28[] = "-issuerKeyPwd";
132     char arg29[] = "123456";
133     char* argv[] = {arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12,
134                     arg13, arg14, arg15, arg16, arg17, arg18, arg19, arg20, arg21,
135                     arg22, arg23, arg24, arg25, arg26, arg27, arg28, arg29};
136     int argc = 30;
137 
138     bool ret = false;
139     ParamsRunTool::ProcessCmd(argv, argc);
140     GenerateAppCertTest2();
141     ret = GenerateAppCertTest3();
142 
143     return ret;
144 }
145 } // namespace SignatureTools
146 } // namespace OHOS
147 
148 /* Fuzzer entry point */
LLVMFuzzerTestOneInput(const uint8_t * data,size_t size)149 extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size)
150 {
151     /* Run your code on data */
152     OHOS::SignatureTools::DoSomethingInterestingWithMyAPI(data, size);
153     return 0;
154 }