I would like to use AES_256_GCM in my software. The OpenSSL wiki page gives me an example: wiki page.
It shows that only function EVP_EncryptInit_ex(ctx, NULL, NULL, key, iv) uses key.
My key is SHA3_256 hash of a password (Qt implementation of SHA3_256).
I would like to know if I have to use PKCS#5 to randomize the key or the function takes care of that.
Do I have to randomize key in OpenSSL
288 views Asked by MKAROL At
1
There are 1 answers
Related Questions in OPENSSL
- openssl: EVP_PKEY_derive failure
- Python SSL Error , Server side - Client certificate verify failing with Intermediate cert - self-signed certificate in certificate chain (_ssl.c:1007)
- Why/How does Apache auto-include "DHE" TLS1.2 ciphers while nginx needs "dhparams" file?
- OpenSSL3.0 RSA Signature Verification in C
- ESP8266 - Unable to connect to MQTT Server via SSL (mutual authentication)
- CherryPy SSL Built-in Adapter Causing Port Contention with Netcat
- Cannot Load OpenSSL in IIS
- Flutter SecureSocketServer transfer
- openssl pbkdf2 and perl
- OpenSSL with C++ app - getting undefined references during compilation
- Restore sha-1 certificate fingerprint on OpenSSL without setting security level to zero
- SSL for PostgreSQL connection nodejs and express to conection on render host service
- Decrypt ruby DES-EDE3-CBC encrypted data in Python
- Recursively calculate SHA256 sum of all files in directory using OpenSSL
- Deterministic CTR_DRBG in OpenSSL
Related Questions in CRYPTOGRAPHY
- Secure Messaging Implementation in C#
- How to verify JWS (x5c chain) is signed by apple using Jose
- How to Safely Use Crypto.subtle Property for Local Testing Without Security Risks?
- OpenSSL3.0 RSA Signature Verification in C
- npm install tulind in my crypto server side
- how i need place arg in code for funtion send?
- Mbed TLS: in-place en-/decryption for OAEP doesn't seem to work
- Cannot test cryptographic performance using crypto_aesni_mb
- Installation Private Blockchain
- Encountered this error while implementing NTT cpp code: terminate called after throwing an instance of 'std::bad_alloc' what(): std::bad_alloc
- Cryptography Notion - Diffie-Hellmann
- Hash password with another password
- How to convert CryptAcquireContext to .NET 8 using System.Security.Cryptography methods
- Error "Cannot find module 'crypto'" in WalletConnect module
- Why do some cryptographic signature npm packages (like superdilithium) convert text to an array of integers before signing?
Related Questions in PASSWORDS
- Forgotten RAR password recovery
- I'm unable to access 'https://github.com/Danniecodjoe/alx-system_engineering-devops.git/':
- How to get new text input after entering a password in a tab?
- invalid application password of gmail
- Auto-complete doesn't work on Chrome or Edge
- Decrypting Magento 2 customer passwords using email for migration to Shopify
- In two subversion repositories (same machine), can I have different usernames with no password prompting?
- Store website username/password on Elinks for Ubuntu
- Sending Password to a PHP Script
- "error": "The public key is required. Visit https://dashboard.emailjs.com/admin/account"
- im stuck trying to guess a password to a server im accessing through netcat for a ctf
- Hashcat / John the Ripper - find password when you know most of password but don't remember the sequence
- Hashing the password if it is not hashed in django
- How do I change I change my redis docker containers password?
- How to detect password protected file in Angular 14+ without using Promise calls
Related Questions in AES
- Java code of AES/GCM/NoPadding encryption algorithm with authentication tag
- AES-256-CBC encryption returning different result in Python and PHP , HELPPP
- zip4j - An error occurred while extracting files - Java
- Encrypt in Single Store and Decrypt in SQL Server
- Error "java.security.spec.InvalidKeySpecException: Error parsing public key" with Java
- Getting Error Message as "the input string is not a complete block" while Decryting using AES
- CMac calculation in C# using BouncyCastle
- Node.js AES decryption code converted to Golang throws key size error
- AES-CTR PRNG Implementation in OpenSSL with Consistent Output and Memory Leak Issues
- Encrypted data fails at decryption after restarting the micro-service
- Encryption in javascript frontend (browser env)
- mbedtls AES 128 ECB mode encryption give wrong results
- AES Decryption: if the decrypted file has a typo the Application crashes
- OpenSSL: how to encrypt new message with same key without EVP_EncryptInit_ex() again?
- How fix error: Specified key is not a valid size for this algorithm?
Related Questions in PKCS#5
- RemoveCertificate in System.Security.Cryptography.Pkcs.SignedCms - is real (NetFramwork 4.7)?
- Compute sign using secure token hit Unknown error -1073741275 using sha256 algo
- Why are there no extensions in the CertificateExtensions property of CertificateRequest?
- PartialChain error in X509Chain when building certificate chain?
- Including other certificates when signing using SignedCms and CmsSigner on .NET C#
- Meaning of algorithm properties in a certificate
- Decryption error while Decrypt the symmetric key
- How can i get public key in DER format from base64 encoded public key?
- Failed to create SecKey using SecKeyCreateWithData using swift
- Automate parsing yubikey pin in pkcs11
- What is the safest way to recognize if a file is application/pkcs7-mime or analogous in Angular?
- OpenSSL.crypto.Error when trying to load certificate from Azure Key Vault
- convert pkcs1 signature to pkcs7 signature using nodejs
- In which version of openssl is the pkcs8 v2 option introduced?
- How to check pkcs format of a private key using golang code?
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
You should probably digest the password into a key with OpenSSL's
PKCS5_PBKDF2_HMAC_SHA1. See How to use PKCS5_PBKDF2_HMAC_SHA1().Each encryption of a string or file should get its own random IV. IVs cannot repeat. Your other option is to use a random key for each string or file.
The output of the encrypt operation is the
{IV,CipherText}pair.AES_256_GCMis a good choice. One of the few ways it could get better is with an Integrated Encryption Scheme. You might take a look at openssl-pkey-ec-ies on GitHub. Crypto++ and BouncyCastle also have Elliptic Curve Integrated Encryption Scheme implementations, so you have other choices.Be sure to test interop. They interop, but it takes some knob turning. The problem with interop is there are so many standards providing it, and each is slightly non-interoperable.
To give you an idea of the nuances, ECIES calls out that a particular variable gets hashed (its the length of a given string of data). One standard represents the variable in 4 octets, another in 8 octets. That's the only difference and causes interop issues if you are not aware.