diff options
Diffstat (limited to 'src/sequoia.h')
-rw-r--r-- | src/sequoia.h | 201 |
1 files changed, 0 insertions, 201 deletions
diff --git a/src/sequoia.h b/src/sequoia.h deleted file mode 100644 index 6201ade7..00000000 --- a/src/sequoia.h +++ /dev/null @@ -1,201 +0,0 @@ -#ifndef SEQUOIA_H -#define SEQUOIA_H - -#include <stddef.h> -#include <stdint.h> - - -/* sequoia::Context. */ - -/*/ -/// A `struct sq_context *` is required for many operations. -/// -/// # Example -/// -/// ```c -/// struct sq_context *ctx sq_context_new("org.sequoia-pgp.example"); -/// if (ctx == NULL) { ... } -/// ``` -/*/ -struct sq_context; - -/*/ -/// Represents a `Context` configuration. -/*/ -struct sq_config; - -/*/ -/// Creates a Context with reasonable defaults. -/// -/// `domain` should uniquely identify your application, it is strongly -/// suggested to use a reversed fully qualified domain name that is -/// associated with your application. `domain` must not be `NULL`. -/// -/// Returns `NULL` on errors. -/*/ -struct sq_context *sq_context_new(const char *domain); - -/*/ -/// Frees a context. -/*/ -void sq_context_free(struct sq_context *context); - -/*/ -/// Creates a Context that can be configured. -/// -/// `domain` should uniquely identify your application, it is strongly -/// suggested to use a reversed fully qualified domain name that is -/// associated with your application. `domain` must not be `NULL`. -/// -/// The configuration is seeded like in `sq_context_new`, but can be -/// modified. A configuration has to be finalized using -/// `sq_config_build()` in order to turn it into a Context. -/*/ -struct sq_config *sq_context_configure(const char *domain); - -/*/ -/// Returns the domain of the context. -/*/ -const char *sq_context_domain(const struct sq_context *ctx); - -/*/ -/// Returns the directory containing shared state. -/*/ -const char *sq_context_home(const struct sq_context *ctx); - -/*/ -/// Returns the directory containing backend servers. -/*/ -const char *sq_context_lib(const struct sq_context *ctx); - - -/* sequoia::Config. */ - -/*/ -/// Finalizes the configuration and return a `Context`. -/// -/// Consumes `cfg`. Returns `NULL` on errors. -/*/ -struct sq_context *sq_config_build(struct sq_config *cfg); - -/*/ -/// Sets the directory containing shared state. -/*/ -void sq_config_home(struct sq_config *cfg, const char *home); - -/*/ -/// Set the directory containing backend servers. -/*/ -void sq_config_lib(struct sq_config *cfg, const char *lib); - -/* sequoia::openpgp::types. */ - -/*/ -/// Uniquely identifies OpenPGP keys. -/*/ -struct sq_keyid; - -/*/ -/// Returns a KeyID with the given `id`. -/*/ -struct sq_keyid *sq_keyid_new (uint64_t id); - -/*/ -/// Returns a KeyID with the given `id` encoded as hexadecimal string. -/*/ -struct sq_keyid *sq_keyid_from_hex (const char *id); - -/*/ -/// Frees a keyid object. -/*/ -void sq_keyid_free (struct sq_keyid *keyid); - - -/* sequoia::keys. */ - -/*/ -/// A transferable public key (TPK). -/// -/// A TPK (see [RFC 4880, section 11.1]) can be used to verify -/// signatures and encrypt data. It can be stored in a keystore and -/// uploaded to keyservers. -/// -/// [RFC 4880, section 11.1]: https://tools.ietf.org/html/rfc4880#section-11.1 -/*/ -struct sq_tpk; - -/*/ -/// Returns the first TPK found in `buf`. -/// -/// `buf` must be an OpenPGP encoded message. -/*/ -struct sq_tpk *sq_tpk_from_bytes (const char *b, size_t len); - -/*/ -/// Frees the TPK. -/*/ -void sq_tpk_free (struct sq_tpk *tpk); - -/*/ -/// Dumps the TPK. -/*/ -void sq_tpk_dump (const struct sq_tpk *tpk); - - -/* sequoia::net. */ - -/*/ -/// For accessing keyservers using HKP. -/*/ -struct sq_keyserver; - -/*/ -/// Returns a handle for the given URI. -/// -/// `uri` is a UTF-8 encoded value of a keyserver URI, -/// e.g. `hkps://examle.org`. -/// -/// Returns `NULL` on errors. -/*/ -struct sq_keyserver *sq_keyserver_new (const struct sq_context *ctx, - const char *uri); - -/*/ -/// Returns a handle for the given URI. -/// -/// `uri` is a UTF-8 encoded value of a keyserver URI, -/// e.g. `hkps://examle.org`. `cert` is a DER encoded certificate of -/// size `len` used to authenticate the server. -/// -/// Returns `NULL` on errors. -/*/ -struct sq_keyserver *sq_keyserver_with_cert (const struct sq_context *ctx, - const char *uri, - const uint8_t *cert, - size_t len); - -/*/ -/// Returns a handle for the SKS keyserver pool. -/// -/// The pool `hkps://hkps.pool.sks-keyservers.net` provides HKP -/// services over https. It is authenticated using a certificate -/// included in this library. It is a good default choice. -/// -/// Returns `NULL` on errors. -/*/ -struct sq_keyserver *sq_keyserver_sks_pool (const struct sq_context *ctx); - -/*/ -/// Frees a keyserver object. -/*/ -void sq_keyserver_free (struct sq_keyserver *ks); - -/*/ -/// Retrieves the key with the given `keyid`. -/// -/// Returns `NULL` on errors. -/*/ -struct sq_tpk *sq_keyserver_get (struct sq_keyserver *ks, - const struct sq_keyid *id); - -#endif |