+ if(keysize){
+ /* keysize is less than 256 bit, padding needed */
+ memset(buffer, 0, 32);
+ memcpy(buffer, key, (keysize+7)/8);
+ ((uint8_t*)buffer)[keysize/8] |= 1<<(keysize%8);
+ } else {
+ /* keysize is 256 bit */
+ memcpy(buffer, key, 32);
+ }