Migrate from GitHub
This commit is contained in:
97 files changed
+8272
No files matched your search
@@ -0,0 +1,52 @@
|
||||
#pragma once
|
||||
|
||||
#include <Arduino.h>
|
||||
#include <SD.h>
|
||||
|
||||
#include "pvault.h"
|
||||
|
||||
#define CHUNK_SIZE 1024 // bytes
|
||||
|
||||
namespace pvault_cryptography {
|
||||
// generate values
|
||||
bool generate_salt(uint8_t* salt);
|
||||
bool generate_nonce(uint8_t* nonce);
|
||||
|
||||
// cryptography
|
||||
bool derive_key(const String& password, const uint8_t* salt, uint8_t* key); // Derive key from password
|
||||
|
||||
bool decrypt_verify( // lightweight function to check if used key works with the ciphertext
|
||||
const uint8_t* key,
|
||||
const uint8_t* nonce,
|
||||
File& file,
|
||||
const uint32_t ciphertext_length,
|
||||
const uint8_t* tag,
|
||||
uint32_t header_size
|
||||
);
|
||||
|
||||
bool encrypt_chunked( // writes ciphertext + tag to provided file
|
||||
const uint8_t* key,
|
||||
const uint8_t* nonce,
|
||||
const uint8_t* plaintext,
|
||||
uint32_t plaintext_length,
|
||||
File& file
|
||||
);
|
||||
|
||||
bool decrypt_chunked( // reads tag itself + plaintext to provided pointer
|
||||
const uint8_t* key,
|
||||
const uint8_t* nonce,
|
||||
File& file,
|
||||
uint32_t ciphertext_length,
|
||||
uint8_t* plaintext
|
||||
);
|
||||
|
||||
// vault file structure
|
||||
bool write_header(File& file, const pvault::header& hdr);
|
||||
bool read_header(File& file, pvault::header& hdr); // assumes that file pointer is set at the beginning of the file
|
||||
|
||||
bool write_tag(File& file, const uint8_t* tag);
|
||||
bool read_tag(File& file, uint8_t* tag); // assumes that file pointer is set on tag's location
|
||||
|
||||
// memory security
|
||||
void secure_zero(void* ptr, uint32_t size);
|
||||
}
|
||||
Reference in new issue
Block a user