# Java Client

This client uses Java's HttpClient to perform an HTTPS request with mutual TLS. It loads the client certificate and private key directly from PEM files (using BouncyCastle) to configure an SSLContext that sends the client credentials during the TLS handshake. It disables standard certificate validation in favor of public key pinning by employing a custom TrustManager that extracts the server's public key, computes its hash, and verifies it against a predefined value.

```code-github
clients/java/client.java
```

pom.xml
```code-github
clients/java/pom.xml
```
