code: public ApnsClientBuilder setClientCredentials(final InputStream p12InputStream, final String p12Password) throws SSLException, IOException {
          final X509Certificate x509Certificate;
          final PrivateKey privateKey;
  
          try {
              final KeyStore.PrivateKeyEntry privateKeyEntry = P12Util.getFirstPrivateKeyEntryFromP12InputStream(p12InputStream, p12Password);
  
              final Certificate certificate = privateKeyEntry.getCertificate();
  
              if (!(certificate instanceof X509Certificate)) {
                  throw new KeyStoreException("Found a certificate in the provided PKCS#12 file, but it was not an X.509 certificate.");
              }
  
              x509Certificate = (X509Certificate) certificate;
              privateKey = privateKeyEntry.getPrivateKey();
          } catch (final KeyStoreException e) {
              throw new SSLException(e);
          }
  
          return this.setClientCredentials(x509Certificate, privateKey, p12Password);
      }
docs: <p>Sets the TLS credentials for the client under construction using the data from the given PKCS#12 input stream.
  Clients constructed with TLS credentials will use TLS-based authentication when sending push notifications. The
  PKCS#12 data <em>must</em> contain a certificate/private key pair.</p>
  
  <p>Clients may not have both TLS credentials and a signing key.</p>
  
  @param p12InputStream an input stream to a PKCS#12-formatted file containing the certificate and private key to
  be used to identify the client to the APNs server
  @param p12Password the password to be used to decrypt the contents of the given PKCS#12 file; passwords may be
  blank (i.e. {@code ""}), but must not be {@code null}
  
  @throws SSLException if the given PKCS#12 file could not be loaded or if any other SSL-related problem arises
  when constructing the context
  @throws IOException if any IO problem occurred while attempting to read the given PKCS#12 input stream
  
  @return a reference to this builder
  
  @since 0.8