├── .github ├── FUNDING.yml └── workflows │ ├── docker-image.yaml │ └── run-tests.yaml ├── .gitignore ├── Dockerfile ├── Dockerfile.ccl ├── Dockerfile.ecl ├── Dockerfile.sbcl ├── LICENSE ├── Makefile ├── README.md ├── cl-ssh-keys.asd ├── cl-ssh-keys.test.asd ├── papers ├── drunken_bishop.pdf ├── ed25519-20110926.pdf ├── fips186-2.pdf ├── rfc4251.txt ├── rfc4253.txt ├── rfc5656.txt └── validation.pdf ├── scripts ├── run-ci-tests.sh └── run-tests.sh ├── src ├── base.lisp ├── cert-key.lisp ├── ciphers.lisp ├── conditions.lisp ├── dsa.lisp ├── ecdsa-nistp256.lisp ├── ecdsa-nistp384.lisp ├── ecdsa-nistp521.lisp ├── ed25519.lisp ├── generics.lisp ├── key-types.lisp ├── package.lisp ├── private-key.lisp ├── public-key.lisp ├── rfc8017.lisp ├── rsa.lisp └── signature.lisp └── t ├── test-keys ├── id_dsa ├── id_dsa-cert.pub ├── id_dsa.pub ├── id_ecdsa_nistp256 ├── id_ecdsa_nistp256-cert.pub ├── id_ecdsa_nistp256.pub ├── id_ecdsa_nistp384 ├── id_ecdsa_nistp384-cert.pub ├── id_ecdsa_nistp384.pub ├── id_ecdsa_nistp521 ├── id_ecdsa_nistp521-cert.pub ├── id_ecdsa_nistp521.pub ├── id_ed25519 ├── id_ed25519-cert.pub ├── id_ed25519.pub ├── id_ed25519_encrypted_3des-cbc ├── id_ed25519_encrypted_3des-cbc.pub ├── id_ed25519_encrypted_aes128-ctr ├── id_ed25519_encrypted_aes128-ctr.pub ├── id_ed25519_encrypted_aes192-cbc ├── id_ed25519_encrypted_aes192-cbc.pub ├── id_ed25519_encrypted_aes192-ctr ├── id_ed25519_encrypted_aes192-ctr.pub ├── id_ed25519_encrypted_aes256-cbc ├── id_ed25519_encrypted_aes256-cbc.pub ├── id_ed25519_encrypted_aes256-ctr ├── id_ed25519_encrypted_aes256-ctr.pub ├── id_ed25519_key_type_mismatch ├── id_ed25519_key_type_mismatch.pub ├── id_rsa_1024 ├── id_rsa_1024.pub ├── id_rsa_3072 ├── id_rsa_3072-cert.pub ├── id_rsa_3072.pub ├── id_rsa_3072_encrypted_aes128-cbc ├── id_rsa_3072_encrypted_aes128-cbc.pub ├── id_rsa_3072_host_ca ├── id_rsa_3072_host_ca.pub ├── id_rsa_3072_user_ca ├── id_rsa_3072_user_ca.pub ├── id_rsa_invalid_padding ├── id_rsa_missing_key_type.pub ├── id_rsa_unknown_key_type └── id_rsa_unknown_key_type.pub └── test-suite.lisp /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | --- 2 | github: [dnaeon] 3 | -------------------------------------------------------------------------------- /.github/workflows/docker-image.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnaeon/cl-ssh-keys/HEAD/.github/workflows/docker-image.yaml -------------------------------------------------------------------------------- /.github/workflows/run-tests.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnaeon/cl-ssh-keys/HEAD/.github/workflows/run-tests.yaml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Emacs backup files 2 | *~ 3 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnaeon/cl-ssh-keys/HEAD/Dockerfile -------------------------------------------------------------------------------- /Dockerfile.ccl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnaeon/cl-ssh-keys/HEAD/Dockerfile.ccl -------------------------------------------------------------------------------- /Dockerfile.ecl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnaeon/cl-ssh-keys/HEAD/Dockerfile.ecl -------------------------------------------------------------------------------- /Dockerfile.sbcl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnaeon/cl-ssh-keys/HEAD/Dockerfile.sbcl -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnaeon/cl-ssh-keys/HEAD/LICENSE -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnaeon/cl-ssh-keys/HEAD/Makefile -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnaeon/cl-ssh-keys/HEAD/README.md -------------------------------------------------------------------------------- /cl-ssh-keys.asd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnaeon/cl-ssh-keys/HEAD/cl-ssh-keys.asd -------------------------------------------------------------------------------- /cl-ssh-keys.test.asd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnaeon/cl-ssh-keys/HEAD/cl-ssh-keys.test.asd -------------------------------------------------------------------------------- /papers/drunken_bishop.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnaeon/cl-ssh-keys/HEAD/papers/drunken_bishop.pdf -------------------------------------------------------------------------------- /papers/ed25519-20110926.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnaeon/cl-ssh-keys/HEAD/papers/ed25519-20110926.pdf -------------------------------------------------------------------------------- /papers/fips186-2.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnaeon/cl-ssh-keys/HEAD/papers/fips186-2.pdf -------------------------------------------------------------------------------- /papers/rfc4251.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnaeon/cl-ssh-keys/HEAD/papers/rfc4251.txt -------------------------------------------------------------------------------- /papers/rfc4253.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnaeon/cl-ssh-keys/HEAD/papers/rfc4253.txt -------------------------------------------------------------------------------- /papers/rfc5656.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnaeon/cl-ssh-keys/HEAD/papers/rfc5656.txt -------------------------------------------------------------------------------- /papers/validation.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnaeon/cl-ssh-keys/HEAD/papers/validation.pdf -------------------------------------------------------------------------------- /scripts/run-ci-tests.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnaeon/cl-ssh-keys/HEAD/scripts/run-ci-tests.sh -------------------------------------------------------------------------------- /scripts/run-tests.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnaeon/cl-ssh-keys/HEAD/scripts/run-tests.sh -------------------------------------------------------------------------------- /src/base.lisp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnaeon/cl-ssh-keys/HEAD/src/base.lisp -------------------------------------------------------------------------------- /src/cert-key.lisp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnaeon/cl-ssh-keys/HEAD/src/cert-key.lisp -------------------------------------------------------------------------------- /src/ciphers.lisp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnaeon/cl-ssh-keys/HEAD/src/ciphers.lisp -------------------------------------------------------------------------------- /src/conditions.lisp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnaeon/cl-ssh-keys/HEAD/src/conditions.lisp -------------------------------------------------------------------------------- /src/dsa.lisp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnaeon/cl-ssh-keys/HEAD/src/dsa.lisp -------------------------------------------------------------------------------- /src/ecdsa-nistp256.lisp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnaeon/cl-ssh-keys/HEAD/src/ecdsa-nistp256.lisp -------------------------------------------------------------------------------- /src/ecdsa-nistp384.lisp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnaeon/cl-ssh-keys/HEAD/src/ecdsa-nistp384.lisp -------------------------------------------------------------------------------- /src/ecdsa-nistp521.lisp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnaeon/cl-ssh-keys/HEAD/src/ecdsa-nistp521.lisp -------------------------------------------------------------------------------- /src/ed25519.lisp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnaeon/cl-ssh-keys/HEAD/src/ed25519.lisp -------------------------------------------------------------------------------- /src/generics.lisp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnaeon/cl-ssh-keys/HEAD/src/generics.lisp -------------------------------------------------------------------------------- /src/key-types.lisp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnaeon/cl-ssh-keys/HEAD/src/key-types.lisp -------------------------------------------------------------------------------- /src/package.lisp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnaeon/cl-ssh-keys/HEAD/src/package.lisp -------------------------------------------------------------------------------- /src/private-key.lisp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnaeon/cl-ssh-keys/HEAD/src/private-key.lisp -------------------------------------------------------------------------------- /src/public-key.lisp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnaeon/cl-ssh-keys/HEAD/src/public-key.lisp -------------------------------------------------------------------------------- /src/rfc8017.lisp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnaeon/cl-ssh-keys/HEAD/src/rfc8017.lisp -------------------------------------------------------------------------------- /src/rsa.lisp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnaeon/cl-ssh-keys/HEAD/src/rsa.lisp -------------------------------------------------------------------------------- /src/signature.lisp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnaeon/cl-ssh-keys/HEAD/src/signature.lisp -------------------------------------------------------------------------------- /t/test-keys/id_dsa: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnaeon/cl-ssh-keys/HEAD/t/test-keys/id_dsa -------------------------------------------------------------------------------- /t/test-keys/id_dsa-cert.pub: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnaeon/cl-ssh-keys/HEAD/t/test-keys/id_dsa-cert.pub -------------------------------------------------------------------------------- /t/test-keys/id_dsa.pub: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnaeon/cl-ssh-keys/HEAD/t/test-keys/id_dsa.pub -------------------------------------------------------------------------------- /t/test-keys/id_ecdsa_nistp256: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnaeon/cl-ssh-keys/HEAD/t/test-keys/id_ecdsa_nistp256 -------------------------------------------------------------------------------- /t/test-keys/id_ecdsa_nistp256-cert.pub: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnaeon/cl-ssh-keys/HEAD/t/test-keys/id_ecdsa_nistp256-cert.pub -------------------------------------------------------------------------------- /t/test-keys/id_ecdsa_nistp256.pub: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnaeon/cl-ssh-keys/HEAD/t/test-keys/id_ecdsa_nistp256.pub -------------------------------------------------------------------------------- /t/test-keys/id_ecdsa_nistp384: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnaeon/cl-ssh-keys/HEAD/t/test-keys/id_ecdsa_nistp384 -------------------------------------------------------------------------------- /t/test-keys/id_ecdsa_nistp384-cert.pub: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnaeon/cl-ssh-keys/HEAD/t/test-keys/id_ecdsa_nistp384-cert.pub -------------------------------------------------------------------------------- /t/test-keys/id_ecdsa_nistp384.pub: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnaeon/cl-ssh-keys/HEAD/t/test-keys/id_ecdsa_nistp384.pub -------------------------------------------------------------------------------- /t/test-keys/id_ecdsa_nistp521: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnaeon/cl-ssh-keys/HEAD/t/test-keys/id_ecdsa_nistp521 -------------------------------------------------------------------------------- /t/test-keys/id_ecdsa_nistp521-cert.pub: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnaeon/cl-ssh-keys/HEAD/t/test-keys/id_ecdsa_nistp521-cert.pub -------------------------------------------------------------------------------- /t/test-keys/id_ecdsa_nistp521.pub: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnaeon/cl-ssh-keys/HEAD/t/test-keys/id_ecdsa_nistp521.pub -------------------------------------------------------------------------------- /t/test-keys/id_ed25519: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnaeon/cl-ssh-keys/HEAD/t/test-keys/id_ed25519 -------------------------------------------------------------------------------- /t/test-keys/id_ed25519-cert.pub: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnaeon/cl-ssh-keys/HEAD/t/test-keys/id_ed25519-cert.pub -------------------------------------------------------------------------------- /t/test-keys/id_ed25519.pub: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnaeon/cl-ssh-keys/HEAD/t/test-keys/id_ed25519.pub -------------------------------------------------------------------------------- /t/test-keys/id_ed25519_encrypted_3des-cbc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnaeon/cl-ssh-keys/HEAD/t/test-keys/id_ed25519_encrypted_3des-cbc -------------------------------------------------------------------------------- /t/test-keys/id_ed25519_encrypted_3des-cbc.pub: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnaeon/cl-ssh-keys/HEAD/t/test-keys/id_ed25519_encrypted_3des-cbc.pub -------------------------------------------------------------------------------- /t/test-keys/id_ed25519_encrypted_aes128-ctr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnaeon/cl-ssh-keys/HEAD/t/test-keys/id_ed25519_encrypted_aes128-ctr -------------------------------------------------------------------------------- /t/test-keys/id_ed25519_encrypted_aes128-ctr.pub: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnaeon/cl-ssh-keys/HEAD/t/test-keys/id_ed25519_encrypted_aes128-ctr.pub -------------------------------------------------------------------------------- /t/test-keys/id_ed25519_encrypted_aes192-cbc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnaeon/cl-ssh-keys/HEAD/t/test-keys/id_ed25519_encrypted_aes192-cbc -------------------------------------------------------------------------------- /t/test-keys/id_ed25519_encrypted_aes192-cbc.pub: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnaeon/cl-ssh-keys/HEAD/t/test-keys/id_ed25519_encrypted_aes192-cbc.pub -------------------------------------------------------------------------------- /t/test-keys/id_ed25519_encrypted_aes192-ctr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnaeon/cl-ssh-keys/HEAD/t/test-keys/id_ed25519_encrypted_aes192-ctr -------------------------------------------------------------------------------- /t/test-keys/id_ed25519_encrypted_aes192-ctr.pub: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnaeon/cl-ssh-keys/HEAD/t/test-keys/id_ed25519_encrypted_aes192-ctr.pub -------------------------------------------------------------------------------- /t/test-keys/id_ed25519_encrypted_aes256-cbc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnaeon/cl-ssh-keys/HEAD/t/test-keys/id_ed25519_encrypted_aes256-cbc -------------------------------------------------------------------------------- /t/test-keys/id_ed25519_encrypted_aes256-cbc.pub: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnaeon/cl-ssh-keys/HEAD/t/test-keys/id_ed25519_encrypted_aes256-cbc.pub -------------------------------------------------------------------------------- /t/test-keys/id_ed25519_encrypted_aes256-ctr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnaeon/cl-ssh-keys/HEAD/t/test-keys/id_ed25519_encrypted_aes256-ctr -------------------------------------------------------------------------------- /t/test-keys/id_ed25519_encrypted_aes256-ctr.pub: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnaeon/cl-ssh-keys/HEAD/t/test-keys/id_ed25519_encrypted_aes256-ctr.pub -------------------------------------------------------------------------------- /t/test-keys/id_ed25519_key_type_mismatch: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnaeon/cl-ssh-keys/HEAD/t/test-keys/id_ed25519_key_type_mismatch -------------------------------------------------------------------------------- /t/test-keys/id_ed25519_key_type_mismatch.pub: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnaeon/cl-ssh-keys/HEAD/t/test-keys/id_ed25519_key_type_mismatch.pub -------------------------------------------------------------------------------- /t/test-keys/id_rsa_1024: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnaeon/cl-ssh-keys/HEAD/t/test-keys/id_rsa_1024 -------------------------------------------------------------------------------- /t/test-keys/id_rsa_1024.pub: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnaeon/cl-ssh-keys/HEAD/t/test-keys/id_rsa_1024.pub -------------------------------------------------------------------------------- /t/test-keys/id_rsa_3072: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnaeon/cl-ssh-keys/HEAD/t/test-keys/id_rsa_3072 -------------------------------------------------------------------------------- /t/test-keys/id_rsa_3072-cert.pub: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnaeon/cl-ssh-keys/HEAD/t/test-keys/id_rsa_3072-cert.pub -------------------------------------------------------------------------------- /t/test-keys/id_rsa_3072.pub: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnaeon/cl-ssh-keys/HEAD/t/test-keys/id_rsa_3072.pub -------------------------------------------------------------------------------- /t/test-keys/id_rsa_3072_encrypted_aes128-cbc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnaeon/cl-ssh-keys/HEAD/t/test-keys/id_rsa_3072_encrypted_aes128-cbc -------------------------------------------------------------------------------- /t/test-keys/id_rsa_3072_encrypted_aes128-cbc.pub: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnaeon/cl-ssh-keys/HEAD/t/test-keys/id_rsa_3072_encrypted_aes128-cbc.pub -------------------------------------------------------------------------------- /t/test-keys/id_rsa_3072_host_ca: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnaeon/cl-ssh-keys/HEAD/t/test-keys/id_rsa_3072_host_ca -------------------------------------------------------------------------------- /t/test-keys/id_rsa_3072_host_ca.pub: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnaeon/cl-ssh-keys/HEAD/t/test-keys/id_rsa_3072_host_ca.pub -------------------------------------------------------------------------------- /t/test-keys/id_rsa_3072_user_ca: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnaeon/cl-ssh-keys/HEAD/t/test-keys/id_rsa_3072_user_ca -------------------------------------------------------------------------------- /t/test-keys/id_rsa_3072_user_ca.pub: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnaeon/cl-ssh-keys/HEAD/t/test-keys/id_rsa_3072_user_ca.pub -------------------------------------------------------------------------------- /t/test-keys/id_rsa_invalid_padding: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnaeon/cl-ssh-keys/HEAD/t/test-keys/id_rsa_invalid_padding -------------------------------------------------------------------------------- /t/test-keys/id_rsa_missing_key_type.pub: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnaeon/cl-ssh-keys/HEAD/t/test-keys/id_rsa_missing_key_type.pub -------------------------------------------------------------------------------- /t/test-keys/id_rsa_unknown_key_type: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnaeon/cl-ssh-keys/HEAD/t/test-keys/id_rsa_unknown_key_type -------------------------------------------------------------------------------- /t/test-keys/id_rsa_unknown_key_type.pub: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnaeon/cl-ssh-keys/HEAD/t/test-keys/id_rsa_unknown_key_type.pub -------------------------------------------------------------------------------- /t/test-suite.lisp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnaeon/cl-ssh-keys/HEAD/t/test-suite.lisp --------------------------------------------------------------------------------