Hi

Which JRE are you using? Perhaps it's not the same as for lein run?

This seems very relevant: https://github.com/funcool/buddy-core/issues/43


BR

--
Henrik


On Wed, Dec 21, 2016 at 11:54 AM, Ray Miller <r...@1729.org.uk> wrote:

> 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.
>

-- 
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