The semz.minisign-verify Reference Manual

This is the semz.minisign-verify Reference Manual, version 1.0.1, generated automatically by Declt version 4.0 beta 2 "William Riker" on Sun Jul 13 21:18:05 2025 GMT+0.

Table of Contents


1 Introduction


2 Systems

The main system appears first, followed by any subsystem dependency.


2.1 semz.minisign-verify

Portable dependency-free implementation of Minisign signature verification

Maintainer

Sebastian Melzer <>

Author

Sebastian Melzer <>

Home Page

https://semelz.de/software/minisign-verify.html

License

MIT

Version

1.0.1

Source

semz.minisign-verify.asd.

Child Component

minisign-verify.lisp (file).


3 Files

Files are sorted by type and then listed depth-first from the systems components trees.


3.1 Lisp


3.1.1 semz.minisign-verify/semz.minisign-verify.asd

Source

semz.minisign-verify.asd.

Parent Component

semz.minisign-verify (system).

ASDF Systems

semz.minisign-verify.


3.1.2 semz.minisign-verify/minisign-verify.lisp

Source

semz.minisign-verify.asd.

Parent Component

semz.minisign-verify (system).

Packages

semz.minisign-verify.

Public Interface
Internals

4 Packages

Packages are listed by definition order.


4.1 semz.minisign-verify

Source

minisign-verify.lisp.

Use List

common-lisp.

Public Interface
Internals

5 Definitions

Definitions are sorted by export status, category, package, and then by lexicographic order.


5.1 Public Interface


5.1.1 Ordinary functions

Function: verify (data signature pubkey)

Returns the trusted and untrusted comments of SIGNATURE if SIGNATURE is a valid Minisign signature for DATA with respect to PUBKEY; signals VERIFICATION-ERROR otherwise, including when SIGNATURE or PUBKEY are malformed.

DATA is a sequence or stream of octets. Stream data is read and used entirely.

SIGNATURE is the content of a Minisign signature file (as a sequence of octets).

PUBKEY is either the content of a Minisign public key file (as a sequence of octets) or a function.

If PUBKEY is a function, it is called with the key ID (an array of 8 octets) specified in SIGNATURE and must return either the content of an appropriate Minisign public key file (which will then be used) or NIL (which will signal a VERIFICATION-ERROR). This option allows the use of multiple public keys.

Package

semz.minisign-verify.

Source

minisign-verify.lisp.


5.1.2 Conditions

Condition: verification-error

Signalled when verification fails, for whatever reason.

Package

semz.minisign-verify.

Source

minisign-verify.lisp.

Direct superclasses

simple-error.


5.2 Internals


5.2.1 Constants

Constant: +bx+
Package

semz.minisign-verify.

Source

minisign-verify.lisp.

Constant: +by+
Package

semz.minisign-verify.

Source

minisign-verify.lisp.

Constant: +d+
Package

semz.minisign-verify.

Source

minisign-verify.lisp.

Constant: +l+
Package

semz.minisign-verify.

Source

minisign-verify.lisp.

Constant: +p+
Package

semz.minisign-verify.

Source

minisign-verify.lisp.


5.2.2 Special variables

Special Variable: *blake-var-decls*
Package

semz.minisign-verify.

Source

minisign-verify.lisp.

Special Variable: *blake-var-decls/half*
Package

semz.minisign-verify.

Source

minisign-verify.lisp.

Special Variable: *blake-vars*
Package

semz.minisign-verify.

Source

minisign-verify.lisp.

Special Variable: *blake-vars/half*
Package

semz.minisign-verify.

Source

minisign-verify.lisp.

Special Variable: *blake2b-init-vector*
Package

semz.minisign-verify.

Source

minisign-verify.lisp.

Special Variable: *blake2b-sigma*
Package

semz.minisign-verify.

Source

minisign-verify.lisp.

Special Variable: *sha-512-iv*
Package

semz.minisign-verify.

Source

minisign-verify.lisp.

Special Variable: *sha-512-k*
Package

semz.minisign-verify.

Source

minisign-verify.lisp.

Special Variable: *trusted-prefix*
Package

semz.minisign-verify.

Source

minisign-verify.lisp.

Special Variable: *untrusted-prefix*
Package

semz.minisign-verify.

Source

minisign-verify.lisp.

Special Variable: *use-split-blake-p*

If true, use an implementation of Blake2b-512 that’s based on split 32-bit arithmetic. This can significantly improve performance on many implementations.

Package

semz.minisign-verify.

Source

minisign-verify.lisp.


5.2.3 Macros

Macro: get-le (n data offset)
Package

semz.minisign-verify.

Source

minisign-verify.lisp.

Macro: rotr64/s (destl desth xl xh rot)
Package

semz.minisign-verify.

Source

minisign-verify.lisp.

Macro: ub64+/s (destl desth src1l src1h src2l src2h)
Package

semz.minisign-verify.

Source

minisign-verify.lisp.


5.2.4 Ordinary functions

Reader: b2b-b (instance)
Writer: (setf b2b-b) (instance)
Package

semz.minisign-verify.

Source

minisign-verify.lisp.

Target Slot

b.

Reader: b2b-count (instance)
Writer: (setf b2b-count) (instance)
Package

semz.minisign-verify.

Source

minisign-verify.lisp.

Target Slot

count.

Reader: b2b-fp (instance)
Writer: (setf b2b-fp) (instance)
Package

semz.minisign-verify.

Source

minisign-verify.lisp.

Target Slot

fp.

Reader: b2b-h (instance)
Writer: (setf b2b-h) (instance)
Package

semz.minisign-verify.

Source

minisign-verify.lisp.

Target Slot

h.

Function: b2b-p (object)
Package

semz.minisign-verify.

Source

minisign-verify.lisp.

Function: blake2b (data start end)
Package

semz.minisign-verify.

Source

minisign-verify.lisp.

Function: blake2b-compress (ctx lastp)
Package

semz.minisign-verify.

Source

minisign-verify.lisp.

Function: blake2b-compress/split (ctx lastp)
Package

semz.minisign-verify.

Source

minisign-verify.lisp.

Function: blake2b-final (ctx)
Package

semz.minisign-verify.

Source

minisign-verify.lisp.

Function: blake2b-update (ctx data start end)
Package

semz.minisign-verify.

Source

minisign-verify.lisp.

Function: checksum-data (data)
Package

semz.minisign-verify.

Source

minisign-verify.lisp.

Function: copy-b2b (instance)
Package

semz.minisign-verify.

Source

minisign-verify.lisp.

Function: copy-hpt (instance)
Package

semz.minisign-verify.

Source

minisign-verify.lisp.

Function: copy-s512 (instance)
Package

semz.minisign-verify.

Source

minisign-verify.lisp.

Function: decode-b64 (data)
Package

semz.minisign-verify.

Source

minisign-verify.lisp.

Function: die (msg &rest args)
Package

semz.minisign-verify.

Source

minisign-verify.lisp.

Function: ed25519-verify (message signature pubkey)
Package

semz.minisign-verify.

Source

minisign-verify.lisp.

Function: hpt-p (object)
Package

semz.minisign-verify.

Source

minisign-verify.lisp.

Reader: hpt-t (instance)
Writer: (setf hpt-t) (instance)
Package

semz.minisign-verify.

Source

minisign-verify.lisp.

Target Slot

t.

Reader: hpt-x (instance)
Writer: (setf hpt-x) (instance)
Package

semz.minisign-verify.

Source

minisign-verify.lisp.

Target Slot

x.

Reader: hpt-y (instance)
Writer: (setf hpt-y) (instance)
Package

semz.minisign-verify.

Source

minisign-verify.lisp.

Target Slot

y.

Reader: hpt-z (instance)
Writer: (setf hpt-z) (instance)
Package

semz.minisign-verify.

Source

minisign-verify.lisp.

Target Slot

z.

Function: lines (data)
Package

semz.minisign-verify.

Source

minisign-verify.lisp.

Function: make-b2b (&key b fp h count)
Package

semz.minisign-verify.

Source

minisign-verify.lisp.

Function: make-hpt (&key x y z t)
Package

semz.minisign-verify.

Source

minisign-verify.lisp.

Function: make-s512 (&key b fp h count)
Package

semz.minisign-verify.

Source

minisign-verify.lisp.

Function: modp* (&rest args)
Package

semz.minisign-verify.

Source

minisign-verify.lisp.

Function: modp+ (&rest args)
Package

semz.minisign-verify.

Source

minisign-verify.lisp.

Function: modp- (&rest args)
Package

semz.minisign-verify.

Source

minisign-verify.lisp.

Function: modpexpt (x n)
Package

semz.minisign-verify.

Source

minisign-verify.lisp.

Function: parse-ed25519-point (pt)
Package

semz.minisign-verify.

Source

minisign-verify.lisp.

Function: parse-pubkey (pubkey)
Package

semz.minisign-verify.

Source

minisign-verify.lisp.

Function: parse-signature (signature)
Package

semz.minisign-verify.

Source

minisign-verify.lisp.

Function: positions (item vector start end)
Package

semz.minisign-verify.

Source

minisign-verify.lisp.

Function: pt* (n p)
Package

semz.minisign-verify.

Source

minisign-verify.lisp.

Function: pt+ (p1 p2)
Package

semz.minisign-verify.

Source

minisign-verify.lisp.

Function: pt= (p1 p2)
Package

semz.minisign-verify.

Source

minisign-verify.lisp.

Function: rotr64 (x y)
Package

semz.minisign-verify.

Source

minisign-verify.lisp.

Reader: s512-b (instance)
Writer: (setf s512-b) (instance)
Package

semz.minisign-verify.

Source

minisign-verify.lisp.

Target Slot

b.

Reader: s512-count (instance)
Writer: (setf s512-count) (instance)
Package

semz.minisign-verify.

Source

minisign-verify.lisp.

Target Slot

count.

Reader: s512-fp (instance)
Writer: (setf s512-fp) (instance)
Package

semz.minisign-verify.

Source

minisign-verify.lisp.

Target Slot

fp.

Reader: s512-h (instance)
Writer: (setf s512-h) (instance)
Package

semz.minisign-verify.

Source

minisign-verify.lisp.

Target Slot

h.

Function: s512-p (object)
Package

semz.minisign-verify.

Source

minisign-verify.lisp.

Function: sha-512 (data start end)
Package

semz.minisign-verify.

Source

minisign-verify.lisp.

Function: sha-512-compress (ctx)
Package

semz.minisign-verify.

Source

minisign-verify.lisp.

Function: sha-512-final (ctx)
Package

semz.minisign-verify.

Source

minisign-verify.lisp.

Function: sha-512-update (ctx data start end)
Package

semz.minisign-verify.

Source

minisign-verify.lisp.

Function: starts-with-subseq (prefix seq)
Package

semz.minisign-verify.

Source

minisign-verify.lisp.

Function: ub64+ (x y)
Package

semz.minisign-verify.

Source

minisign-verify.lisp.


5.2.5 Structures

Structure: b2b
Package

semz.minisign-verify.

Source

minisign-verify.lisp.

Direct superclasses

structure-object.

Direct slots
Slot: b
Type

(simple-array semz.minisign-verify::ub8 (128))

Initform

(make-array 128 :element-type (quote semz.minisign-verify::ub8) :initial-element 0)

Readers

b2b-b.

Writers

(setf b2b-b).

Slot: fp
Type

(integer 0 128)

Initform

0

Readers

b2b-fp.

Writers

(setf b2b-fp).

Slot: h
Type

(simple-array semz.minisign-verify::ub64 (8))

Initform

(let ((semz.minisign-verify::a (subseq semz.minisign-verify::*blake2b-init-vector* 0))) (setf (aref semz.minisign-verify::a 0) (logxor (aref semz.minisign-verify::a 0) 16842752 (ash 0 8) 64)) semz.minisign-verify::a)

Readers

b2b-h.

Writers

(setf b2b-h).

Slot: count
Package

common-lisp.

Type

(integer 0 *)

Initform

0

Readers

b2b-count.

Writers

(setf b2b-count).

Structure: hpt
Package

semz.minisign-verify.

Source

minisign-verify.lisp.

Direct superclasses

structure-object.

Direct slots
Slot: x
Type

(integer 0 *)

Initform

0

Readers

hpt-x.

Writers

(setf hpt-x).

Slot: y
Type

(integer 0 *)

Initform

1

Readers

hpt-y.

Writers

(setf hpt-y).

Slot: z
Type

(integer 0 *)

Initform

1

Readers

hpt-z.

Writers

(setf hpt-z).

Slot: t
Package

common-lisp.

Type

(integer 0 *)

Initform

0

Readers

hpt-t.

Writers

(setf hpt-t).

Structure: s512
Package

semz.minisign-verify.

Source

minisign-verify.lisp.

Direct superclasses

structure-object.

Direct slots
Slot: b
Type

(semz.minisign-verify::buffer 128)

Initform

(make-array 128 :element-type (quote semz.minisign-verify::ub8) :initial-element 0)

