]> git.cryptolib.org Git - arm-crypto-lib.git/blobdiff - prf_tls12/prf_tls12.c
now with function
[arm-crypto-lib.git] / prf_tls12 / prf_tls12.c
index 8b84d5210db7e868ae1f40a14e3a76b2f82ea6b2..d88ab70cf5dd155caa478d3dd9846ea2f8ce8a6d 100644 (file)
@@ -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;
+}