Skip to content

Commit 697b511

Browse files
committed
allow for digest name to be passed into Cert#sign
1 parent b1bac76 commit 697b511

File tree

1 file changed

+8
-2
lines changed

1 file changed

+8
-2
lines changed

src/main/java/org/jruby/ext/openssl/X509Cert.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -567,8 +567,14 @@ public IRubyObject sign(final ThreadContext context, final IRubyObject key, fina
567567

568568
// Have to obey some artificial constraints of the OpenSSL implementation. Stupid.
569569
final String keyAlg = ((PKey) key).getAlgorithm();
570-
final String digAlg = ((Digest) digest).getShortAlgorithm();
571-
final String digName = ((Digest) digest).name().toString();
570+
final String digAlg; final String digName;
571+
if (digest instanceof Digest) {
572+
digAlg = ((Digest) digest).getShortAlgorithm();
573+
digName = ((Digest) digest).name().toString();
574+
}
575+
else {
576+
digAlg = digest.asJavaString(); digName = null;
577+
}
572578

573579
if( ( "DSA".equalsIgnoreCase(keyAlg) && "MD5".equalsIgnoreCase(digAlg) ) ||
574580
( "RSA".equalsIgnoreCase(keyAlg) && "DSS1".equals(digName) ) ) {

0 commit comments

Comments
 (0)