1 /* 2 * Copyright (c) 2021-2022 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 package com.ohos.hapsigntool.hap.verify; 17 18 import com.ohos.hapsigntool.hap.entity.SigningBlock; 19 import org.bouncycastle.cert.X509CertificateHolder; 20 import org.bouncycastle.cms.SignerInformation; 21 import org.bouncycastle.util.Store; 22 23 import java.security.cert.X509CRL; 24 import java.security.cert.X509Certificate; 25 import java.util.List; 26 27 /** 28 * Indicate result of verify hap. 29 * 30 * @since 2021/12/22 31 */ 32 public class VerifyResult { 33 /** 34 * Return code of verification success. 35 */ 36 public static final int RET_SUCCESS = 10000; 37 38 /** 39 * Return code of unknown error. 40 */ 41 public static final int RET_UNKNOWN_ERROR = 10001; 42 43 /** 44 * Return code of IO error. 45 */ 46 public static final int RET_IO_ERROR = 10002; 47 48 /** 49 * Return code of file format error. 50 */ 51 public static final int RET_UNSUPPORTED_FORMAT_ERROR = 10003; 52 53 /** 54 * Return code of file not found error. 55 */ 56 public static final int RET_FILE_NOT_FOUND_ERROR = 10004; 57 58 /** 59 * Return code of encoding certificates errors. 60 */ 61 public static final int RET_CERTIFICATE_ENCODING_ERROR = 10005; 62 63 /** 64 * Return code of unsupported algorithm error. 65 */ 66 public static final int RET_UNSUPPORTED_ALGORITHM_ERROR = 10006; 67 68 /** 69 * Return code of digest error. 70 */ 71 public static final int RET_DIGEST_ERROR = 10007; 72 73 /** 74 * Return code of signatures not found error. 75 */ 76 public static final int RET_SIGNATURE_NOT_FOUND_ERROR = 10008; 77 78 /** 79 * Return code of signatures verify error. 80 */ 81 public static final int RET_SIGNATURE_ERROR = 10009; 82 83 /** 84 * Return code of certificate revoked error. 85 */ 86 public static final int RET_CERTIFICATE_REVOKED = 10010; 87 88 /** 89 * Return code of certificate revoked error. 90 */ 91 public static final int RET_CRL_ERROR = 10011; 92 93 private boolean result; 94 private int code; 95 private String message; 96 97 private List<X509Certificate> certificates; 98 99 private List<X509CRL> crls; 100 101 private List<SignerInformation> signerInfos; 102 103 private List<SigningBlock> optionalBlocks; 104 105 private Store<X509CertificateHolder> certificateHolderStore; 106 107 private int signBlockVersion; 108 109 /** 110 * Empty constructor 111 */ VerifyResult()112 public VerifyResult() { 113 } 114 115 /** 116 * Verify result constructor 117 * 118 * @param result verify result 119 * @param code error code 120 * @param message error message 121 */ VerifyResult(boolean result, int code, String message)122 public VerifyResult(boolean result, int code, String message) { 123 this.result = result; 124 this.code = code; 125 this.message = message; 126 } 127 isVerified()128 public boolean isVerified() { 129 return result; 130 } 131 setResult(boolean result)132 public void setResult(boolean result) { 133 this.result = result; 134 } 135 getCode()136 public int getCode() { 137 return code; 138 } 139 setCode(int code)140 public void setCode(int code) { 141 this.code = code; 142 } 143 getMessage()144 public String getMessage() { 145 return message; 146 } 147 setMessage(String message)148 public void setMessage(String message) { 149 this.message = message; 150 } 151 getCertificates()152 public List<X509Certificate> getCertificates() { 153 return certificates; 154 } 155 setCertificates(List<X509Certificate> certificates)156 public void setCertificates(List<X509Certificate> certificates) { 157 this.certificates = certificates; 158 } 159 getCrls()160 public List<X509CRL> getCrls() { 161 return crls; 162 } 163 setCrls(List<X509CRL> crls)164 public void setCrls(List<X509CRL> crls) { 165 this.crls = crls; 166 } 167 getSignerInfos()168 public List<SignerInformation> getSignerInfos() { 169 return signerInfos; 170 } 171 setSignerInfos(List<SignerInformation> signerInfos)172 public void setSignerInfos(List<SignerInformation> signerInfos) { 173 this.signerInfos = signerInfos; 174 } 175 getOptionalBlocks()176 public List<SigningBlock> getOptionalBlocks() { 177 return optionalBlocks; 178 } 179 setOptionalBlocks(List<SigningBlock> optionalBlocks)180 public void setOptionalBlocks(List<SigningBlock> optionalBlocks) { 181 this.optionalBlocks = optionalBlocks; 182 } 183 getCertificateHolderStore()184 public Store<X509CertificateHolder> getCertificateHolderStore() { 185 return certificateHolderStore; 186 } 187 setCertificateHolderStore(Store<X509CertificateHolder> certificateHolderStore)188 public void setCertificateHolderStore(Store<X509CertificateHolder> certificateHolderStore) { 189 this.certificateHolderStore = certificateHolderStore; 190 } 191 getSignBlockVersion()192 public int getSignBlockVersion() { 193 return signBlockVersion; 194 } 195 setSignBlockVersion(int signBlockVersion)196 public void setSignBlockVersion(int signBlockVersion) { 197 this.signBlockVersion = signBlockVersion; 198 } 199 } 200