Skip to content

Instantly share code, notes, and snippets.

@caryfitzhugh
Created April 12, 2017 20:22
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save caryfitzhugh/55807df5f85cd54826d1476c77d752c5 to your computer and use it in GitHub Desktop.
Save caryfitzhugh/55807df5f85cd54826d1476c77d752c5 to your computer and use it in GitHub Desktop.
(ns trebuchet-idp.jose
(:require [clojure.reflect :as r]
[clojure.data.json :as json])
(:import com.nimbusds.jose.jwk.RSAKey
org.bouncycastle.openssl.jcajce.JcaPEMWriter
java.io.StringWriter))
(comment
(def jwk {:use "sig", :kty "RSA", :kid "public", :n "uLhh0hTuBEsKJ-Ujqr8tQnNRQPzeNlue9SEWt89xkzjTzENqZxj90JaWH1m6cTMYhByaGOAjylI9f47gfT92StCNyLsRt-eqOUig5Bqe93V9bLF9F-1BjgiLShZYMwM-dZ940pg9PqStosGmkAl2wA7hHq4zNltwbysyDgX_fuSn_UWLOmm5rigIl9xhcBpL5lVtiE2JTR46lPMENoFC5J8mcmSedDg92NdCujLky1SY0vszGVH7hphd_y3T-wX_2RfVPOeBFBKWw_rQ7SGTs3GD_akMO_QkAwm7DXBB7cuLfRcdvYhBkuzuiHzGS1TgRHFVBevQ-qE24ZobJvvMx7pfrbSqkBacT-THFACP0JgvGyxAYI_lMu-wRUAeBUsOT5c-XRaH3PoYhScKURBLEbA_wM7P2px88qGFZJEDAIVkRwe7Yob-F_i0cSKfeSQIPgQgA3ppXVCJdi4EBL075R5JILNAbemkdtKAbW75kn4ruh2P0ylUVfanF2ZjHwUkQ4_SGgKk5d7_KZu4cbmVAS7lazbLMJtYM6ml7gcFLlYJl-mgSa5qB9uq_lyGpfAsN8j6RylTWYGr2x3hCnhgCqfNYNFmgkPlJIv2Uu17zasbQVvnyQfIIUyMUeZKDqhJ0KfIvXZn-acIedEbgfhAig05V-OyA1aC7ft21qeDUb0", :e "AQAB"})
(jwk->pem-str jwk))
;; https://static.javadoc.io/com.nimbusds/nimbus-jose-jwt/2.21/com/nimbusds/jose/jwk/JWKSet.html
(defn jwk->pem-str [jwk]
;; https://www.javadoc.io/doc/com.nimbusds/nimbus-jose-jwt/4.35
(let [writer (new java.io.StringWriter)
public-key (.toRSAPublicKey (. RSAKey parse (json/write-str jwk)))
pem-writer (new org.bouncycastle.openssl.jcajce.JcaPEMWriter writer)]
(.writeObject pem-writer public-key)
(.flush pem-writer)
(.toString writer)))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment