Lines Matching refs:len

124 static void rndc_getbytes(uint8_t *ptr, size_t len);
224 rngprov_seed(uint8_t *buf, int len, uint_t entropy_est, uint32_t flags)
230 (void) KCF_PROV_SEED_RANDOM(pd, pd->pd_sid, buf, len,
323 * if no provider is found. ptr and len are unchanged.
326 rngprov_getbytes_nblk(uint8_t *ptr, size_t len)
375 pd->pd_sid, ptr, len, 0, 0);
388 blen = min(MINEXTRACTBYTES, len);
390 if (len < MINEXTRACTBYTES)
391 rndc_addbytes(rndbuf + len,
392 MINEXTRACTBYTES - len);
394 len -= blen;
399 total_bytes += len;
400 len = 0;
415 if (len == 0) {
449 int len = (int)(uintptr_t)arg;
452 ASSERT(len <= MAXEXTRACTBYTES);
453 (void) rngprov_getbytes(tbuf, len, B_TRUE);
458 * Returns "len" random or pseudo-random bytes in *ptr.
466 rnd_get_bytes(uint8_t *ptr, size_t len, extract_type_t how)
476 if (len <= rnbyte_cnt) {
477 rndc_getbytes(ptr, len);
485 if ((got = rngprov_getbytes(ptr, len, B_FALSE)) == -1)
488 if (got == len)
490 len -= got;
496 if ((got = rngprov_getbytes_nblk(ptr, len)) == -1) {
502 if (got == len)
504 len -= got;
507 if (how == NONBLOCK_EXTRACT && (rnbyte_cnt < len))
513 while (len > 0) {
529 bytes = min(len, rnbyte_cnt);
532 len -= bytes;
535 if (len > 0 && how == ALWAYS_EXTRACT) {
542 while (len > 0) {
544 ptr++; len--;
557 kcf_rnd_get_bytes(uint8_t *ptr, size_t len, boolean_t noblock)
564 if ((error = rnd_get_bytes(ptr, len, how)) != 0)
567 BUMP_RND_STATS(rs_rndOut, len);
622 rnd_generate_pseudo_bytes(rndmag_pad_t *rmp, uint8_t *ptr, size_t len)
624 size_t bytes = len, size;
636 if (len == 0) {
641 nblock = howmany(len, HASHSIZE);
758 kcf_rnd_get_pseudo_bytes(uint8_t *ptr, size_t len)
766 ASSERT(len > 0);
779 if (len > rndmag_threshold) {
780 BUMP_CPU_RND_STATS(rmp, rs_urndOut, len);
781 return (rnd_generate_pseudo_bytes(rmp, ptr, len));
785 eptr = cptr + len;
789 bcopy(cptr, ptr, len);
790 BUMP_CPU_RND_STATS(rmp, rs_urndOut, len);
933 int len = 0;
943 * Note: len has no relationship with how many bytes
946 len = MAXEXTRACTBYTES;
948 len = MINEXTRACTBYTES;
957 if (len > 0 && rngprov_task_idle) {
967 (void *)(uintptr_t)len, TQ_NOSLEEP | TQ_NOQUEUE) == 0) {
997 rndc_addbytes(uint8_t *ptr, size_t len)
999 ASSERT(ptr != NULL && len > 0);
1003 while ((len > 0) && (rnbyte_cnt < RNDPOOLSIZE)) {
1005 ptr++; len--;
1011 while (len > 0) {
1013 ptr++; len--;
1020 * Caller should check len <= rnbyte_cnt under the
1024 rndc_getbytes(uint8_t *ptr, size_t len)
1027 ASSERT(len <= rnbyte_cnt && rnbyte_cnt <= RNDPOOLSIZE);
1029 BUMP_RND_STATS(rs_rndcOut, len);
1031 while (len > 0) {
1033 ptr++; len--;
1046 random_add_pseudo_entropy(uint8_t *ptr, size_t len, uint_t entropy_est)
1048 if (len < 1)
1051 rngprov_seed(ptr, len, entropy_est, 0);
1061 random_add_entropy(uint8_t *ptr, size_t len, uint_t entropy_est)
1063 if (len < 1)
1066 rngprov_seed(ptr, len, entropy_est, CRYPTO_SEED_NOW);
1076 random_get_pseudo_bytes(uint8_t *ptr, size_t len)
1080 if (len < 1)
1082 return (kcf_rnd_get_pseudo_bytes(ptr, len));
1090 random_get_bytes(uint8_t *ptr, size_t len)
1094 if (len < 1)
1096 return (kcf_rnd_get_bytes(ptr, len, B_TRUE));
1100 random_get_blocking_bytes(uint8_t *ptr, size_t len)
1104 if (len < 1)
1106 return (kcf_rnd_get_bytes(ptr, len, B_FALSE));