123 lines
5.7 KiB
Java
123 lines
5.7 KiB
Java
|
package org.jmrtd.cert;
|
||
|
|
||
|
import java.io.IOException;
|
||
|
import java.security.InvalidKeyException;
|
||
|
import java.security.NoSuchAlgorithmException;
|
||
|
import java.security.NoSuchProviderException;
|
||
|
import java.security.PrivateKey;
|
||
|
import java.security.PublicKey;
|
||
|
import java.security.Signature;
|
||
|
import java.security.SignatureException;
|
||
|
import java.util.Date;
|
||
|
import o.C15290gme;
|
||
|
import o.C15294gmi;
|
||
|
import o.InterfaceC15241glC;
|
||
|
import o.InterfaceC15243glE;
|
||
|
import o.glH;
|
||
|
import o.glK;
|
||
|
import o.glL;
|
||
|
import o.glQ;
|
||
|
import o.glS;
|
||
|
import o.glW;
|
||
|
import org.ejbca.cvc.AccessRightEnum;
|
||
|
import org.ejbca.cvc.AuthorizationRoleEnum;
|
||
|
import org.ejbca.cvc.CVCertificate;
|
||
|
import org.ejbca.cvc.exception.ConstructionException;
|
||
|
import org.jmrtd.cert.CVCAuthorizationTemplate;
|
||
|
|
||
|
/* loaded from: classes6.dex */
|
||
|
public class CVCertificateBuilder {
|
||
|
public static CardVerifiableCertificate createCertificate(PublicKey publicKey, PrivateKey privateKey, String str, CVCPrincipal cVCPrincipal, CVCPrincipal cVCPrincipal2, CVCAuthorizationTemplate cVCAuthorizationTemplate, Date date, Date date2, String str2) throws IOException, NoSuchAlgorithmException, NoSuchProviderException, InvalidKeyException, SignatureException, ConstructionException {
|
||
|
glL gll = new glL(cVCPrincipal.getCountry().toAlpha2Code(), cVCPrincipal.getMnemonic(), cVCPrincipal.getSeqNumber());
|
||
|
glW glw = new glW(cVCPrincipal2.getCountry().toAlpha2Code(), cVCPrincipal2.getMnemonic(), cVCPrincipal2.getSeqNumber());
|
||
|
AuthorizationRoleEnum role = getRole(cVCAuthorizationTemplate.getRole());
|
||
|
CVCertificate cVCertificate = new CVCertificate(new glQ(gll, C15290gme.e(publicKey, str, role), glw, (InterfaceC15243glE) role, (InterfaceC15241glC) getAccessRight(cVCAuthorizationTemplate.getAccessRight()), date, date2));
|
||
|
Signature signature = Signature.getInstance(glH.e(str), str2);
|
||
|
signature.initSign(privateKey);
|
||
|
signature.update(cVCertificate.f());
|
||
|
cVCertificate.c(new glK(glS.SIGNATURE, C15294gmi.c(str, signature.sign())));
|
||
|
return new CardVerifiableCertificate(cVCertificate);
|
||
|
}
|
||
|
|
||
|
private static AuthorizationRoleEnum getRole(CVCAuthorizationTemplate.Role role) {
|
||
|
int i = AnonymousClass1.$SwitchMap$org$jmrtd$cert$CVCAuthorizationTemplate$Role[role.ordinal()];
|
||
|
if (i == 1) {
|
||
|
return AuthorizationRoleEnum.CVCA;
|
||
|
}
|
||
|
if (i == 2) {
|
||
|
return AuthorizationRoleEnum.DV_D;
|
||
|
}
|
||
|
if (i == 3) {
|
||
|
return AuthorizationRoleEnum.DV_F;
|
||
|
}
|
||
|
if (i == 4) {
|
||
|
return AuthorizationRoleEnum.IS;
|
||
|
}
|
||
|
throw new NumberFormatException("Cannot decode role ".concat(String.valueOf(role)));
|
||
|
}
|
||
|
|
||
|
/* JADX INFO: Access modifiers changed from: package-private */
|
||
|
/* renamed from: org.jmrtd.cert.CVCertificateBuilder$1, reason: invalid class name */
|
||
|
/* loaded from: classes6.dex */
|
||
|
public static /* synthetic */ class AnonymousClass1 {
|
||
|
static final int[] $SwitchMap$org$jmrtd$cert$CVCAuthorizationTemplate$Permission;
|
||
|
static final int[] $SwitchMap$org$jmrtd$cert$CVCAuthorizationTemplate$Role;
|
||
|
|
||
|
static {
|
||
|
int[] iArr = new int[CVCAuthorizationTemplate.Permission.values().length];
|
||
|
$SwitchMap$org$jmrtd$cert$CVCAuthorizationTemplate$Permission = iArr;
|
||
|
try {
|
||
|
iArr[CVCAuthorizationTemplate.Permission.READ_ACCESS_NONE.ordinal()] = 1;
|
||
|
} catch (NoSuchFieldError unused) {
|
||
|
}
|
||
|
try {
|
||
|
$SwitchMap$org$jmrtd$cert$CVCAuthorizationTemplate$Permission[CVCAuthorizationTemplate.Permission.READ_ACCESS_DG3.ordinal()] = 2;
|
||
|
} catch (NoSuchFieldError unused2) {
|
||
|
}
|
||
|
try {
|
||
|
$SwitchMap$org$jmrtd$cert$CVCAuthorizationTemplate$Permission[CVCAuthorizationTemplate.Permission.READ_ACCESS_DG4.ordinal()] = 3;
|
||
|
} catch (NoSuchFieldError unused3) {
|
||
|
}
|
||
|
try {
|
||
|
$SwitchMap$org$jmrtd$cert$CVCAuthorizationTemplate$Permission[CVCAuthorizationTemplate.Permission.READ_ACCESS_DG3_AND_DG4.ordinal()] = 4;
|
||
|
} catch (NoSuchFieldError unused4) {
|
||
|
}
|
||
|
int[] iArr2 = new int[CVCAuthorizationTemplate.Role.values().length];
|
||
|
$SwitchMap$org$jmrtd$cert$CVCAuthorizationTemplate$Role = iArr2;
|
||
|
try {
|
||
|
iArr2[CVCAuthorizationTemplate.Role.CVCA.ordinal()] = 1;
|
||
|
} catch (NoSuchFieldError unused5) {
|
||
|
}
|
||
|
try {
|
||
|
$SwitchMap$org$jmrtd$cert$CVCAuthorizationTemplate$Role[CVCAuthorizationTemplate.Role.DV_D.ordinal()] = 2;
|
||
|
} catch (NoSuchFieldError unused6) {
|
||
|
}
|
||
|
try {
|
||
|
$SwitchMap$org$jmrtd$cert$CVCAuthorizationTemplate$Role[CVCAuthorizationTemplate.Role.DV_F.ordinal()] = 3;
|
||
|
} catch (NoSuchFieldError unused7) {
|
||
|
}
|
||
|
try {
|
||
|
$SwitchMap$org$jmrtd$cert$CVCAuthorizationTemplate$Role[CVCAuthorizationTemplate.Role.IS.ordinal()] = 4;
|
||
|
} catch (NoSuchFieldError unused8) {
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
private static AccessRightEnum getAccessRight(CVCAuthorizationTemplate.Permission permission) {
|
||
|
int i = AnonymousClass1.$SwitchMap$org$jmrtd$cert$CVCAuthorizationTemplate$Permission[permission.ordinal()];
|
||
|
if (i == 1) {
|
||
|
return AccessRightEnum.READ_ACCESS_NONE;
|
||
|
}
|
||
|
if (i == 2) {
|
||
|
return AccessRightEnum.READ_ACCESS_DG3;
|
||
|
}
|
||
|
if (i == 3) {
|
||
|
return AccessRightEnum.READ_ACCESS_DG4;
|
||
|
}
|
||
|
if (i == 4) {
|
||
|
return AccessRightEnum.READ_ACCESS_DG3_AND_DG4;
|
||
|
}
|
||
|
throw new NumberFormatException("Cannot decode access right ".concat(String.valueOf(permission)));
|
||
|
}
|
||
|
}
|