| Flux Reference Manual |
|---|
flux-elgamal —
#define FLUX_ELGAMAL_KEY (key) #define FLUX_ELGAMAL_PUBLIC_KEY (key) #define FLUX_ELGAMAL_SECRET_KEY (key) struct FluxElgamalKey; struct FluxElgamalPublicKey; struct FluxElgamalSecretKey; gboolean flux_elgamal_generate_keypair (guint key_length, FluxElgamalPublicKey **public_key, FluxElgamalSecretKey **secret_key); FluxElgamalKey* flux_elgamal_dup_key (FluxElgamalKey *key); void flux_elgamal_finalize_secret_key (FluxElgamalSecretKey *skey); void flux_elgamal_finalize_public_key (FluxElgamalPublicKey *pkey); FluxElgamalPublicKey* flux_elgamal_import_public_key (const guchar *in, guint in_len); FluxElgamalSecretKey* flux_elgamal_import_secret_key (const guchar *in, guint in_len); void flux_elgamal_export_public_key (FluxElgamalPublicKey *public_key, guchar **out, guint *out_len); void flux_elgamal_export_secret_key (FluxElgamalSecretKey *secret_key, guchar **out, guint *out_len); guint flux_elgamal_get_key_length (FluxElgamalKey *key); guint flux_elgamal_get_block_size (FluxElgamalKey *key); void flux_elgamal_encrypt (FluxElgamalPublicKey *pkey, guchar **ciphertext, guint *ciphertext_len, const guchar *plaintext, guint plaintext_len); void flux_elgamal_decrypt (FluxElgamalSecretKey *skey, guchar **plaintext, guint *plaintext_len, const guchar *ciphertext, guint ciphertext_len); void flux_elgamal_sign (FluxElgamalSecretKey *skey, guchar **signature, guint *signature_len, const guchar *hash, guint hash_len); gboolean flux_elgamal_verify (FluxElgamalPublicKey *pkey, const guchar *signature, guint signature_len, const guchar *hash, guint hash_len);
gboolean flux_elgamal_generate_keypair (guint key_length,
FluxElgamalPublicKey **public_key,
FluxElgamalSecretKey **secret_key);
| key_length : | |
| public_key : | |
| secret_key : | |
| Returns : |
void flux_elgamal_finalize_secret_key
(FluxElgamalSecretKey *skey);
| skey : |
void flux_elgamal_finalize_public_key
(FluxElgamalPublicKey *pkey);
| pkey : |
FluxElgamalPublicKey* flux_elgamal_import_public_key (const guchar *in, guint in_len);
| in : | |
| in_len : | |
| Returns : |
FluxElgamalSecretKey* flux_elgamal_import_secret_key (const guchar *in, guint in_len);
| in : | |
| in_len : | |
| Returns : |
void flux_elgamal_export_public_key (FluxElgamalPublicKey *public_key, guchar **out, guint *out_len);
| public_key : | |
| out : | |
| out_len : |
void flux_elgamal_export_secret_key (FluxElgamalSecretKey *secret_key, guchar **out, guint *out_len);
| secret_key : | |
| out : | |
| out_len : |
guint flux_elgamal_get_key_length (FluxElgamalKey *key);
| key : | |
| Returns : |
guint flux_elgamal_get_block_size (FluxElgamalKey *key);
| key : | |
| Returns : |
void flux_elgamal_encrypt (FluxElgamalPublicKey *pkey, guchar **ciphertext, guint *ciphertext_len, const guchar *plaintext, guint plaintext_len);
| pkey : | |
| ciphertext : | |
| ciphertext_len : | |
| plaintext : | |
| plaintext_len : |
void flux_elgamal_decrypt (FluxElgamalSecretKey *skey, guchar **plaintext, guint *plaintext_len, const guchar *ciphertext, guint ciphertext_len);
| skey : | |
| plaintext : | |
| plaintext_len : | |
| ciphertext : | |
| ciphertext_len : |
void flux_elgamal_sign (FluxElgamalSecretKey *skey, guchar **signature, guint *signature_len, const guchar *hash, guint hash_len);
| skey : | |
| signature : | |
| signature_len : | |
| hash : | |
| hash_len : |
gboolean flux_elgamal_verify (FluxElgamalPublicKey *pkey, const guchar *signature, guint signature_len, const guchar *hash, guint hash_len);
| pkey : | |
| signature : | |
| signature_len : | |
| hash : | |
| hash_len : | |
| Returns : |
| << flux-twofish | flux-rsa >> |