mirror of https://github.com/oxen-io/session-ios
				
				
				
			
			You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			37 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C
		
	
			
		
		
	
	
			37 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C
		
	
| #pragma once
 | |
| 
 | |
| #ifdef __cplusplus
 | |
| extern "C" {
 | |
| #endif
 | |
| 
 | |
| #include <stddef.h>
 | |
| 
 | |
| /// Wrapper around session::config::encrypt.  message and key_base are binary: message has the
 | |
| /// length provided, key_base must be exactly 32 bytes.  domain is a c string.  Returns a newly
 | |
| /// allocated buffer containing the encrypted data, and sets the data's length into
 | |
| /// `ciphertext_size`.  It is the caller's responsibility to `free()` the returned buffer!
 | |
| ///
 | |
| /// Returns nullptr on error.
 | |
| unsigned char* config_encrypt(
 | |
|         const unsigned char* message,
 | |
|         size_t mlen,
 | |
|         const unsigned char* key_base,
 | |
|         const char* domain,
 | |
|         size_t* ciphertext_size);
 | |
| 
 | |
| /// Works just like config_encrypt, but in reverse.
 | |
| unsigned char* config_decrypt(
 | |
|         const unsigned char* ciphertext,
 | |
|         size_t clen,
 | |
|         const unsigned char* key_base,
 | |
|         const char* domain,
 | |
|         size_t* plaintext_size);
 | |
| 
 | |
| /// Returns the amount of padding needed for a plaintext of size s with encryption overhead
 | |
| /// `overhead`.
 | |
| size_t config_padded_size(size_t s, size_t overhead);
 | |
| 
 | |
| #ifdef __cplusplus
 | |
| }
 | |
| #endif
 |