X-Git-Url: https://git.cryptolib.org/?a=blobdiff_plain;f=prf_tls12%2Fprf_tls12.c;h=d88ab70cf5dd155caa478d3dd9846ea2f8ce8a6d;hb=1cc5630207195b3bc9d967596a9a207c1c0f6464;hp=8b84d5210db7e868ae1f40a14e3a76b2f82ea6b2;hpb=b9d6e1eb867eaa431c4c555a7409342805fa2706;p=arm-crypto-lib.git diff --git a/prf_tls12/prf_tls12.c b/prf_tls12/prf_tls12.c index 8b84d52..d88ab70 100644 --- a/prf_tls12/prf_tls12.c +++ b/prf_tls12/prf_tls12.c @@ -133,3 +133,21 @@ uint8_t prf_tls12_next(void* dest, prf_tls12_ctx_t* ctx){ return 0; } +uint8_t prf_tls12_fill(void* dest, uint16_t length_B, prf_tls12_ctx_t* ctx){ + uint16_t bs = ctx->blocklength_b/8; + while(length_B>=bs){ + if(prf_tls12_next(dest, ctx)){ + return 1; + } + length_B -= bs; + dest = (uint8_t*)dest + bs; + } + if(length_B){ + uint8_t buffer[bs]; + if(prf_tls12_next(buffer, ctx)){ + return 2; + } + memcpy(dest, buffer, length_B); + } + return 0; +}