117 lines
6.2 KiB
HTML
117 lines
6.2 KiB
HTML
<html>
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
|
<link rel="stylesheet" href="../../coverage.css"/> <title> clj_activitypub/internal/crypto.clj </title>
|
|
</head>
|
|
<body>
|
|
<span class="covered" title="1 out of 1 forms covered">
|
|
001 (ns clj-activitypub.internal.crypto
|
|
</span><br/>
|
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
002 (:require [clojure.java.io :as io])
|
|
</span><br/>
|
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
003 (:import (java.util Base64)
|
|
</span><br/>
|
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
004 (java.security MessageDigest SecureRandom Signature)))
|
|
</span><br/>
|
|
<span class="blank" title="0 out of 0 forms covered">
|
|
005
|
|
</span><br/>
|
|
<span class="covered" title="1 out of 1 forms covered">
|
|
006 (java.security.Security/addProvider
|
|
</span><br/>
|
|
<span class="covered" title="1 out of 1 forms covered">
|
|
007 (org.bouncycastle.jce.provider.BouncyCastleProvider.))
|
|
</span><br/>
|
|
<span class="blank" title="0 out of 0 forms covered">
|
|
008
|
|
</span><br/>
|
|
<span class="covered" title="1 out of 1 forms covered">
|
|
009 (defn- keydata [reader]
|
|
</span><br/>
|
|
<span class="not-covered" title="0 out of 2 forms covered">
|
|
010 (->> reader
|
|
</span><br/>
|
|
<span class="not-covered" title="0 out of 1 forms covered">
|
|
011 (org.bouncycastle.openssl.PEMParser.)
|
|
</span><br/>
|
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
012 (.readObject)))
|
|
</span><br/>
|
|
<span class="blank" title="0 out of 0 forms covered">
|
|
013
|
|
</span><br/>
|
|
<span class="covered" title="1 out of 1 forms covered">
|
|
014 (defn- pem-string->key-pair [string]
|
|
</span><br/>
|
|
<span class="not-covered" title="0 out of 6 forms covered">
|
|
015 (let [kd (keydata (io/reader (.getBytes string)))]
|
|
</span><br/>
|
|
<span class="not-covered" title="0 out of 3 forms covered">
|
|
016 (.getKeyPair (org.bouncycastle.openssl.jcajce.JcaPEMKeyConverter.) kd)))
|
|
</span><br/>
|
|
<span class="blank" title="0 out of 0 forms covered">
|
|
017
|
|
</span><br/>
|
|
<span class="covered" title="1 out of 1 forms covered">
|
|
018 (defn private-key [private-pem-str]
|
|
</span><br/>
|
|
<span class="not-covered" title="0 out of 2 forms covered">
|
|
019 (-> private-pem-str
|
|
</span><br/>
|
|
<span class="not-covered" title="0 out of 2 forms covered">
|
|
020 (pem-string->key-pair)
|
|
</span><br/>
|
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
021 (.getPrivate)))
|
|
</span><br/>
|
|
<span class="blank" title="0 out of 0 forms covered">
|
|
022
|
|
</span><br/>
|
|
<span class="covered" title="1 out of 1 forms covered">
|
|
023 (defn base64-encode [bytes]
|
|
</span><br/>
|
|
<span class="not-covered" title="0 out of 3 forms covered">
|
|
024 (.encodeToString (Base64/getEncoder) bytes))
|
|
</span><br/>
|
|
<span class="blank" title="0 out of 0 forms covered">
|
|
025
|
|
</span><br/>
|
|
<span class="covered" title="1 out of 1 forms covered">
|
|
026 (defn sha256-base64 [data]
|
|
</span><br/>
|
|
<span class="not-covered" title="0 out of 5 forms covered">
|
|
027 (let [digest (.digest (MessageDigest/getInstance "SHA-256") (.getBytes data))]
|
|
</span><br/>
|
|
<span class="not-covered" title="0 out of 3 forms covered">
|
|
028 (base64-encode digest)))
|
|
</span><br/>
|
|
<span class="blank" title="0 out of 0 forms covered">
|
|
029
|
|
</span><br/>
|
|
<span class="covered" title="1 out of 1 forms covered">
|
|
030 (defn sign [data private-key]
|
|
</span><br/>
|
|
<span class="not-covered" title="0 out of 2 forms covered">
|
|
031 (let [bytes (.getBytes data)
|
|
</span><br/>
|
|
<span class="not-covered" title="0 out of 4 forms covered">
|
|
032 signer (doto (Signature/getInstance "SHA256withRSA")
|
|
</span><br/>
|
|
<span class="not-covered" title="0 out of 3 forms covered">
|
|
033 (.initSign private-key (SecureRandom.))
|
|
</span><br/>
|
|
<span class="not-covered" title="0 out of 2 forms covered">
|
|
034 (.update bytes))]
|
|
</span><br/>
|
|
<span class="not-covered" title="0 out of 1 forms covered">
|
|
035 (.sign signer)))
|
|
</span><br/>
|
|
<span class="blank" title="0 out of 0 forms covered">
|
|
036
|
|
</span><br/>
|
|
</body>
|
|
</html>
|