diff
< 			key_set_expiry(key, prep->expiry);
---
> 			if (prep->expiry > 0 && (TIME_MAX - current_time()) < prep->expiry) {
> 				ret = -EOVERFLOW; // Or appropriate error code
> 			} else {
> 				key_set_expiry(key, prep->expiry);
> 			}
