import java.security.cert.X509Certificate;
import java.io.FileInputStream;
import java.security.KeyStore;
import java.security.cert.Certificate;
import java.util.Enumeration;

public class Main {
    public static void main(String[] args) throws Exception {
        String p12FilePath = "special_chars.p12";
        String password = "password123";
        KeyStore keyStore = KeyStore.getInstance("PKCS12");
        // Load the KeyStore (PKCS12 format)
        try(FileInputStream fis = new FileInputStream(p12FilePath)) {
            keyStore.load(fis, password.toCharArray());
            // Iterate through the aliases
            Enumeration<String> aliases = keyStore.aliases();
            while (aliases.hasMoreElements()) {
                // Retrieve and print the certificate
                Certificate cert = keyStore.getCertificate(aliases.nextElement());
                X509Certificate x509Cert = (X509Certificate) cert;
                System.out.println("Subject: " + x509Cert.getSubjectX500Principal().getName());
            }
        }
    }
} 