51 broke -E logic completely, rewise it
[tfcrypt.git] / tfprng.c
index 934f38eb323d91a813612224461f4b50d38752b9..4db2418964ab44ad7036221b4105c12c69478fb1 100644 (file)
--- a/tfprng.c
+++ b/tfprng.c
@@ -19,7 +19,7 @@ void tf_prng_seedkey_r(void *sdata, const void *skey)
        TF_UNIT_TYPE k[TF_NR_KEY_UNITS];
        struct tf_prng_data *rprng = sdata;
 
-       memset(rprng, 0, sizeof(struct tf_prng_data));
+       memset(rprng, 0, tf_prng_datasize());
        if (!skey) return;
 
        memcpy(k, skey, TF_KEY_SIZE);
@@ -52,7 +52,7 @@ void tf_prng_seed_r(void *sdata, TF_UNIT_TYPE seed)
        struct tf_prng_data *rprng = sdata;
        size_t x;
 
-       memset(rprng, 0, sizeof(struct tf_prng_data));
+       memset(rprng, 0, tf_prng_datasize());
        for (x = 0; x < TF_NR_KEY_UNITS; x++) k[x] = seed;
        tfe_init(&rprng->tfe, k);
        rprng->init = 1;
@@ -85,20 +85,10 @@ TF_UNIT_TYPE tf_prng_range_r(void *sdata, TF_UNIT_TYPE s, TF_UNIT_TYPE d)
 {
        TF_UNIT_TYPE c = tf_prng_random_r(sdata);
        if (d <= s) return s;
-       return s + c / ((TF_UNIT_TYPE)~0 / (d - s + 1) + 1);
+       return TF_PRNG_RANGE(c, TF_UNIT_TYPE, s, d);
 }
 
 TF_UNIT_TYPE tf_prng_range(TF_UNIT_TYPE s, TF_UNIT_TYPE d)
 {
        return tf_prng_range_r(&tf_prng_sdata, s, d);
 }
-
-void tf_prng_srand(unsigned seed)
-{
-       tf_prng_seed((TF_UNIT_TYPE)seed);
-}
-
-int tf_prng_rand(void)
-{
-       return (int)tf_prng_range(0, (TF_UNIT_TYPE)TF_PRNG_LEGACY_RAND_MAX);
-}