Function report |
Source Code:security\keys\dh.c |
Create Date:2022-07-28 18:27:23 |
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
| home page | Tree |
| Annotation kernel can get tool activity | Download SCCT | Chinese |
Name:__keyctl_dh_compute
Proto:long __keyctl_dh_compute(struct keyctl_dh_params __user *params, char __user *buffer, size_t buflen, struct keyctl_kdf_params *kdfcopy)
Type:long
Parameter:
| Type | Parameter | Name |
|---|---|---|
| struct keyctl_dh_params __user * | params | |
| char __user * | buffer | |
| size_t | buflen | |
| struct keyctl_kdf_params * | kdfcopy |
| 249 | If copy_from_user( & pcopy, params, size of pcopy ) != 0 Then |
| 254 | If kdfcopy Then |
| 262 | If buflen > KEYCTL_KDF_MAX_OUTPUT_LEN || otherinfolen > KEYCTL_KDF_MAX_OI_LEN Then |
| 284 | dlen = dh_data_from_key(prime, & p) |
| 285 | If dlen < 0 Then |
| 291 | dlen = dh_data_from_key(base, & g) |
| 292 | If dlen < 0 Then |
| 298 | dlen = dh_data_from_key(private, & key) |
| 299 | If dlen < 0 Then |
| 305 | secretlen = rypto_dh_key_len() - Obtain the size of the private DH key*@params: private DH key* This function returns the packet DH key size |
| 306 | secret = Allocation memory |
| 307 | If Not secret Then |
| 311 | ret = rypto_dh_encode_key() - encode the private key*@buf: Buffer allocated by the caller to hold the packet DH* private key |
| 325 | outlen = rypto_kpp_maxsize() - Get len for output buffer* Function returns the output buffer size required for a given key |
| 327 | If Not kdfcopy Then |
| 332 | If buflen == 0 Then |
| 341 | outbuf = kzalloc - allocate memory. The memory is set to zero.*@size: how many bytes of memory are required.*@flags: the type of memory to allocate (see kmalloc). |
| 343 | If Not outbuf Then |
| 351 | If Not req Then |
| 358 | init_completion( & completion) |
| 368 | If ret == -EINPROGRESS Then |
| 375 | If kdfcopy Then |
| 380 | If copy_from_user(outbuf + dst_len, otherinfo, otherinfolen) != 0 Then |
| 386 | ret = keyctl_dh_compute_kdf(sdesc, buffer, buflen, outbuf, dst_len + otherinfolen, outlen - dst_len) |
| 389 | Else if copy_to_user(buffer, outbuf, dst_len) == 0 Then |
| 391 | Else |
| 395 | out6 : |
| 397 | out5 : |
| 399 | out4 : |
| 401 | out3 : |
| 403 | out2 : |
| 404 | dh_free_data( & dh_inputs) |
| 405 | out1 : |
| 406 | kdf_dealloc(sdesc) |
| 407 | Return ret |
| Name | Describe |
|---|---|
| compat_keyctl_dh_compute | Perform the DH computation or DH based key derivation.* If successful, 0 will be returned. |
| keyctl_dh_compute |
| Source code conversion tool public plug-in interface | X |
|---|---|
| Support c/c++/esqlc/java Oracle/Informix/Mysql Plug-in can realize: logical Report Code generation and batch code conversion |