X-Git-Url: https://tinc-vpn.org/git/browse?p=tinc;a=blobdiff_plain;f=src%2Ffsck.c;h=138b1cd77c469153fdbc5924c57edba678779634;hp=205a599c4eef10354b9ce9f7c4a08e17c05932a8;hb=76955a6c8b7a76d00ed401853c9d283e32d9ce1c;hpb=6805b157312c1f9adeee0035f540f4cbd63a79fd diff --git a/src/fsck.c b/src/fsck.c index 205a599c..138b1cd7 100644 --- a/src/fsck.c +++ b/src/fsck.c @@ -281,7 +281,7 @@ int fsck(const char *argv0) { } // Check for public keys. - // TODO: use RSAPublicKeyFile and Ed25519PublicKeyFile variables if present. + // TODO: use RSAPublicKeyFile variable if present. snprintf(fname, sizeof fname, "%s/hosts/%s", confbase, name); if(access(fname, R_OK)) @@ -342,13 +342,17 @@ int fsck(const char *argv0) { fprintf(stderr, "WARNING: A public RSA key was found but no private key is known.\n"); } #endif - // - // TODO: this should read the Ed25519PublicKey config variable instead. + ecdsa_t *ecdsa_pub = NULL; f = fopen(fname, "r"); - if(f) - ecdsa_pub = ecdsa_read_pem_public_key(f); + if(f) { + ecdsa_pub = get_pubkey(f); + if(!f) { + rewind(f); + ecdsa_pub = ecdsa_read_pem_public_key(f); + } + } fclose(f); if(ecdsa_priv) {