Quantum Outpost

Public scan · 2026-05-01

openssh/openssh-portable

Portable OpenSSH

github → C ★ 3,809 commit 5fa60ae scanner v0.1.0

Files scanned

429

Shor-vulnerable

78

RSA / ECC / Ed* / X25519

Grover-weakened

37

AES-128 / SHA-1 / MD5

Total occurrences

115

Breakdown by primitive

  • ECC 46
  • SHA-1 (broken, replace with SHA-256) 19
  • RSA/DSA/DH 16
  • Asymmetric 15
  • MD5 (broken, replace with SHA-256) 10
  • AES-128 (double to AES-256) 8
  • ECC/RSA 1
dh.c open ↗
  • L39 Shor RSA/DSA/DH c-openssl-rsa
    #include <openssl/dh.h>
ed25519-openssl.c open ↗
  • L53 Shor Asymmetric c-openssl-evp-pkey
    if ((ctx = EVP_PKEY_CTX_new_id(EVP_PKEY_ED25519, NULL)) == NULL) {
  • L109 Shor Asymmetric c-openssl-evp-pkey
    if ((pkey = EVP_PKEY_new_raw_private_key(EVP_PKEY_ED25519, NULL,
  • L176 Shor Asymmetric c-openssl-evp-pkey
    if ((pkey = EVP_PKEY_new_raw_public_key(EVP_PKEY_ED25519, NULL,
kex-names.c open ↗
  • L66 Shor ECC c-openssl-nid
    NID_X9_62_prime256v1, SSH_DIGEST_SHA256, KEX_NOT_PQ },
  • L67 Shor ECC c-openssl-nid
    { KEX_ECDH_SHA2_NISTP384, KEX_ECDH_SHA2, NID_secp384r1,
  • L70 Shor ECC c-openssl-nid
    { KEX_ECDH_SHA2_NISTP521, KEX_ECDH_SHA2, NID_secp521r1,
kex.c open ↗
  • L39 Shor RSA/DSA/DH c-openssl-rsa
    #include <openssl/dh.h>
kexdh.c open ↗
  • L37 Shor RSA/DSA/DH c-openssl-rsa
    #include <openssl/dh.h>
kexgexc.c open ↗
  • L35 Shor RSA/DSA/DH c-openssl-rsa
    #include <openssl/dh.h>
kexgexs.c open ↗
  • L38 Shor RSA/DSA/DH c-openssl-rsa
    #include <openssl/dh.h>
moduli.c open ↗
  • L47 Shor RSA/DSA/DH c-openssl-rsa
    #include <openssl/dh.h>
monitor.c open ↗
  • L51 Shor RSA/DSA/DH c-openssl-rsa
    #include <openssl/dh.h>
  • L752 Grover SHA-1 (broken, replace with SHA-256) sha1
    * Supported KEX types use SHA1 (20 bytes), SHA256 (32 bytes),
monitor_wrap.c open ↗
  • L45 Shor RSA/DSA/DH c-openssl-rsa
    #include <openssl/dh.h>
openbsd-compat/openssl-compat.h open ↗
  • L27 Shor RSA/DSA/DH c-openssl-rsa
    #include <openssl/rsa.h>
  • L31 Shor RSA/DSA/DH c-openssl-rsa
    #include <openssl/dh.h>
regress/misc/sk-dummy/sk-dummy.c open ↗
  • L36 Shor ECC c-openssl-ec
    #include <openssl/ec.h>
  • L106 Shor ECC c-openssl-nid
    if ((key = EC_KEY_new_by_curve_name(NID_X9_62_prime256v1)) == NULL) {
  • L334 Shor Asymmetric c-openssl-evp-pkey
    if (EVP_PKEY_base_id(pk) != EVP_PKEY_EC) {
regress/misc/ssh-verify-attestation/ssh-verify-attestation.c open ↗
  • L148 Shor ECC c-openssl-nid
    (g = EC_GROUP_new_by_curve_name(NID_X9_62_prime256v1)) == NULL ||
  • L215 Shor ECC c-openssl-nid
    key->ecdsa_nid = NID_X9_62_prime256v1;
  • L312 Shor ECC c-openssl-nid
    case NID_X9_62_prime256v1:
  • L392 Shor ECC c-openssl-nid
    case NID_X9_62_prime256v1:
regress/unittests/sshbuf/test_sshbuf_getput_crypto.c open ↗
  • L52 Shor ECC c-openssl-nid
    int ec256_nid = NID_X9_62_prime256v1;
regress/unittests/sshbuf/test_sshbuf_getput_fuzz.c open ↗
  • L63 Shor ECC c-openssl-nid
    eck = EC_KEY_new_by_curve_name(NID_X9_62_prime256v1);
regress/unittests/sshkey/common.c open ↗
  • L21 Shor RSA/DSA/DH c-openssl-rsa
    #include <openssl/rsa.h>
regress/unittests/sshkey/test_file.c open ↗
  • L21 Shor RSA/DSA/DH c-openssl-rsa
    #include <openssl/rsa.h>
  • L109 Grover SHA-1 (broken, replace with SHA-256) sha1
    TEST_START("load RSA cert with SHA1 signature");
regress/unittests/sshkey/test_fuzz.c open ↗
  • L21 Shor RSA/DSA/DH c-openssl-rsa
    #include <openssl/rsa.h>
regress/unittests/sshkey/test_sshkey.c open ↗
  • L18 Shor RSA/DSA/DH c-openssl-rsa
    #include <openssl/rsa.h>
  • L631 Grover SHA-1 (broken, replace with SHA-256) sha1
    signature_benchmark("RSA-1024/SHA1", KEY_RSA, 1024, "ssh-rsa", 0);
  • L634 Grover SHA-1 (broken, replace with SHA-256) sha1
    signature_benchmark("RSA-2048/SHA1", KEY_RSA, 2048, "ssh-rsa", 0);
  • L643 Grover SHA-1 (broken, replace with SHA-256) sha1
    signature_benchmark("RSA-1024/SHA1", KEY_RSA, 1024, "ssh-rsa", 1);
  • L646 Grover SHA-1 (broken, replace with SHA-256) sha1
    signature_benchmark("RSA-2048/SHA1", KEY_RSA, 2048, "ssh-rsa", 1);
sk-usbhid.c open ↗
  • L47 Shor ECC c-openssl-ec
    #include <openssl/ec.h>
  • L618 Shor ECC c-openssl-nid
    (g = EC_GROUP_new_by_curve_name(NID_X9_62_prime256v1)) == NULL ||
ssh-ecdsa-sk.c open ↗
  • L36 Shor ECC c-openssl-ec
    #include <openssl/ec.h>
  • L262 Shor ECC c-openssl-nid
    if (key->ecdsa_nid != NID_X9_62_prime256v1)
  • L463 Shor ECC c-openssl-nid
    /* .nid = */		NID_X9_62_prime256v1,
  • L475 Shor ECC c-openssl-nid
    /* .nid = */		NID_X9_62_prime256v1,
  • L487 Shor ECC c-openssl-nid
    /* .nid = */		NID_X9_62_prime256v1,
  • L499 Shor ECC c-openssl-nid
    /* .nid = */		NID_X9_62_prime256v1,
ssh-ecdsa.c open ↗
  • L35 Shor ECC c-openssl-ec
    #include <openssl/ec.h>
  • L50 Shor ECC c-openssl-nid
    NID_X9_62_prime256v1,
  • L51 Shor ECC c-openssl-nid
    NID_secp384r1,
  • L53 Shor ECC c-openssl-nid
    NID_secp521r1,
  • L105 Shor ECC c-openssl-nid
    case NID_X9_62_prime256v1:
  • L107 Shor ECC c-openssl-nid
    case NID_secp384r1:
  • L110 Shor ECC c-openssl-nid
    case NID_secp521r1:
  • L175 Shor Asymmetric c-openssl-evp-pkey
    if ((ctx = EVP_PKEY_CTX_new_id(EVP_PKEY_EC, NULL)) == NULL)
  • L516 Shor ECC c-openssl-nid
    /* .nid = */		NID_X9_62_prime256v1,
  • L528 Shor ECC c-openssl-nid
    /* .nid = */		NID_X9_62_prime256v1,
  • L540 Shor ECC c-openssl-nid
    /* .nid = */		NID_secp384r1,
  • L552 Shor ECC c-openssl-nid
    /* .nid = */		NID_secp384r1,
  • L565 Shor ECC c-openssl-nid
    /* .nid = */		NID_secp521r1,
  • L577 Shor ECC c-openssl-nid
    /* .nid = */		NID_secp521r1,
ssh-keygen.c open ↗
  • L665 Shor Asymmetric c-openssl-evp-pkey
    case EVP_PKEY_RSA:
  • L673 Shor Asymmetric c-openssl-evp-pkey
    case EVP_PKEY_EC:
ssh-keysign.c open ↗
  • L41 Shor RSA/DSA/DH c-openssl-rsa
    #include <openssl/rsa.h>
  • L86 Grover SHA-1 (broken, replace with SHA-256) sha1
    if (len != 20 && /* SHA1 */
ssh-pkcs11.c open ↗
  • L1038 Shor ECC/RSA rust-cargo-deps
    rsa = RSA_new();
  • L1284 Shor Asymmetric c-openssl-evp-pkey
    if (EVP_PKEY_base_id(evp) == EVP_PKEY_RSA) {
  • L1318 Shor Asymmetric c-openssl-evp-pkey
    } else if (EVP_PKEY_base_id(evp) == EVP_PKEY_EC) {
  • L1358 Shor Asymmetric c-openssl-evp-pkey
    } else if (EVP_PKEY_base_id(evp) == EVP_PKEY_ED25519) {
ssh-rsa.c open ↗
  • L130 Shor Asymmetric c-openssl-evp-pkey
    if ((ctx = EVP_PKEY_CTX_new_id(EVP_PKEY_RSA, NULL)) == NULL) {
  • L400 Grover SHA-1 (broken, replace with SHA-256) sha1
    /* RSASSA-PKCS1-v1_5 (PKCS #1 v2.0 signature) with SHA1 */
ssh-sk.c open ↗
  • L32 Shor ECC c-openssl-ec
    #include <openssl/ec.h>
  • L220 Shor ECC c-openssl-nid
    key->ecdsa_nid = NID_X9_62_prime256v1;
sshkey.c open ↗
  • L567 Shor ECC c-openssl-nid
    return NID_X9_62_prime256v1;
  • L569 Shor ECC c-openssl-nid
    return NID_secp384r1;
  • L572 Shor ECC c-openssl-nid
    return NID_secp521r1;
  • L582 Shor ECC c-openssl-nid
    case NID_X9_62_prime256v1:
  • L584 Shor ECC c-openssl-nid
    case NID_secp384r1:
  • L587 Shor ECC c-openssl-nid
    case NID_secp521r1:
  • L600 Shor ECC c-openssl-nid
    return NID_X9_62_prime256v1;
  • L602 Shor ECC c-openssl-nid
    return NID_secp384r1;
  • L605 Shor ECC c-openssl-nid
    return NID_secp521r1;
  • L616 Shor ECC c-openssl-nid
    case NID_X9_62_prime256v1:
  • L618 Shor ECC c-openssl-nid
    case NID_secp384r1:
  • L621 Shor ECC c-openssl-nid
    case NID_secp521r1:
  • L3330 Shor Asymmetric c-openssl-evp-pkey
    pkey = EVP_PKEY_new_raw_private_key(EVP_PKEY_ED25519,
  • L3530 Shor Asymmetric c-openssl-evp-pkey
    if (EVP_PKEY_base_id(pk) == EVP_PKEY_RSA &&
  • L3554 Shor Asymmetric c-openssl-evp-pkey
    } else if (EVP_PKEY_base_id(pk) == EVP_PKEY_EC &&
  • L3581 Shor Asymmetric c-openssl-evp-pkey
    } else if (EVP_PKEY_base_id(pk) == EVP_PKEY_ED25519 &&
sshkey.h open ↗
  • L32 Shor RSA/DSA/DH c-openssl-rsa
    #include <openssl/rsa.h>
authfd.c open ↗
  • L441 Grover SHA-1 (broken, replace with SHA-256) sha1
    * an incorrect RSA signature algorithm (e.g. "ssh-rsa" (RSA/SHA1) vs.
cipher.c open ↗
  • L90 Grover AES-128 (double to AES-256) aes-128-flag
    { "aes128-cbc",		16, 16, 0, 0, CFLAG_CBC, EVP_aes_128_cbc },
  • L93 Grover AES-128 (double to AES-256) aes-128-flag
    { "aes128-ctr",		16, 16, 0, 0, 0, EVP_aes_128_ctr },
  • L96 Grover AES-128 (double to AES-256) aes-128-flag
    { "[email protected]",
  • L101 Grover AES-128 (double to AES-256) aes-128-flag
    { "aes128-ctr",		16, 16, 0, 0, CFLAG_AESCTR, NULL },
digest-libc.c open ↗
  • L76 Grover MD5 (broken, replace with SHA-256) md5
    "MD5",
  • L86 Grover SHA-1 (broken, replace with SHA-256) sha1
    "SHA1",
digest-openssl.c open ↗
  • L59 Grover MD5 (broken, replace with SHA-256) md5
    { SSH_DIGEST_MD5,	"MD5",		16,	EVP_md5 },
  • L60 Grover SHA-1 (broken, replace with SHA-256) sha1
    { SSH_DIGEST_SHA1,	"SHA1",		20,	EVP_sha1 },
krl.c open ↗
  • L1206 Grover SHA-1 (broken, replace with SHA-256) sha1
    KRL_DBG(("revoked by key SHA1"));
  • L1343 Grover SHA-1 (broken, replace with SHA-256) sha1
    * There is not KRL spec keyword for raw SHA1 hashes, so
  • L1347 Grover SHA-1 (broken, replace with SHA-256) sha1
    fprintf(f, "# hash SHA1:%s\n", fp);
myproposal.h open ↗
openbsd-compat/md5.c open ↗
  • L4 Grover MD5 (broken, replace with SHA-256) md5
    * This code implements the MD5 message-digest algorithm.
  • L51 Grover MD5 (broken, replace with SHA-256) md5
    * Start MD5 accumulation.  Set bit count to 0 and buffer to mysterious
  • L147 Grover MD5 (broken, replace with SHA-256) md5
    /* This is the central step in the MD5 algorithm. */
  • L152 Grover MD5 (broken, replace with SHA-256) md5
    * The core of the MD5 algorithm, this alters an existing MD5 hash to
  • L152 Grover MD5 (broken, replace with SHA-256) md5
    * The core of the MD5 algorithm, this alters an existing MD5 hash to
openbsd-compat/md5.h open ↗
  • L4 Grover MD5 (broken, replace with SHA-256) md5
    * This code implements the MD5 message-digest algorithm.
openbsd-compat/sha1.c open ↗
  • L4 Grover SHA-1 (broken, replace with SHA-256) sha1
    * SHA-1 in C
  • L40 Grover SHA-1 (broken, replace with SHA-256) sha1
    * (R0+R1), R2, R3, R4 are the different operations (rounds) used in SHA1
  • L114 Grover SHA-1 (broken, replace with SHA-256) sha1
    /* SHA1 initialization constants */
openbsd-compat/sha1.h open ↗
  • L4 Grover SHA-1 (broken, replace with SHA-256) sha1
    * SHA-1 in C
readconf.c open ↗
  • L102 Grover AES-128 (double to AES-256) aes-128-flag
    Ciphers aes128-ctr
regress/netcat.c open ↗
  • L111 Grover MD5 (broken, replace with SHA-256) md5
    int	Sflag;					/* TCP MD5 signature option */
  • L1314 Grover MD5 (broken, replace with SHA-256) md5
    \t-S		Enable the TCP MD5 signature option\n\
regress/unittests/kex/test_kex.c open ↗
  • L213 Grover AES-128 (double to AES-256) aes-128-flag
    do_kex_with_key(kex, "aes128-ctr", "hmac-sha2-256", key,
serverloop.c open ↗
  • L716 Grover SHA-1 (broken, replace with SHA-256) sha1
    * during KEX to the default (SHA1).