Esempio n. 1
0
static int
test_roundtrip_rand(void)
{
    int i, ret;
    simpleprng_state_t state;
    char *in, *tmp_enc = NULL, *tmp_dec = NULL;
    size_t size;
    GError *err = NULL;
    
    simpleprng_seed(&state, 0xface);
    ret = TRUE;
    for (i = 0; i < 100; i++) {
        size = simpleprng_rand_byte(&state);
        in = g_malloc0(size+1);
        simpleprng_fill_buffer(&state, in, size);
        tmp_enc = hexencode_string(in);
        tmp_dec = tmp_enc? hexdecode_string(tmp_enc, &err) : NULL;
        if (!tmp_enc || !tmp_dec || strcmp(in, tmp_dec) || err) {
            ret = FALSE;
            tu_dbg("roundtrip failure:\n")
            tu_dbg("input:      \"%s\"\n", in);
            tu_dbg("enc output: \"%s\"\n", tmp_enc? tmp_enc : "(null)");
            tu_dbg("dec output: \"%s\"\n", tmp_dec? tmp_dec : "(null)");
            tu_dbg("error msg:  %s\n", err? err->message : "(none)");
        }
        g_clear_error(&err);
        amfree(tmp_enc);
        amfree(tmp_dec);
        g_free(in);
    }
    return ret;
}
Esempio n. 2
0
/* create an element of this class; prototype is in xfer-element.h */
XferElement *
xfer_source_random(
    guint64 length,
    guint32 prng_seed)
{
    XferSourceRandom *xsr = (XferSourceRandom *)g_object_new(XFER_SOURCE_RANDOM_TYPE, NULL);
    XferElement *elt = XFER_ELEMENT(xsr);

    xsr->length = length;
    xsr->limited_length = (length != 0);
    simpleprng_seed(&xsr->prng, prng_seed);

    return elt;
}
Esempio n. 3
0
/* create an element of this class; prototype is in xfer-element.h */
XferElement *
xfer_dest_null(
    guint32 prng_seed)
{
    XferDestNull *self = (XferDestNull *)g_object_new(XFER_DEST_NULL_TYPE, NULL);
    XferElement *elt = XFER_ELEMENT(self);

    if (prng_seed) {
	self->do_verify = TRUE;
	simpleprng_seed(&self->prng, prng_seed);
    } else {
	self->do_verify = FALSE;
    }
    crc32_init(&elt->crc);

    return elt;
}