A request to get the DSA implementation of a key pair generator fails, because the security engine can't find a public constructor for gnu.java.security.provider.DSAKeyPairGenerator. In other words, java.security.KeyPairGenerator.getInstance("DSA") throws a NoSuchAlgorithmException even though the implementation exists. Forwared from: <http://savannah.gnu.org/bugs/?func=detailitem&item_id=13962>.
Confirmed. There are a whole slew of problems with this implementation.
Subject: Bug 23120 CVSROOT: /cvsroot/classpath Module name: classpath Branch: Changes by: Casey Marshall <rsdio@savannah.gnu.org> 05/08/09 06:13:54 Modified files: . : ChangeLog gnu/java/security/provider: DSAKeyPairGenerator.java java/security : KeyPairGenerator.java Log message: 2005-08-08 Casey Marshall <csm@gnu.org> PR classpath/23120 * gnu/java/security/provider/DSAKeyPairGenerator.java (<init>): made public; set default values. (initialize): just call 'initialize(int,boolean,SecureRandom).' (initialize): just call 'initialize(DSAParams,SecureRandom).' (initialize): check all values for 'null' before overwriting. (initialize): fill in defaults or generate new parameters here. (generateKeyPair): don't create parameters; fill in 'random' if 'null;' use 'random,' not a new Random object, when generating random numbers. (getDefaults): fix keysize check. PR classpath/22990 * java/security/KeyPairGenerator.java (initialize): do nothing. CVSWeb URLs: http://savannah.gnu.org/cgi-bin/viewcvs/classpath/classpath/ChangeLog.diff?tr1=1.4357&tr2=1.4358&r1=text&r2=text http://savannah.gnu.org/cgi-bin/viewcvs/classpath/classpath/gnu/java/security/provider/DSAKeyPairGenerator.java.diff?tr1=1.5&tr2=1.6&r1=text&r2=text http://savannah.gnu.org/cgi-bin/viewcvs/classpath/classpath/java/security/KeyPairGenerator.java.diff?tr1=1.14&tr2=1.15&r1=text&r2=text
Fixed.