Add java.security.Signature
This commit is contained in:
parent
f5d7c1bb6e
commit
c1412f9b31
2 changed files with 39 additions and 0 deletions
|
|
@ -223,6 +223,7 @@
|
||||||
java.net.http.WebSocket$Listener
|
java.net.http.WebSocket$Listener
|
||||||
java.security.cert.X509Certificate
|
java.security.cert.X509Certificate
|
||||||
java.security.cert.CertificateFactory
|
java.security.cert.CertificateFactory
|
||||||
|
java.security.Signature
|
||||||
javax.crypto.Cipher
|
javax.crypto.Cipher
|
||||||
javax.crypto.KeyAgreement
|
javax.crypto.KeyAgreement
|
||||||
javax.crypto.Mac
|
javax.crypto.Mac
|
||||||
|
|
@ -783,6 +784,8 @@
|
||||||
java.io.Console
|
java.io.Console
|
||||||
(instance? java.security.KeyPairGenerator v)
|
(instance? java.security.KeyPairGenerator v)
|
||||||
java.security.KeyPairGenerator
|
java.security.KeyPairGenerator
|
||||||
|
(instance? java.security.Signature v)
|
||||||
|
java.security.Signature
|
||||||
(instance? java.util.Set v)
|
(instance? java.util.Set v)
|
||||||
java.util.Set
|
java.util.Set
|
||||||
(instance? java.io.Closeable v)
|
(instance? java.io.Closeable v)
|
||||||
|
|
|
||||||
|
|
@ -131,3 +131,39 @@
|
||||||
|
|
||||||
(deftest clojure-1_12-array-test
|
(deftest clojure-1_12-array-test
|
||||||
(is (true? (bb nil "(instance? Class long/1)"))))
|
(is (true? (bb nil "(instance? Class long/1)"))))
|
||||||
|
|
||||||
|
(deftest keygen-test
|
||||||
|
(is (true?
|
||||||
|
(bb nil
|
||||||
|
'(do (ns keygen
|
||||||
|
(:import [java.security KeyPairGenerator Signature]))
|
||||||
|
|
||||||
|
(defn generate-key-pair
|
||||||
|
"Generates a public/private key pair."
|
||||||
|
[]
|
||||||
|
(let [keygen (KeyPairGenerator/getInstance "RSA")]
|
||||||
|
(.initialize keygen 2048)
|
||||||
|
(.generateKeyPair keygen)))
|
||||||
|
|
||||||
|
(defn create-signature
|
||||||
|
"Signs the given message using the private key."
|
||||||
|
[private-key message]
|
||||||
|
(let [signature (Signature/getInstance "SHA256withRSA")]
|
||||||
|
(.initSign signature private-key)
|
||||||
|
(.update signature (.getBytes message "UTF-8"))
|
||||||
|
(.sign signature)))
|
||||||
|
|
||||||
|
(defn verify-signature
|
||||||
|
"Verifies the given signed data using the public key."
|
||||||
|
[public-key message signed-data]
|
||||||
|
(let [signature (Signature/getInstance "SHA256withRSA")]
|
||||||
|
(.initVerify signature public-key)
|
||||||
|
(.update signature (.getBytes message "UTF-8"))
|
||||||
|
(.verify signature signed-data)))
|
||||||
|
|
||||||
|
(let [key-pair (generate-key-pair)
|
||||||
|
private-key (.getPrivate key-pair)
|
||||||
|
public-key (.getPublic key-pair)
|
||||||
|
message "This is a secret message"
|
||||||
|
signed-data (create-signature private-key message)]
|
||||||
|
(verify-signature public-key message signed-data)))))))
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue