on master help sign in
vere section
86ff221drbeefsupreme
arvo/reference/cryptography.md+45
@@ -131,6 +131,51 @@ with a non-comet.
131
131
132### `++ed:crypto` {#ed}
132### `++ed:crypto` {#ed}
133
133
134+See also the section on Ed25519 for [Vere](#vere-ed).
135+
134### `++aes:crypto` {#aes}
136### `++aes:crypto` {#aes}
135
137
138+See also the section on AES SIV for [Vere](#vere-aes).
139+
140+
141+## Vere
142+
143+All cryptographic primitives utilized by Arvo are
144+[jetted](@/docs/vere/jetting.md). This is done for performance-related reasons
145+in other parts of the system, but for cryptography this is also extremely
146+important because it allows us to utilize standard reference implementations for
147+the primitives written in C.
148+
149+All jets related to encryption may be found in `pkg/urbit/jets/e/` (I think?).
150+
151+In this section we review what specific implementations are utilized.
152+
153+### Ed25519 {#vere-ed}
154+
155+Urbit implements [Ed25519](http://ed25519.cr.yp.to/) based on the SUPERCOP
156+"ref10" implementation. Additionally there is key exchanging and scalar addition
157+included to further aid building a PKI using Ed25519. All code is licensed under
158+the permissive zlib license.
159+
160+All code is pure ANSI C without any dependencies, except for the random seed
161+generation which uses standard OS cryptography APIs (CryptGenRandom on Windows,
162+`/dev/urandom` on nix).
163+
164+### AES SIV {#vere-aes}
165+
166+The library we utilize for AES SIV is an
167+[RFC5297](https://tools.ietf.org/html/rfc5297)-compliant C implementation of
168+AES-SIV written by Daniel Franke on behalf of [Akamai
169+Technologies](https://www.akamai.com). It is published under the [Apache License
170+(v2.0)](https://www.apache.org/licenses/LICENSE-2.0). It uses OpenSSL for the
171+underlying [AES](https://en.wikipedia.org/wiki/Advanced_Encryption_Standard) and
172+[CMAC](https://en.wikipedia.org/wiki/One-key_MAC) implementations and follows a
173+similar interface style.
174+
175+While the jets are found in `pkg/urbit/jets/e`, the statically-linked package is
176+found at `pkg/libas_siv/`.
177+
178+
179+
180+
136
181