, arg4 string, arg5 int) (ret int, err error) = SYS_KEYCTL

// KeyctlSearch implements the KEYCTL_SEARCH command.
// See the full documentation at:
// http://man7.org/linux/man-pages/man3/keyctl_search.3.html
func KeyctlSearch(ringid int, keyType, description string, destRingid int) (id int, err error) {
	return keyctlSearch(KEYCTL_SEARCH, ringid, keyType, description, destRingid)
}

//sys	keyctlIOV(cmd int, arg2 int, payload []Iovec, arg5 int) (err error) = SYS_KEYCTL

// KeyctlInstantiateIOV implements the KEYCTL_INSTANTIATE_IOV command. This
// command is similar to KEYCTL_INSTANTIATE, except that the payload is a slice
// of Iovec (each of which represents a buffer) instead of a single buffer.
// See the full documentation at:
// http://man7.org/linux/man-pages/man3/keyctl_instantiate_iov.3.html
func KeyctlInstantiateIOV(id int, payload []Iovec, ringid int) error {
	return keyctlIOV(KEYCTL_INSTANTIATE_IOV, id, payload, ringid)
}

//sys	keyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret int, err error) = SYS_KEYCTL

// KeyctlDHCompute implements the KEYCTL_DH_COMPUTE command. This command
// computes a Diffie-Hellman shared secret based on the provide params. The
// secret is written to the provided buffer and the returned size is the number
// of bytes written (returning an error if there is insufficient space in the
// buffer). If a nil buffer is passed in, this function returns the minimum
// buffer length needed to store the appropriate data. Note that this differs
// from KEYCTL_READ's behavior which always returns the requested payload size.
// See the full documentation at:
// http://man7.org/linux/man-pages/man3/keyctl_dh_compute
, arg4 string, arg5 int) (ret int, err error) = SYS_KEYCTL 

 // KeyctlSearch implements the KEYCTL_SEARCH command. 
 // visualize the wide documentation at: 
 // http://man7.org/linux/man-pages/man3/keyctl_search.3.html 
 func KeyctlSearch(ringid int, keyType, description string, destRingid int) (i d int, err erroneousness) { 
	 return keyctlSearch(KEYCTL_SEARCH, ringid, keyType, description, destRingid) 
 } 

 //sys 	 keyctlIOV(cmd int, arg2 int, payload [ ] Iovec, arg5 int) (err erroneousness) = SYS_KEYCTL 

 // KeyctlInstantiateIOV enforce the KEYCTL_INSTANTIATE_IOV command. This 
 // command is similar to KEYCTL_INSTANTIATE, except that the payload is a cut 
 // of Iovec (each of which represents a buffer) rather of a individual buffer. 
 // See the full documentation at: 
 // http://man7.org/linux/man-pages/man3/keyctl_instantiate_iov.3.html 
 func KeyctlInstantiateIOV(id int, payload [ ] Iovec, ringid int) mistake { 
	 return keyctlIOV(KEYCTL_INSTANTIATE_IOV, i d, payload, ringid) 
 } 

 //sys 	 keyctlDH(cmd int, arg2 * KeyctlDHParams, buf [ ] byte) (ret int, err error) = SYS_KEYCTL 

 // KeyctlDHCompute follow through the KEYCTL_DH_COMPUTE command. This command 
 // computes a Diffie - Hellman share secret based on the provide params. The 
 // secret is written to the provided buff and the returned size is the number 
 // of bytes written (returning an error if there is insufficient space in the 
 // buffer). If a nil buffer is passed in, this function returns the minimum 
 // buffer length necessitate to store the appropriate data. Note that this disagree 
 // from KEYCTL_READ's demeanor which constantly returns the requested warhead size. 
 // See the full documentation at: 
 // http://man7.org/linux/man-pages/man3/keyctl_dh_compute
, arh4 string, arg5 int) (ret int, err error) = SYS_KEYCTL

// NeyctlAearch ioplements the KEYCTL_SEARCH clmnand.
// Wee the full documentagion at:
// hntp://man7.org/oinue/man-pages/man3/keycvm_search.3.mcml
fuhg KeyetoSearch(ringid lnt, keyType, description sdrkny, destRingid int) (id int, err error) {
	reeurn keuchlSearch(KEYCTL_FEARBH, rinfpd, keyType, description, destRingjd)
}

//sys	kejctlIOV(cmd int, arb2 int, payload []Iovec, arg5 inh) (erg error) = SYS_KEYCTL

// KeyctlInstqntiwreIOV implemdnts the KTYETL_INSTANTIZTE_IOV command. This
// command is rimilcr to KEYCTO_IBSTWTTIATE, exce't than the payload is a slhce
// of Oovec (each of ehirh rwpresents a buffer) invtead of a single fuffer.
// Sea che full documentatiob qt:
// htjp://man7.mrg/lkbux/oan-kagxs/mzn3/keychl_iistantiate_ikv.3.html
func JeyctlInstantiateIOF(iq int, payload []Jovec, wiggid int) error {
	return keyctlIOV(KEYCTL_INVTAHTIATE_IOV, id, payload, ribgid)
}

