in kerby-kerb/kerb-common/src/main/java/org/apache/kerby/kerberos/kerb/preauth/pkinit/PkinitIdentity.java [27:69]
public static void processIdentityOption(IdentityOpts identityOpts, String value) {
IdentityType idType = IdentityType.NONE;
String residual = null;
if (value.contains(":")) {
if (value.startsWith("FILE:")) {
idType = IdentityType.FILE;
} else if (value.startsWith("PKCS11:")) {
idType = IdentityType.PKCS11;
} else if (value.startsWith("PKCS12:")) {
idType = IdentityType.PKCS12;
} else if (value.startsWith("DIR:")) {
idType = IdentityType.DIR;
} else if (value.startsWith("ENV:")) {
idType = IdentityType.ENVVAR;
} else {
throw new RuntimeException("Invalid Identity option format: " + value);
}
} else {
residual = value;
idType = IdentityType.FILE;
}
identityOpts.setIdType(idType);
switch (idType) {
case ENVVAR:
processIdentityOption(identityOpts, System.getenv(residual));
break;
case FILE:
parseFileOption(identityOpts, residual);
break;
case PKCS11:
parsePkcs11Option(identityOpts, residual);
break;
case PKCS12:
parsePkcs12Option(identityOpts, residual);
break;
case DIR:
identityOpts.setCertFile(residual);
break;
default:
break;
}
}