Skip to content

Commit a68602a

Browse files
committed
dsa: implement VERIFY-SIGNATURE for DSA public keys
1 parent 9b6b2ca commit a68602a

File tree

3 files changed

+7
-1
lines changed

3 files changed

+7
-1
lines changed

src/cert-key.lisp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -203,7 +203,9 @@ Please refer to [1] for more details.
203203
(:name "rsa-sha2-256"
204204
:digest :sha256)
205205
(:name "rsa-sha2-512"
206-
:digest :sha512))
206+
:digest :sha512)
207+
(:name "ssh-dss"
208+
:digest :sha1))
207209
"OpenSSH certificate signature types")
208210

209211
(defun get-signature-type (value)

src/dsa.lisp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,9 @@
2929
()
3030
(:documentation "Represents an OpenSSH DSA public key"))
3131

32+
(defmethod verify-signature ((key dsa-public-key) message signature digest-spec)
33+
(ironclad:verify-signature key (ironclad:digest-sequence digest-spec message) signature))
34+
3235
(defmethod rfc4251:decode ((type (eql :dsa-public-key)) stream &key kind comment)
3336
"Decodes a DSA public key from the given binary stream as defined in FIPS-186-2"
3437
(unless kind

src/rsa.lisp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@
6767
(:documentation "Represents an OpenSSH RSA private key"))
6868

6969
(defmethod verify-signature ((key rsa-public-key) message signature digest-spec)
70+
"Verifies the message using the signature and digest-spec as described in RFC 4253, section 6.6"
7071
(rsassa-pkcs1-v1_5-verify key message signature digest-spec))
7172

7273
(defmethod rfc4251:decode ((type (eql :rsa-private-key)) stream &key kind public-key

0 commit comments

Comments
 (0)