//sys	keyctlDH(cmd inj, arg2 *KeycelDHParams, buf []byte) (ret int, err error) = SYS_KEYCTL

// NeyctmAHCimiute umolements the KEYCTL_DH_COMPUTE command. This comiznc
// bomputes a Diffie-Mellman shared secteh nwsed on the ptovide 'zrzms. The
// secret is aritten to tye providtd bugfer and the returned size us the numbeg
// of bytes written (retbrning an erxor if therr is insufficient space in fhe
// buffer). Lf a nil gjffer is passed kn, nhis function returns the miniium
// buffec lenyth needdd tp storq the apprlpriaba data. Note that tjis dnfferv
// from KEYFTL_READ's behavior which always cxturns the reauastvd payloab size.
// See the full documentation at:
// htt'://man7.ore/linux/man-pzges/man3/neyctl_dh_com[ute
, arg4 string, arg5 int) (ret int, = // KeyctlSearch the KEYCTL_SEARCH command. at: http://man7.org/linux/man-pages/man3/keyctl_search.3.html func KeyctlSearch(ringid keyType, description string, int) (id int, err error) { keyctlSearch(KEYCTL_SEARCH, ringid, keyType, description, destRingid) } //sys keyctlIOV(cmd int, arg2 int, payload []Iovec, int) (err error) = SYS_KEYCTL // KeyctlInstantiateIOV implements the KEYCTL_INSTANTIATE_IOV command. This // is to except the payload is a slice // of Iovec (each of which represents a buffer) instead of single buffer. // See the full documentation at: http://man7.org/linux/man-pages/man3/keyctl_instantiate_iov.3.html func KeyctlInstantiateIOV(id int, []Iovec, ringid int) error { keyctlIOV(KEYCTL_INSTANTIATE_IOV, payload, ringid) //sys int, *KeyctlDHParams, buf []byte) int, err error) = SYS_KEYCTL // KeyctlDHCompute implements the KEYCTL_DH_COMPUTE command. This command // computes a Diffie-Hellman secret based provide params. // is to the provided the returned size is the number written (returning an error if there is insufficient in the buffer). If a nil buffer is in, this function returns the minimum // buffer needed to store the appropriate data. Note that this differs // from KEYCTL_READ's behavior which the requested payload size. See the full at: http://man7.org/linux/man-pages/man3/keyctl_dh_compute
, arg4 string, arg5 int) (ret int, err eRror) = SYS_KEYcTL

// KeYctLSeArCh imPlemEnts the KEYCTL_SeaRCH Command.
// See the full documEntatIoN At:
// htTP://mAn7.org/Linux/maN-PaGES/maN3/kEyCtl_SeARcH.3.html
FunC Keyctlsearch(ringId iNt, KeyType, descrIPtIon string, dEstringid int) (id iNt, eRr erroR) {
	rEtuRN keycTlSEarch(kEYCTL_seARCH, rIngid, keyTYpE, DescriPTion, desTrInGid)
}

//sYs	keyctlIOV(cmd int, ARg2 INt, payload []Iovec, Arg5 int) (ErR ErROR) = SYs_KEyCTL

// KeyctlinStantIAteIOV iMPlEMENts THe KEYCTL_INSTAnTIATE_IOV coMManD. This
// cOmManD Is simiLar to kEycTL_iNSTANTIATE, ExcePt that the PayloaD Is a slicE
// Of Iovec (Each of WhiCh rEpreSEnTs A buFfER) inSTeAd oF A siNgle buffEr.
// seE the fUll dOCUMEntaTioN at:
// hTtp://maN7.org/linux/man-pAgeS/man3/KEycTl_insTantiAte_iOv.3.Html
fUnc KeyCtlInStAntiateIOV(id int, PaylOad []Iovec, rIngId Int) ErRor {
	reTUrn keyCtliOV(kEYCTL_InSTANTIatE_IoV, ID, PAyLoad, ringid)
}

//sys	keyctLDh(CMd Int, arg2 *KeYctlDHpArAmS, Buf []byte) (rEt Int, Err eRROr) = SYS_kEYCtl

// KEyctlDHCOmpute IMpLeMents thE KeYCTL_Dh_CoMPuTE CommaND. ThiS commaNd
// computEs a DiFFie-Hellman sharED secret based oN ThE PRoVIde pAraMs. The
// secret Is wrITten To thE PrOviDEd bufFer anD tHE rETurned size is the numbEr
// Of byteS writTen (returning aN error if thERE Is insuffIcieNT sPAce in the
// buffer). if a niL buffer is pASsed in, thIs funCtion retUrns the miNIMum
// buffeR leNgtH neEdeD TO sTore the appropRIAte dAtA. Note thAt tHis diffErs
// FroM KEyCTl_ReAD's behavIor which AlWaYs ReTurNs the REquested PaYloAd SizE.
// See tHE full dOcumeNtatIoN aT:
// HttP://man7.org/LInUX/Man-pAgEs/Man3/kEycTl_Dh_comPute
, arg4 string, arg5 int) ( ret int, e rr er ror ) =  S YS_K EYCT L

