Rough API layout

This commit is contained in:
York Jasper Niebuhr 2025-11-09 11:31:39 +01:00
commit 3886aa7fcc
2 changed files with 53 additions and 0 deletions

23
include/bfv.hpp Normal file
View File

@ -0,0 +1,23 @@
#pragma once
namespace homcert::bfv {
/*
Note -> Ciphertexts track what parts of them are actually utilized!
*/
class handle {
// handles reference counting and garbage collection
};
class device {
// ...
public:
virtual handle make_context() = 0;
virtual handle allocate_plaintext() = 0;
virtual handle allocate_ciphertext() = 0;
virtual void enqueue_op() = 0;
virtual void process_queue() = 0;
};
}

30
include/homcert.hpp Normal file
View File

@ -0,0 +1,30 @@
#pragma once
#include <bfv.hpp>
/*
Homcert provides certificates that can be verified confidentially.
After verification, the verifyer holds BFV encrypted certificate attributes.
*/
namespace homcert {
class Certificate {
// Bound to an owner pubkey (anonymously checked during verification)
// Expiration timestamp is checked during verification
// Arbitrary attributes (BFV slot vectors) are available as ciphertexts to verifier
};
class Issuer {
};
class Prover {
};
class Verifier {
};
}