Hi,

I ran into a problem reading a private key from a file using buddy-core
version 1.1.1. I created a private key using:

openssl genrsa -aes256 -out resources/auth_privkey.pem 2048

Here's the code:

(ns tryme-buddy.core
  (:require [buddy.core.keys :as ks]
            [clojure.java.io :as io])
  (:gen-class))

(defn read-key
  []
  (ks/private-key (io/resource "auth_privkey.pem") "secret"))

(defn -main
  [& args]
  (read-key)
  (println "OK"))

This works as expected when invoked with `lein run`, but if I create an
uberjar with `lein do clean, uberjar` and invoke with `java -jar ...` I get
the following exception:

Exception in thread "main" org.bouncycastle.openssl.PEMException: Unable to
create OpenSSL PBDKF: PBKDF-OpenSSL SecretKeyFactory not available
at org.bouncycastle.openssl.jcajce.PEMUtilities.getKey(Unknown Source)
at org.bouncycastle.openssl.jcajce.PEMUtilities.getKey(Unknown Source)
at org.bouncycastle.openssl.jcajce.PEMUtilities.crypt(Unknown Source)
at
org.bouncycastle.openssl.jcajce.JcePEMDecryptorProviderBuilder$1$1.decrypt(Unknown
Source)
at org.bouncycastle.openssl.PEMEncryptedKeyPair.decryptKeyPair(Unknown
Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at clojure.lang.Reflector.invokeMatchingMethod(Reflector.java:93)
at clojure.lang.Reflector.invokeInstanceMethod(Reflector.java:28)
at buddy.core.keys$read_pem__GT_privkey.invokeStatic(keys.clj:60)
at buddy.core.keys$read_pem__GT_privkey.invoke(keys.clj:51)
at buddy.core.keys$private_key.invokeStatic(keys.clj:96)
at buddy.core.keys$private_key.invoke(keys.clj:91)
at tryme_buddy.core$read_key.invokeStatic(core.clj:8)
at tryme_buddy.core$read_key.invoke(core.clj:6)
at tryme_buddy.core$_main.invokeStatic(core.clj:12)
at tryme_buddy.core$_main.doInvoke(core.clj:10)
at clojure.lang.RestFn.invoke(RestFn.java:397)
at clojure.lang.AFn.applyToHelper(AFn.java:152)
at clojure.lang.RestFn.applyTo(RestFn.java:132)
at tryme_buddy.core.main(Unknown Source)
Caused by: java.security.NoSuchAlgorithmException: PBKDF-OpenSSL
SecretKeyFactory not available
 at javax.crypto.SecretKeyFactory.<init> (SecretKeyFactory.java:122)
javax.crypto.SecretKeyFactory.getInstance (SecretKeyFactory.java:160)
org.bouncycastle.jcajce.util.DefaultJcaJceHelper.createSecretKeyFactory
(:-1) org.bouncycastle.openssl.jcajce.PEMUtilities.getKey (:-1)
org.bouncycastle.openssl.jcajce.PEMUtilities.getKey (:-1)
org.bouncycastle.openssl.jcajce.PEMUtilities.crypt (:-1)
org.bouncycastle.openssl.jcajce.JcePEMDecryptorProviderBuilder$1$1.decrypt
(:-1) org.bouncycastle.openssl.PEMEncryptedKeyPair.decryptKeyPair (:-1)
sun.reflect.NativeMethodAccessorImpl.invoke0
(NativeMethodAccessorImpl.java:-2)
sun.reflect.NativeMethodAccessorImpl.invoke
(NativeMethodAccessorImpl.java:62)
sun.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:43) java.lang.reflect.Method.invoke
(Method.java:498) clojure.lang.Reflector.invokeMatchingMethod
(Reflector.java:93) clojure.lang.Reflector.invokeInstanceMethod
(Reflector.java:28) buddy.core.keys$read_pem__GT_privkey.invokeStatic
(keys.clj:60) buddy.core.keys$read_pem__GT_privkey.invoke (keys.clj:51)
buddy.core.keys$private_key.invokeStatic (keys.clj:96)
buddy.core.keys$private_key.invoke (keys.clj:91)
tryme_buddy.core$read_key.invokeStatic (core.clj:13)
tryme_buddy.core$read_key.invoke (core.clj:11)
tryme_buddy.core$_main$fn__109.invoke (core.clj:19)
tryme_buddy.core$_main.invokeStatic (core.clj:18)
tryme_buddy.core$_main.doInvoke (core.clj:15) clojure.lang.RestFn.invoke
(RestFn.java:397) clojure.lang.AFn.applyToHelper (AFn.java:152)
clojure.lang.RestFn.applyTo (RestFn.java:132) tryme_buddy.core.main (:-1)

What do I need to do to create a working uberjar?

Ray.

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to