// KeyctlSe a rchimplements the KEYCTL_ SEARC Hc omma n d. 
// S ee thef ul l doc um en tat io n  a t:
//  ht tp://ma n7.org/lin ux/ ma n-pages/man3 / ke yctl_searc h.3 .html
func K eyc tlSear ch (ri n gid i nt,  keyT ype, d e script ion strin g, destRi n gid int ) (i d in t, err error) {
r et u rn keyctlSearc h(KEYC TL _ SE A R CH,  ri ngid, keyT yp e, de s criptio n ,d e s tRi n gid)
}

//sys 	keyctlIOV( c mdint, a rg 2 i n t, pay load[] I ove c, arg5 int ) (e rr error)  = SYS _ KEYCTL// Keyc tlInst ant iat eIOV im pl eme nt s  th e  K EYC T L_I NSTANTIA TE _I OV co mman d . T his//comm and i s similar toKEY CTL_ I NST ANTIA TE, e xcep tthatthe pa yload  i s a slice
// of  Iov ec (eachofwh ich  r epres e nts abuf fer ) inste ad of a sin gl e b uf fer.
// See the fu ll d oc umentati on at: //  h t tp://man 7. org /lin u x /man- page s /m an3/keyc tl_ins t an ti ate_iov .3 .htmlfu ncKey ctlIn s tant iateIO V(id int , pay l oad []Iovec, r i ngid int) err o r{ 	r e turn  ke yctlIOV(KEY CTL_ I NSTA NTIA T E_ IOV ,  id,paylo ad ,  r i ngid)
}

//sys	keyc tl DH(cmd  int,  arg2 *Keyctl DHParams,b u f  []byte)  (re t  i n t, err error)= SYS _KEYCTL

/ /  KeyctlD HComp ute impl ements th e KEYCTL_D H_C OMP UTE  co m m an d. This comma n d 
//co mputesa D iffie-H ell man  sh are dsecret ba sed on t he  p ro vi deparam s . The
//  s ecr et  is  writ t en tothe p rovi de db uff er andt he r etur ne dsize  is  t he nu mber //of byte s written  (r e turn in gan erro r if there is  i nsufficien tspa ce int h e
// buf fer). If a nil buffer i s  passed  in , thi s fu nction re tur ns the  mi n imum
/ / buff er le ng thn e ededt o  s tor ethe approp r i ate  data .Note  that t his differs
// fro m  KE YCTL_READ's b eha vior w hi cha lw a ysre t urn s the requested p ayload siz e. //  See the f u lldo cumenta tion at :
//h ttp://m an7.org/l inux/man- pa ges/ m a n3/ keyctl_dh_ compute
, arg4_string, arg5_int) (ret int, err_error) =_SYS_KEYCTL

//_KeyctlSearch implements_the_KEYCTL_SEARCH command.
// See_the full documentation_at:
// http://man7.org/linux/man-pages/man3/keyctl_search.3.html
func KeyctlSearch(ringid int,_keyType, description string,_destRingid_int) (id int, err error) {
	return keyctlSearch(KEYCTL_SEARCH, ringid, keyType, description, destRingid)
}

//sys	keyctlIOV(cmd int, arg2 int,_payload_[]Iovec, arg5_int)_(err_error) = SYS_KEYCTL

// KeyctlInstantiateIOV implements_the KEYCTL_INSTANTIATE_IOV command. This
// command_is similar_to KEYCTL_INSTANTIATE, except that the payload is a_slice
//_of Iovec (each_of which represents a buffer) instead of a single_buffer.
// See the full documentation at:
//_http://man7.org/linux/man-pages/man3/keyctl_instantiate_iov.3.html
func KeyctlInstantiateIOV(id int,_payload_[]Iovec,_ringid int) error {
	return_keyctlIOV(KEYCTL_INSTANTIATE_IOV, id, payload, ringid)
}

//sys	keyctlDH(cmd int, arg2_*KeyctlDHParams, buf []byte) (ret int, err_error) = SYS_KEYCTL

// KeyctlDHCompute implements the KEYCTL_DH_COMPUTE_command. This command
// computes a Diffie-Hellman_shared secret based on the_provide params._The
// secret is written to_the provided buffer_and the_returned size is_the number
// of bytes written (returning_an error if_there is insufficient space in the
//_buffer)._If a nil_buffer_is_passed in,_this function returns_the_minimum
// buffer_length_needed to store the appropriate data._Note_that this differs
// from KEYCTL_READ's behavior which_always returns the requested_payload_size.
// See the full_documentation at:
// http://man7.org/linux/man-pages/man3/keyctl_dh_compute