Readers

s512-b.

Writers

(setf s512-b).

Slot: fp
Type

(integer 0 1024)

Initform

0

Readers

s512-fp.

Writers

(setf s512-fp).

Slot: h
Type

(simple-array semz.minisign-verify::ub64 (8))

Initform

(subseq semz.minisign-verify::*sha-512-iv* 0)

Readers

s512-h.

Writers

(setf s512-h).

Slot: count
Package

common-lisp.

Type

(integer 0 *)

Initform

0

Readers

s512-count.

Writers

(setf s512-count).


5.2.6 Types

Type: buffer (&optional length)
Package

semz.minisign-verify.

Source

minisign-verify.lisp.

Type: ub32 ()
Package

semz.minisign-verify.

Source

minisign-verify.lisp.

Type: ub64 ()
Package

semz.minisign-verify.

Source

minisign-verify.lisp.

Type: ub8 ()
Package

semz.minisign-verify.

Source

minisign-verify.lisp.


Appendix A Indexes


A.1 Concepts


A.2 Functions

Jump to:   (  
B   C   D   E   F   G   H   L   M   P   R   S   U   V  
Index Entry  Section

(
(setf b2b-b): Private ordinary functions
(setf b2b-count): Private ordinary functions
(setf b2b-fp): Private ordinary functions
(setf b2b-h): Private ordinary functions
(setf hpt-t): Private ordinary functions
(setf hpt-x): Private ordinary functions
(setf hpt-y): Private ordinary functions
(setf hpt-z): Private ordinary functions
(setf s512-b): Private ordinary functions
(setf s512-count): Private ordinary functions
(setf s512-fp): Private ordinary functions
(setf s512-h): Private ordinary functions

B
b2b-b: Private ordinary functions
b2b-count: Private ordinary functions
b2b-fp: Private ordinary functions
b2b-h: Private ordinary functions
b2b-p: Private ordinary functions
blake2b: Private ordinary functions
blake2b-compress: Private ordinary functions
blake2b-compress/split: Private ordinary functions
blake2b-final: Private ordinary functions
blake2b-update: Private ordinary functions

C
checksum-data: Private ordinary functions
copy-b2b: Private ordinary functions
copy-hpt: Private ordinary functions
copy-s512: Private ordinary functions

D
decode-b64: Private ordinary functions
die: Private ordinary functions

E
ed25519-verify: Private ordinary functions

F
Function, (setf b2b-b): Private ordinary functions
Function, (setf b2b-count): Private ordinary functions
Function, (setf b2b-fp): Private ordinary functions
Function, (setf b2b-h): Private ordinary functions
Function, (setf hpt-t): Private ordinary functions
Function, (setf hpt-x): Private ordinary functions
Function, (setf hpt-y): Private ordinary functions
Function, (setf hpt-z): Private ordinary functions
Function, (setf s512-b): Private ordinary functions
Function, (setf s512-count): Private ordinary functions
Function, (setf s512-fp): Private ordinary functions
Function, (setf s512-h): Private ordinary functions
Function, b2b-b: Private ordinary functions
Function, b2b-count: Private ordinary functions
Function, b2b-fp: Private ordinary functions
Function, b2b-h: Private ordinary functions
Function, b2b-p: Private ordinary functions
Function, blake2b: Private ordinary functions
Function, blake2b-compress: Private ordinary functions
Function, blake2b-compress/split: Private ordinary functions
Function, blake2b-final: Private ordinary functions
Function, blake2b-update: Private ordinary functions
Function, checksum-data: Private ordinary functions
Function, copy-b2b: Private ordinary functions
Function, copy-hpt: Private ordinary functions
Function, copy-s512: Private ordinary functions
Function, decode-b64: Private ordinary functions
Function, die: Private ordinary functions
Function, ed25519-verify: Private ordinary functions
Function, hpt-p: Private ordinary functions
Function, hpt-t: Private ordinary functions
Function, hpt-x: Private ordinary functions
Function, hpt-y: Private ordinary functions
Function, hpt-z: Private ordinary functions
Function, lines: Private ordinary functions
Function, make-b2b: Private ordinary functions
Function, make-hpt: Private ordinary functions
Function, make-s512: Private ordinary functions
Function, modp*: Private ordinary functions
Function, modp+: Private ordinary functions
Function, modp-: Private ordinary functions
Function, modpexpt: Private ordinary functions
Function, parse-ed25519-point: Private ordinary functions
Function, parse-pubkey: Private ordinary functions
Function, parse-signature: Private ordinary functions
Function, positions: Private ordinary functions
Function, pt*: Private ordinary functions
Function, pt+: Private ordinary functions
Function, pt=: Private ordinary functions
Function, rotr64: Private ordinary functions
Function, s512-b: Private ordinary functions
Function, s512-count: Private ordinary functions
Function, s512-fp: Private ordinary functions
Function, s512-h: Private ordinary functions
Function, s512-p: Private ordinary functions
Function, sha-512: Private ordinary functions
Function, sha-512-compress: Private ordinary functions
Function, sha-512-final: Private ordinary functions
Function, sha-512-update: Private ordinary functions
Function, starts-with-subseq: Private ordinary functions
Function, ub64+: Private ordinary functions
Function, verify: Public ordinary functions

G
get-le: Private macros

H
hpt-p: Private ordinary functions
hpt-t: Private ordinary functions
hpt-x: Private ordinary functions
hpt-y: Private ordinary functions
hpt-z: Private ordinary functions

L
lines: Private ordinary functions

M
Macro, get-le: Private macros
Macro, rotr64/s: Private macros
Macro, ub64+/s: Private macros
make-b2b: Private ordinary functions
make-hpt: Private ordinary functions
make-s512: Private ordinary functions
modp*: Private ordinary functions
modp+: Private ordinary functions
modp-: Private ordinary functions
modpexpt: Private ordinary functions

P
parse-ed25519-point: Private ordinary functions
parse-pubkey: Private ordinary functions
parse-signature: Private ordinary functions
positions: Private ordinary functions
pt*: Private ordinary functions
pt+: Private ordinary functions
pt=: Private ordinary functions

R
rotr64: Private ordinary functions
rotr64/s: Private macros

S
s512-b: Private ordinary functions
s512-count: Private ordinary functions
s512-fp: Private ordinary functions
s512-h: Private ordinary functions
s512-p: Private ordinary functions
sha-512: Private ordinary functions
sha-512-compress: Private ordinary functions
sha-512-final: Private ordinary functions
sha-512-update: Private ordinary functions
starts-with-subseq: Private ordinary functions

U
ub64+: Private ordinary functions
ub64+/s: Private macros

V
verify: Public ordinary functions


A.3 Variables

Jump to:   *   +  
B   C   F   H   S   T   X   Y   Z  
Index Entry  Section

*
*blake-var-decls*: Private special variables
*blake-var-decls/half*: Private special variables
*blake-vars*: Private special variables
*blake-vars/half*: Private special variables
*blake2b-init-vector*: Private special variables
*blake2b-sigma*: Private special variables
*sha-512-iv*: Private special variables
*sha-512-k*: Private special variables
*trusted-prefix*: Private special variables
*untrusted-prefix*: Private special variables
*use-split-blake-p*: Private special variables

+
+bx+: Private constants
+by+: Private constants
+d+: Private constants
+l+: Private constants
+p+: Private constants

B
b: Private structures
b: Private structures

C
Constant, +bx+: Private constants
Constant, +by+: Private constants
Constant, +d+: Private constants
Constant, +l+: Private constants
Constant, +p+: Private constants
count: Private structures
count: Private structures

F
fp: Private structures
fp: Private structures

H
h: Private structures
h: Private structures

S
Slot, b: Private structures
Slot, b: Private structures
Slot, count: Private structures
Slot, count: Private structures
Slot, fp: Private structures
Slot, fp: Private structures
Slot, h: Private structures
Slot, h: Private structures
Slot, t: Private structures
Slot, x: Private structures
Slot, y: Private structures
Slot, z: Private structures
Special Variable, *blake-var-decls*: Private special variables
Special Variable, *blake-var-decls/half*: Private special variables
Special Variable, *blake-vars*: Private special variables
Special Variable, *blake-vars/half*: Private special variables
Special Variable, *blake2b-init-vector*: Private special variables
Special Variable, *blake2b-sigma*: Private special variables
Special Variable, *sha-512-iv*: Private special variables
Special Variable, *sha-512-k*: Private special variables
Special Variable, *trusted-prefix*: Private special variables
Special Variable, *untrusted-prefix*: Private special variables
Special Variable, *use-split-blake-p*: Private special variables

T
t: Private structures

X
x: Private structures

Y
y: Private structures

Z
z: Private structures