What I want

A DSA encryption and decryption provider for java.


1-provides encryption and decryption with DSA: I don't need key generation because the official(and openjdk) provides it, I want provider that provides the encryption and decryption part(that is the cipher).
2-a jar file: I found source code for DSA but I don't want that, what I want is a jar file which has a provider that I can put into my java.security file and can be shipped with my application.

What I tried

1-openjdk: supports only DSA key generation.
2-bouncy caste: supports RSA not DSA.

I didn't try oracle jdk but DSA is not listed in their algorithms anyway.


DSA is an algorithm for encryption of files, it produces two keys : one public and one private, the file is encrypted with the public key , public key can be given to many people but only one person would have the private key, the private key is used for decryption of anything encrypted with the companion public key.

The idea of this algorithm(and others as well) is that it's hard for a computer with the available technology to figure out the private key from the public key.

more information about it here : https://en.wikipedia.org/wiki/Digital_Signature_Algorithm

  • I suggest defining acronyms such as DSA. More clear for readers, including your most important audience: the search engines. Nov 25 '15 at 22:55

This is not possible. DSA stands for Digital Signature Algorithm. DSA cannot be used for encryption / decryption. You must be mistaken with RSA that can be used for both.

For the Diffie-Hellman (discrete logarithm) problem on which DSA is based there are a few options. One is (EC)DH-IES, another ElGamal encryption. However, from your limited specifications it is unclear what you require.

Side node: Bouncy Castle certainly supports DSA. Depending on the version of Java, DSA support may be limited to lower key sizes though.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.