diff options
Diffstat (limited to 'third_party/lisp/ironclad.nix')
-rw-r--r-- | third_party/lisp/ironclad.nix | 155 |
1 files changed, 155 insertions, 0 deletions
diff --git a/third_party/lisp/ironclad.nix b/third_party/lisp/ironclad.nix new file mode 100644 index 000000000000..cdd829924ee5 --- /dev/null +++ b/third_party/lisp/ironclad.nix @@ -0,0 +1,155 @@ +{ depot, pkgs, ...}: + +let + inherit (pkgs) runCommand; + inherit (depot.nix.buildLisp) bundled; + src = pkgs.fetchFromGitHub { + owner = "sharplispers"; + repo = "ironclad"; + rev = "c3aa33080621abc10fdb0f34acc4655cc4e982a6"; + sha256 = "0k4bib9mbrzalbl9ivkw4a7g4c7bbad1l5jw4pzkifqszy2swkr5"; + }; + + getSrc = f: "${src}/src/${f}"; + +in depot.nix.buildLisp.library { + name = "ironclad"; + + deps = with depot.third_party.lisp; [ + (bundled "asdf") + { sbcl = bundled "sb-rotate-byte"; } + { sbcl = bundled "sb-posix"; } + alexandria + bordeaux-threads + nibbles + ]; + + srcs = [ + { + # TODO(grfn): Figure out how to get this compiling with the assembly + # optimization eventually - see https://cl.tvl.fyi/c/depot/+/1333 + sbcl = runCommand "package.lisp" {} '' + substitute ${src}/src/package.lisp $out \ + --replace \#-ecl-bytecmp "" \ + --replace '(pushnew :ironclad-assembly *features*)' "" + ''; + default = getSrc "package.lisp"; + } + ] ++ map getSrc [ + "macro-utils.lisp" + ] ++ [ + { sbcl = getSrc "opt/sbcl/fndb.lisp"; } + { sbcl = getSrc "opt/sbcl/cpu-features.lisp"; } + { sbcl = getSrc "opt/sbcl/x86oid-vm.lisp"; } + + { ecl = getSrc "opt/ecl/c-functions.lisp"; } + + { ccl = getSrc "opt/ccl/x86oid-vm.lisp"; } + ] ++ map getSrc [ + + "common.lisp" + "conditions.lisp" + "generic.lisp" + "util.lisp" + + "ciphers/padding.lisp" + "ciphers/cipher.lisp" + "ciphers/chacha.lisp" + "ciphers/modes.lisp" + "ciphers/salsa20.lisp" + "ciphers/xchacha.lisp" + "ciphers/xsalsa20.lisp" + "ciphers/aes.lisp" + "ciphers/arcfour.lisp" + "ciphers/arcfour.lisp" + "ciphers/aria.lisp" + "ciphers/blowfish.lisp" + "ciphers/camellia.lisp" + "ciphers/cast5.lisp" + "ciphers/des.lisp" + "ciphers/idea.lisp" + "ciphers/keystream.lisp" + "ciphers/kalyna.lisp" + "ciphers/kuznyechik.lisp" + "ciphers/make-cipher.lisp" + "ciphers/misty1.lisp" + "ciphers/rc2.lisp" + "ciphers/rc5.lisp" + "ciphers/rc6.lisp" + "ciphers/seed.lisp" + "ciphers/serpent.lisp" + "ciphers/sm4.lisp" + "ciphers/sosemanuk.lisp" + "ciphers/square.lisp" + "ciphers/tea.lisp" + "ciphers/threefish.lisp" + "ciphers/twofish.lisp" + "ciphers/xor.lisp" + "ciphers/xtea.lisp" + + "digests/digest.lisp" + "digests/adler32.lisp" + "digests/blake2.lisp" + "digests/blake2s.lisp" + "digests/crc24.lisp" + "digests/crc32.lisp" + "digests/groestl.lisp" + "digests/jh.lisp" + "digests/kupyna.lisp" + "digests/md2.lisp" + "digests/md4.lisp" + "digests/md5.lisp" + "digests/md5-lispworks-int32.lisp" + "digests/ripemd-128.lisp" + "digests/ripemd-160.lisp" + "digests/sha1.lisp" + "digests/sha256.lisp" + "digests/sha3.lisp" + "digests/sha512.lisp" + "digests/skein.lisp" + "digests/sm3.lisp" + "digests/streebog.lisp" + "digests/tiger.lisp" + "digests/tree-hash.lisp" + "digests/whirlpool.lisp" + + "prng/prng.lisp" + "prng/generator.lisp" + "prng/fortuna.lisp" + "prng/os-prng.lisp" + + "math.lisp" + + "macs/mac.lisp" + "macs/blake2-mac.lisp" + "macs/blake2s-mac.lisp" + "macs/cmac.lisp" + "macs/hmac.lisp" + "macs/gmac.lisp" + "macs/poly1305.lisp" + "macs/siphash.lisp" + "macs/skein-mac.lisp" + + "kdf/kdf-common.lisp" + "kdf/argon2.lisp" + "kdf/password-hash.lisp" + "kdf/pkcs5.lisp" + "kdf/scrypt.lisp" + "kdf/hmac.lisp" + + "aead/aead.lisp" + "aead/eax.lisp" + "aead/etm.lisp" + "aead/gcm.lisp" + + "public-key/public-key.lisp" + "public-key/curve25519.lisp" + "public-key/curve448.lisp" + "public-key/dsa.lisp" + "public-key/ed25519.lisp" + "public-key/ed448.lisp" + "public-key/elgamal.lisp" + "public-key/pkcs1.lisp" + "public-key/rsa.lisp" + ]; +} |