int crypto_sign_encode (SIGNATURE *sig, void *dest, size_t *length);
SIGNATURE * crypto_sign_decode (const void *sigData, size_t length);
void crypto_sign_free (SIGNATURE *sig);
-CRYPTO_RECIPIENTS *crypto_recipients_new (crypto_cipher_t cipher, alist *pubkeys);
-void crypto_recipients_free (CRYPTO_RECIPIENTS *cr);
+CRYPTO_SESSION * crypto_session_new (crypto_cipher_t cipher, alist *pubkeys);
+void crypto_session_free (CRYPTO_SESSION *cs);
+bool crypto_session_encode (CRYPTO_SESSION *cs, void *dest, size_t *length);
+crypto_error_t crypto_session_decode (const void *data, size_t length, alist *keypairs, CRYPTO_SESSION **session);
+CRYPTO_SESSION * crypto_session_decode (const void *data, size_t length);
X509_KEYPAIR * crypto_keypair_new (void);
X509_KEYPAIR * crypto_keypair_dup (X509_KEYPAIR *keypair);
int crypto_keypair_load_cert (X509_KEYPAIR *keypair, const char *file);
+bool crypto_keypair_has_key (const char *file);
int crypto_keypair_load_key (X509_KEYPAIR *keypair, const char *file, CRYPTO_PEM_PASSWD_CB *pem_callback, const void *pem_userdata);
void crypto_keypair_free (X509_KEYPAIR *keypair);
int crypto_default_pem_callback (char *buf, int size, const void *userdata);
/* edit.c */
uint64_t str_to_uint64(char *str);
int64_t str_to_int64(char *str);
+#define str_to_int32(str) ((int32_t)str_to_int64(str))
char * edit_uint64_with_commas (uint64_t val, char *buf);
char * add_commas (char *val, char *buf);
char * edit_uint64 (uint64_t val, char *buf);
void job_end_push(JCR *jcr, void job_end_cb(JCR *jcr,void *), void *ctx);
void lock_jobs();
void unlock_jobs();
+JCR *jcr_walk_start();
+JCR *jcr_walk_next(JCR *prev_jcr);
+void jcr_walk_end(JCR *jcr);
/* lex.c */