public static void processIdentityOption()

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;
        }
    }