You've already forked mariadb-columnstore-engine
							
							
				mirror of
				https://github.com/mariadb-corporation/mariadb-columnstore-engine.git
				synced 2025-10-31 18:30:33 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			83 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			83 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| /*
 | |
|  * Copyright (c) 2018 MariaDB Corporation Ab
 | |
|  *
 | |
|  * Use of this software is governed by the Business Source License included
 | |
|  * in the LICENSE.TXT file and at www.mariadb.com/bsl11.
 | |
|  *
 | |
|  * Change Date: 2025-05-25
 | |
|  *
 | |
|  * On the date above, in accordance with the Business Source License, use
 | |
|  * of this software will be governed by version 2 or later of the General
 | |
|  * Public License.
 | |
|  */
 | |
| #include <vector>
 | |
| #include <string>
 | |
| #include "idberrorinfo.h"
 | |
| #include "logger.h"
 | |
| 
 | |
| class CSPasswdLogging
 | |
| {
 | |
|  public:
 | |
|   static CSPasswdLogging* get();
 | |
|   ~CSPasswdLogging();
 | |
| 
 | |
|   void log(int priority, const char* format, ...);
 | |
| 
 | |
|  private:
 | |
|   CSPasswdLogging();
 | |
| };
 | |
| 
 | |
| /**
 | |
|  * Decrypt an encrypted password using the key loaded at startup. If the password is not encrypted,
 | |
|  * ie is not a HEX string, return the original.
 | |
|  *
 | |
|  * @param input The encrypted password
 | |
|  * @return The decrypted password.
 | |
|  */
 | |
| std::string decrypt_password(const std::string& input);
 | |
| 
 | |
| #include <memory>
 | |
| 
 | |
| using ByteVec = std::vector<uint8_t>;
 | |
| 
 | |
| struct evp_cipher_st;
 | |
| extern const char* const SECRETS_FILENAME;
 | |
| 
 | |
| /**
 | |
|  * Returns the cipher used for password encryption.
 | |
|  *
 | |
|  * @return Cipher
 | |
|  */
 | |
| const evp_cipher_st* secrets_cipher();
 | |
| 
 | |
| /**
 | |
|  * Returns encryption key length.
 | |
|  *
 | |
|  * @return Encryption key length
 | |
|  */
 | |
| int secrets_keylen();
 | |
| 
 | |
| /**
 | |
|  * Returns initialization vector length.
 | |
|  *
 | |
|  * @return initialization vector length
 | |
|  */
 | |
| int secrets_ivlen();
 | |
| 
 | |
| bool load_encryption_keys();
 | |
| std::string encrypt_password_old(const ByteVec& key, const ByteVec& iv, const std::string& input);
 | |
| std::string encrypt_password(const ByteVec& key, const std::string& input);
 | |
| 
 | |
| std::string decrypt_password_old(const ByteVec& key, const ByteVec& iv, const std::string& input);
 | |
| std::string decrypt_password(const ByteVec& key, const std::string& input);
 | |
| 
 | |
| struct ReadKeyResult
 | |
| {
 | |
|   bool ok{false};
 | |
|   ByteVec key;
 | |
|   ByteVec iv;
 | |
| };
 | |
| 
 | |
| ReadKeyResult secrets_readkeys(const std::string& filepath);
 | |
| bool secrets_write_keys(const ByteVec& key, const std::string& filepath, const std::string& owner);
 |