make RNG API (officially) public
Fixes #189 Signed-off-by: Steffen Jaeckel <jaeckel-floss@eyet-services.de>
This commit is contained in:
52
strophe.h
52
strophe.h
@@ -535,6 +535,58 @@ void xmpp_base64_decode_bin(xmpp_ctx_t *ctx,
|
||||
unsigned char **out,
|
||||
size_t *outlen);
|
||||
|
||||
/* RNG */
|
||||
|
||||
typedef struct _xmpp_rand_t xmpp_rand_t;
|
||||
|
||||
/** Create new xmpp_rand_t object.
|
||||
*
|
||||
* @param ctx A Strophe context object
|
||||
*
|
||||
* @ingroup Random
|
||||
*/
|
||||
xmpp_rand_t *xmpp_rand_new(xmpp_ctx_t *ctx);
|
||||
|
||||
/** Destroy an xmpp_rand_t object.
|
||||
*
|
||||
* @param ctx A Strophe context object
|
||||
* @param rand A xmpp_rand_t object
|
||||
*
|
||||
* @ingroup Random
|
||||
*/
|
||||
void xmpp_rand_free(xmpp_ctx_t *ctx, xmpp_rand_t *rand);
|
||||
|
||||
/** Generate random integer.
|
||||
* Analogue of rand(3).
|
||||
*
|
||||
* @ingroup Random
|
||||
*/
|
||||
int xmpp_rand(xmpp_rand_t *rand);
|
||||
|
||||
/** Generate random bytes.
|
||||
* Generates len bytes and stores them to the output buffer.
|
||||
*
|
||||
* @param rand A xmpp_rand_t object
|
||||
* @param output A buffer where a len random bytes will be placed.
|
||||
* @param len Number of bytes reserved for the output..
|
||||
*
|
||||
* @ingroup Random
|
||||
*/
|
||||
void xmpp_rand_bytes(xmpp_rand_t *rand, unsigned char *output, size_t len);
|
||||
|
||||
/** Generate a nonce that is printable randomized string.
|
||||
* This function doesn't allocate memory and doesn't fail.
|
||||
*
|
||||
* @param rand A xmpp_rand_t object
|
||||
* @param output A buffer where a NULL-terminated string will be placed.
|
||||
* The string will contain len-1 printable symbols.
|
||||
* @param len Number of bytes reserved for the output string, including
|
||||
* end of line '\0'.
|
||||
*
|
||||
* @ingroup Random
|
||||
*/
|
||||
void xmpp_rand_nonce(xmpp_rand_t *rand, char *output, size_t len);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user