ascii-chat
Binary v0.15.83-53-gb711d8720
Library lib/v0.3.2-701-gb711d8720
Video chat in your terminal
Loading...
Searching...
No Matches
gpg_keys.h
Go to the documentation of this file.
1#pragma once
2
29
31#include "../../common.h"
32#include "../../crypto/key_types.h" // Include the key type definitions
33#include <stdint.h>
34#include <stddef.h>
35#include <stdbool.h>
36
41
71asciichat_error_t parse_gpg_key(const char *gpg_key_text, public_key_t *key_out);
72
96asciichat_error_t parse_gpg_key_binary(const uint8_t *gpg_key_binary, size_t key_size, public_key_t *key_out);
97
116asciichat_error_t validate_gpg_key_format(const char *gpg_key_text);
117
140
162asciichat_error_t gpg_to_x25519_public(const char *gpg_key_text, uint8_t x25519_pk[X25519_KEY_SIZE]);
163
165
170
193asciichat_error_t get_gpg_fingerprint(const char *gpg_key_text, uint8_t fingerprint_out[GPG_FINGERPRINT_SIZE]);
194
217asciichat_error_t get_gpg_key_id(const char *gpg_key_text, uint8_t key_id_out[GPG_KEY_ID_SIZE]);
218
241asciichat_error_t check_gpg_key_expiry(const char *gpg_key_text, bool *is_expired);
242
244
249
272asciichat_error_t format_gpg_key_display(const char *gpg_key_text, char *output, size_t output_size);
273
293asciichat_error_t extract_gpg_key_comment(const char *gpg_key_text, char *comment_out, size_t comment_size);
294
⚙️ Common definitions, error codes, macros, and types shared throughout the application
unsigned char uint8_t
Definition common.h:60
asciichat_error_t
Error and exit codes - unified status values (0-255).
Definition error_codes.h:44
asciichat_error_t check_gpg_key_expiry(const char *gpg_key_text, bool *is_expired)
Check if GPG key is expired.
Definition gpg_keys.c:187
asciichat_error_t extract_ed25519_from_gpg(const char *gpg_key_text, uint8_t ed25519_pk[32])
Extract Ed25519 public key from GPG key.
Definition gpg_keys.c:118
asciichat_error_t validate_gpg_key_format(const char *gpg_key_text)
Validate GPG key format and structure.
asciichat_error_t extract_gpg_key_comment(const char *gpg_key_text, char *comment_out, size_t comment_size)
Extract key comment/email from GPG key.
Definition gpg_keys.c:326
asciichat_error_t get_gpg_key_id(const char *gpg_key_text, uint8_t key_id_out[8])
Get GPG key ID (short fingerprint).
Definition gpg_keys.c:174
asciichat_error_t parse_gpg_key(const char *gpg_key_text, public_key_t *key_out)
Parse GPG key from armored text format.
Definition gpg_keys.c:32
asciichat_error_t get_gpg_fingerprint(const char *gpg_key_text, uint8_t fingerprint_out[20])
Get GPG key fingerprint.
Definition gpg_keys.c:160
asciichat_error_t parse_gpg_key_binary(const uint8_t *gpg_key_binary, size_t key_size, public_key_t *key_out)
Parse GPG key from binary format.
Definition gpg_keys.c:78
asciichat_error_t format_gpg_key_display(const char *gpg_key_text, char *output, size_t output_size)
Format GPG key for display.
Definition gpg_keys.c:289
asciichat_error_t gpg_to_x25519_public(const char *gpg_key_text, uint8_t x25519_pk[32])
Convert GPG key to X25519 for key exchange.
Definition gpg_keys.c:134
#define ED25519_PUBLIC_KEY_SIZE
Ed25519 public key size in bytes.
Definition sizes.h:33
#define X25519_KEY_SIZE
X25519 key size in bytes.
Definition sizes.h:31
#define GPG_KEY_ID_SIZE
Definition sizes.h:169
#define GPG_FINGERPRINT_SIZE
Definition sizes.h:167
The normalized public identity used by ascii-chat's crypto and key-management code.
Definition key_types.h:72