Search code examples
javaphpcryptographysha1dsa

Java SHA1withDSA to PHP, convertible?


Any success in implementing SHA1withDSA signature with PHP? A failure reported here.

PKCS8EncodedKeySpec prvSpec = new PKCS8EncodedKeySpec(prvKeyBytes);
KeyFactory keyFactory = KeyFactory.getInstance("DSA");
PrivateKey prvKey = keyFactory.generatePrivate(prvSpec);
Signature sig = Signature.getInstance("SHA1withDSA");
sig.initSign(prvKey);
sig.update(text);
byte[] result = sig.sign();

Solution

  • You are after the PHP OpenSSL extension.

    Specifically, load the private key with openssl_pkey_get_private() and create the signature with openssl_sign(), passing OPENSSL_ALGO_DSS1 as $signature_alg.