From 0757717bea67cdb0359846a169eb52e5bc374261 Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Sun, 7 Jun 2020 15:15:33 -0700 Subject: [PATCH] Address const-correctness issues in NvPairingManager --- app/backend/nvpairingmanager.cpp | 20 ++++++++++---------- app/backend/nvpairingmanager.h | 12 ++++++------ 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/app/backend/nvpairingmanager.cpp b/app/backend/nvpairingmanager.cpp index e0a24f81..4f9bba34 100644 --- a/app/backend/nvpairingmanager.cpp +++ b/app/backend/nvpairingmanager.cpp @@ -53,13 +53,13 @@ NvPairingManager::generateRandomBytes(int length) } QByteArray -NvPairingManager::encrypt(QByteArray plaintext, AES_KEY* key) +NvPairingManager::encrypt(const QByteArray& plaintext, AES_KEY* key) { QByteArray ciphertext(plaintext.size(), 0); for (int i = 0; i < plaintext.size(); i += 16) { - AES_encrypt(reinterpret_cast(&plaintext.data()[i]), + AES_encrypt(reinterpret_cast(const_cast(&plaintext.data()[i])), reinterpret_cast(&ciphertext.data()[i]), key); } @@ -68,13 +68,13 @@ NvPairingManager::encrypt(QByteArray plaintext, AES_KEY* key) } QByteArray -NvPairingManager::decrypt(QByteArray ciphertext, AES_KEY* key) +NvPairingManager::decrypt(const QByteArray& ciphertext, AES_KEY* key) { QByteArray plaintext(ciphertext.size(), 0); for (int i = 0; i < plaintext.size(); i += 16) { - AES_decrypt(reinterpret_cast(&ciphertext.data()[i]), + AES_decrypt(reinterpret_cast(const_cast(&ciphertext.data()[i])), reinterpret_cast(&plaintext.data()[i]), key); } @@ -83,7 +83,7 @@ NvPairingManager::decrypt(QByteArray ciphertext, AES_KEY* key) } QByteArray -NvPairingManager::getSignatureFromPemCert(QByteArray certificate) +NvPairingManager::getSignatureFromPemCert(const QByteArray& certificate) { BIO* bio = BIO_new_mem_buf(certificate.data(), -1); THROW_BAD_ALLOC_IF_NULL(bio); @@ -109,7 +109,7 @@ NvPairingManager::getSignatureFromPemCert(QByteArray certificate) } bool -NvPairingManager::verifySignature(QByteArray data, QByteArray signature, QByteArray serverCertificate) +NvPairingManager::verifySignature(const QByteArray& data, const QByteArray& signature, const QByteArray& serverCertificate) { BIO* bio = BIO_new_mem_buf(serverCertificate.data(), -1); THROW_BAD_ALLOC_IF_NULL(bio); @@ -125,7 +125,7 @@ NvPairingManager::verifySignature(QByteArray data, QByteArray signature, QByteAr EVP_DigestVerifyInit(mdctx, nullptr, EVP_sha256(), nullptr, pubKey); EVP_DigestVerifyUpdate(mdctx, data.data(), data.length()); - int result = EVP_DigestVerifyFinal(mdctx, reinterpret_cast(signature.data()), signature.length()); + int result = EVP_DigestVerifyFinal(mdctx, reinterpret_cast(const_cast(signature.data())), signature.length()); EVP_PKEY_free(pubKey); EVP_MD_CTX_destroy(mdctx); @@ -135,7 +135,7 @@ NvPairingManager::verifySignature(QByteArray data, QByteArray signature, QByteAr } QByteArray -NvPairingManager::signMessage(QByteArray message) +NvPairingManager::signMessage(const QByteArray& message) { EVP_MD_CTX *ctx = EVP_MD_CTX_create(); THROW_BAD_ALLOC_IF_NULL(ctx); @@ -145,7 +145,7 @@ NvPairingManager::signMessage(QByteArray message) EVP_DigestInit_ex(ctx, md, NULL); EVP_DigestSignInit(ctx, NULL, md, NULL, m_PrivateKey); - EVP_DigestSignUpdate(ctx, reinterpret_cast(message.data()), message.length()); + EVP_DigestSignUpdate(ctx, reinterpret_cast(const_cast(message.data())), message.length()); size_t signatureLength = 0; EVP_DigestSignFinal(ctx, NULL, &signatureLength); @@ -159,7 +159,7 @@ NvPairingManager::signMessage(QByteArray message) } QByteArray -NvPairingManager::saltPin(QByteArray salt, QString pin) +NvPairingManager::saltPin(const QByteArray& salt, QString pin) { return QByteArray().append(salt).append(pin.toLatin1()); } diff --git a/app/backend/nvpairingmanager.h b/app/backend/nvpairingmanager.h index ecaed5c7..accb0896 100644 --- a/app/backend/nvpairingmanager.h +++ b/app/backend/nvpairingmanager.h @@ -30,22 +30,22 @@ private: generateRandomBytes(int length); QByteArray - saltPin(QByteArray salt, QString pin); + saltPin(const QByteArray& salt, QString pin); QByteArray - encrypt(QByteArray plaintext, AES_KEY* key); + encrypt(const QByteArray& plaintext, AES_KEY* key); QByteArray - decrypt(QByteArray ciphertext, AES_KEY* key); + decrypt(const QByteArray& ciphertext, AES_KEY* key); QByteArray - getSignatureFromPemCert(QByteArray certificate); + getSignatureFromPemCert(const QByteArray& certificate); bool - verifySignature(QByteArray data, QByteArray signature, QByteArray serverCertificate); + verifySignature(const QByteArray& data, const QByteArray& signature, const QByteArray& serverCertificate); QByteArray - signMessage(QByteArray message); + signMessage(const QByteArray& message); NvHTTP m_Http; X509* m_Cert;