227
int pgp_init(PGP_Context ** ctx);
228
int pgp_encrypt(PGP_Context * ctx, MBuf * src, MBuf * dst);
229
int pgp_decrypt(PGP_Context * ctx, MBuf * src, MBuf * dst);
230
int pgp_free(PGP_Context * ctx);
227
int pgp_init(PGP_Context **ctx);
228
int pgp_encrypt(PGP_Context *ctx, MBuf *src, MBuf *dst);
229
int pgp_decrypt(PGP_Context *ctx, MBuf *src, MBuf *dst);
230
int pgp_free(PGP_Context *ctx);
232
232
int pgp_get_digest_code(const char *name);
233
233
int pgp_get_cipher_code(const char *name);
234
234
const char *pgp_get_digest_name(int code);
235
235
const char *pgp_get_cipher_name(int code);
237
int pgp_set_cipher_algo(PGP_Context * ctx, const char *name);
238
int pgp_set_s2k_mode(PGP_Context * ctx, int type);
239
int pgp_set_s2k_cipher_algo(PGP_Context * ctx, const char *name);
240
int pgp_set_s2k_digest_algo(PGP_Context * ctx, const char *name);
241
int pgp_set_convert_crlf(PGP_Context * ctx, int doit);
242
int pgp_disable_mdc(PGP_Context * ctx, int disable);
243
int pgp_set_sess_key(PGP_Context * ctx, int use);
244
int pgp_set_compress_algo(PGP_Context * ctx, int algo);
245
int pgp_set_compress_level(PGP_Context * ctx, int level);
246
int pgp_set_text_mode(PGP_Context * ctx, int mode);
247
int pgp_set_unicode_mode(PGP_Context * ctx, int mode);
248
int pgp_get_unicode_mode(PGP_Context * ctx);
237
int pgp_set_cipher_algo(PGP_Context *ctx, const char *name);
238
int pgp_set_s2k_mode(PGP_Context *ctx, int type);
239
int pgp_set_s2k_cipher_algo(PGP_Context *ctx, const char *name);
240
int pgp_set_s2k_digest_algo(PGP_Context *ctx, const char *name);
241
int pgp_set_convert_crlf(PGP_Context *ctx, int doit);
242
int pgp_disable_mdc(PGP_Context *ctx, int disable);
243
int pgp_set_sess_key(PGP_Context *ctx, int use);
244
int pgp_set_compress_algo(PGP_Context *ctx, int algo);
245
int pgp_set_compress_level(PGP_Context *ctx, int level);
246
int pgp_set_text_mode(PGP_Context *ctx, int mode);
247
int pgp_set_unicode_mode(PGP_Context *ctx, int mode);
248
int pgp_get_unicode_mode(PGP_Context *ctx);
250
int pgp_set_symkey(PGP_Context * ctx, const uint8 *key, int klen);
251
int pgp_set_pubkey(PGP_Context * ctx, MBuf * keypkt,
250
int pgp_set_symkey(PGP_Context *ctx, const uint8 *key, int klen);
251
int pgp_set_pubkey(PGP_Context *ctx, MBuf *keypkt,
252
252
const uint8 *key, int klen, int pubtype);
254
int pgp_get_keyid(MBuf * pgp_data, char *dst);
254
int pgp_get_keyid(MBuf *pgp_data, char *dst);
256
256
/* internal functions */
258
int pgp_load_digest(int c, PX_MD ** res);
259
int pgp_load_cipher(int c, PX_Cipher ** res);
258
int pgp_load_digest(int c, PX_MD **res);
259
int pgp_load_cipher(int c, PX_Cipher **res);
260
260
int pgp_get_cipher_key_size(int c);
261
261
int pgp_get_cipher_block_size(int c);
263
int pgp_s2k_fill(PGP_S2K * s2k, int mode, int digest_algo);
264
int pgp_s2k_read(PullFilter * src, PGP_S2K * s2k);
265
int pgp_s2k_process(PGP_S2K * s2k, int cipher, const uint8 *key, int klen);
263
int pgp_s2k_fill(PGP_S2K *s2k, int mode, int digest_algo);
264
int pgp_s2k_read(PullFilter *src, PGP_S2K *s2k);
265
int pgp_s2k_process(PGP_S2K *s2k, int cipher, const uint8 *key, int klen);
267
267
typedef struct PGP_CFB PGP_CFB;
269
pgp_cfb_create(PGP_CFB ** ctx_p, int algo,
269
pgp_cfb_create(PGP_CFB **ctx_p, int algo,
270
270
const uint8 *key, int key_len, int recync, uint8 *iv);
271
void pgp_cfb_free(PGP_CFB * ctx);
272
int pgp_cfb_encrypt(PGP_CFB * ctx, const uint8 *data, int len, uint8 *dst);
273
int pgp_cfb_decrypt(PGP_CFB * ctx, const uint8 *data, int len, uint8 *dst);
271
void pgp_cfb_free(PGP_CFB *ctx);
272
int pgp_cfb_encrypt(PGP_CFB *ctx, const uint8 *data, int len, uint8 *dst);
273
int pgp_cfb_decrypt(PGP_CFB *ctx, const uint8 *data, int len, uint8 *dst);
275
275
int pgp_armor_encode(const uint8 *src, unsigned len, uint8 *dst);
276
276
int pgp_armor_decode(const uint8 *src, unsigned len, uint8 *dst);
277
277
unsigned pgp_armor_enc_len(unsigned len);
278
278
unsigned pgp_armor_dec_len(unsigned len);
280
int pgp_compress_filter(PushFilter ** res, PGP_Context * ctx, PushFilter * dst);
281
int pgp_decompress_filter(PullFilter ** res, PGP_Context * ctx, PullFilter * src);
283
int pgp_key_alloc(PGP_PubKey ** pk_p);
284
void pgp_key_free(PGP_PubKey * pk);
285
int _pgp_read_public_key(PullFilter * pkt, PGP_PubKey ** pk_p);
287
int pgp_parse_pubenc_sesskey(PGP_Context * ctx, PullFilter * pkt);
288
int pgp_create_pkt_reader(PullFilter ** pf_p, PullFilter * src, int len,
289
int pkttype, PGP_Context * ctx);
290
int pgp_parse_pkt_hdr(PullFilter * src, uint8 *tag, int *len_p,
280
int pgp_compress_filter(PushFilter **res, PGP_Context *ctx, PushFilter *dst);
281
int pgp_decompress_filter(PullFilter **res, PGP_Context *ctx, PullFilter *src);
283
int pgp_key_alloc(PGP_PubKey **pk_p);
284
void pgp_key_free(PGP_PubKey *pk);
285
int _pgp_read_public_key(PullFilter *pkt, PGP_PubKey **pk_p);
287
int pgp_parse_pubenc_sesskey(PGP_Context *ctx, PullFilter *pkt);
288
int pgp_create_pkt_reader(PullFilter **pf_p, PullFilter *src, int len,
289
int pkttype, PGP_Context *ctx);
290
int pgp_parse_pkt_hdr(PullFilter *src, uint8 *tag, int *len_p,
293
int pgp_skip_packet(PullFilter * pkt);
294
int pgp_expect_packet_end(PullFilter * pkt);
296
int pgp_write_pubenc_sesskey(PGP_Context * ctx, PushFilter * dst);
297
int pgp_create_pkt_writer(PushFilter * dst, int tag, PushFilter ** res_p);
299
int pgp_mpi_alloc(int bits, PGP_MPI ** mpi);
300
int pgp_mpi_create(uint8 *data, int bits, PGP_MPI ** mpi);
301
int pgp_mpi_free(PGP_MPI * mpi);
302
int pgp_mpi_read(PullFilter * src, PGP_MPI ** mpi);
303
int pgp_mpi_write(PushFilter * dst, PGP_MPI * n);
304
int pgp_mpi_hash(PX_MD * md, PGP_MPI * n);
305
unsigned pgp_mpi_cksum(unsigned cksum, PGP_MPI * n);
307
int pgp_elgamal_encrypt(PGP_PubKey * pk, PGP_MPI * m,
308
PGP_MPI ** c1, PGP_MPI ** c2);
309
int pgp_elgamal_decrypt(PGP_PubKey * pk, PGP_MPI * c1, PGP_MPI * c2,
311
int pgp_rsa_encrypt(PGP_PubKey * pk, PGP_MPI * m, PGP_MPI ** c);
312
int pgp_rsa_decrypt(PGP_PubKey * pk, PGP_MPI * c, PGP_MPI ** m);
293
int pgp_skip_packet(PullFilter *pkt);
294
int pgp_expect_packet_end(PullFilter *pkt);
296
int pgp_write_pubenc_sesskey(PGP_Context *ctx, PushFilter *dst);
297
int pgp_create_pkt_writer(PushFilter *dst, int tag, PushFilter **res_p);
299
int pgp_mpi_alloc(int bits, PGP_MPI **mpi);
300
int pgp_mpi_create(uint8 *data, int bits, PGP_MPI **mpi);
301
int pgp_mpi_free(PGP_MPI *mpi);
302
int pgp_mpi_read(PullFilter *src, PGP_MPI **mpi);
303
int pgp_mpi_write(PushFilter *dst, PGP_MPI *n);
304
int pgp_mpi_hash(PX_MD *md, PGP_MPI *n);
305
unsigned pgp_mpi_cksum(unsigned cksum, PGP_MPI *n);
307
int pgp_elgamal_encrypt(PGP_PubKey *pk, PGP_MPI *m,
308
PGP_MPI **c1, PGP_MPI **c2);
309
int pgp_elgamal_decrypt(PGP_PubKey *pk, PGP_MPI *c1, PGP_MPI *c2,
311
int pgp_rsa_encrypt(PGP_PubKey *pk, PGP_MPI *m, PGP_MPI **c);
312
int pgp_rsa_decrypt(PGP_PubKey *pk, PGP_MPI *c, PGP_MPI **m);
314
314
extern struct PullFilterOps pgp_decrypt_filter;