summaryrefslogtreecommitdiff
path: root/zen/open_ssl.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'zen/open_ssl.cpp')
-rw-r--r--zen/open_ssl.cpp16
1 files changed, 10 insertions, 6 deletions
diff --git a/zen/open_ssl.cpp b/zen/open_ssl.cpp
index 1f556656..9278b6dd 100644
--- a/zen/open_ssl.cpp
+++ b/zen/open_ssl.cpp
@@ -151,7 +151,13 @@ std::shared_ptr<EVP_PKEY> streamToKey(const std::string& keyStream, RsaStreamTyp
throw SysError(formatLastOpenSSLError("OSSL_DECODER_CTX_new_for_pkey"));
ZEN_ON_SCOPE_EXIT(::OSSL_DECODER_CTX_free(decCtx));
- //key stream is password-protected? => OSSL_DECODER_CTX_set_passphrase()
+#if 0 //key stream is password-protected? => OSSL_DECODER_CTX_set_passphrase()
+ if (!password.empty())
+ if (::OSSL_DECODER_CTX_set_passphrase(decCtx, //OSSL_DECODER_CTX *ctx
+ reinterpret_cast<const unsigned char*>(password.c_str()), //const unsigned char* kstr
+ password.size()) != 1) //size_t klen
+ throw SysError(formatLastOpenSSLError("OSSL_DECODER_CTX_set_passphrase"));
+#endif
const unsigned char* keyBuf = reinterpret_cast<const unsigned char*>(keyStream.c_str());
size_t keyLen = keyStream.size();
@@ -409,11 +415,9 @@ void zen::verifySignature(const std::string& message, const std::string& signatu
}
-bool zen::isPuttyKeyStream(const std::string& keyStream)
+bool zen::isPuttyKeyStream(const std::string_view keyStream)
{
- std::string firstLine(keyStream.begin(), std::find_if(keyStream.begin(), keyStream.end(), isLineBreak<char>));
- trim(firstLine);
- return startsWith(firstLine, "PuTTY-User-Key-File-2:");
+ return startsWith(trimCpy(keyStream, true, false), "PuTTY-User-Key-File-");
}
@@ -548,7 +552,7 @@ std::string zen::convertPuttyKeyToPkix(const std::string& keyStream, const std::
auto numToBeString = [](size_t n) -> std::string
{
- static_assert(std::endian::native == std::endian::little && sizeof(n) >= 4);
+ static_assert(std::endian::native == std::endian::little&& sizeof(n) >= 4);
const char* numStr = reinterpret_cast<const char*>(&n);
return {numStr[3], numStr[2], numStr[1], numStr[0]}; //big endian!
};
bgstack15