blob: 0369a99821015c4fb749126ac3b63970915a856f [file] [log] [blame]
Search.setIndex({docnames:["about","example_header","index","intro","pake","specdef_values"],envversion:53,filenames:["about.rst","example_header.rst","index.rst","intro.rst","pake.rst","specdef_values.rst"],objects:{"":{PSA_ALG_IS_PAKE:[4,0,1,"c.PSA_ALG_IS_PAKE"],PSA_ALG_JPAKE:[4,0,1,"c.PSA_ALG_JPAKE"],PSA_PAKE_CIPHER_SUITE_INIT:[4,0,1,"c.PSA_PAKE_CIPHER_SUITE_INIT"],PSA_PAKE_INPUT_MAX_SIZE:[4,0,1,"c.PSA_PAKE_INPUT_MAX_SIZE"],PSA_PAKE_INPUT_SIZE:[4,0,1,"c.PSA_PAKE_INPUT_SIZE"],PSA_PAKE_OPERATION_INIT:[4,0,1,"c.PSA_PAKE_OPERATION_INIT"],PSA_PAKE_OUTPUT_MAX_SIZE:[4,0,1,"c.PSA_PAKE_OUTPUT_MAX_SIZE"],PSA_PAKE_OUTPUT_SIZE:[4,0,1,"c.PSA_PAKE_OUTPUT_SIZE"],PSA_PAKE_PRIMITIVE:[4,0,1,"c.PSA_PAKE_PRIMITIVE"],PSA_PAKE_PRIMITIVE_TYPE_DH:[4,0,1,"c.PSA_PAKE_PRIMITIVE_TYPE_DH"],PSA_PAKE_PRIMITIVE_TYPE_ECC:[4,0,1,"c.PSA_PAKE_PRIMITIVE_TYPE_ECC"],PSA_PAKE_ROLE_CLIENT:[4,0,1,"c.PSA_PAKE_ROLE_CLIENT"],PSA_PAKE_ROLE_FIRST:[4,0,1,"c.PSA_PAKE_ROLE_FIRST"],PSA_PAKE_ROLE_NONE:[4,0,1,"c.PSA_PAKE_ROLE_NONE"],PSA_PAKE_ROLE_SECOND:[4,0,1,"c.PSA_PAKE_ROLE_SECOND"],PSA_PAKE_ROLE_SERVER:[4,0,1,"c.PSA_PAKE_ROLE_SERVER"],PSA_PAKE_STEP_KEY_SHARE:[4,0,1,"c.PSA_PAKE_STEP_KEY_SHARE"],PSA_PAKE_STEP_ZK_PROOF:[4,0,1,"c.PSA_PAKE_STEP_ZK_PROOF"],PSA_PAKE_STEP_ZK_PUBLIC:[4,0,1,"c.PSA_PAKE_STEP_ZK_PUBLIC"],psa_pake_abort:[4,1,1,"c.psa_pake_abort"],psa_pake_cipher_suite_init:[4,1,1,"c.psa_pake_cipher_suite_init"],psa_pake_cipher_suite_t:[4,2,1,"c.psa_pake_cipher_suite_t"],psa_pake_cs_get_algorithm:[4,1,1,"c.psa_pake_cs_get_algorithm"],psa_pake_cs_get_hash:[4,1,1,"c.psa_pake_cs_get_hash"],psa_pake_cs_get_primitive:[4,1,1,"c.psa_pake_cs_get_primitive"],psa_pake_cs_set_algorithm:[4,1,1,"c.psa_pake_cs_set_algorithm"],psa_pake_cs_set_hash:[4,1,1,"c.psa_pake_cs_set_hash"],psa_pake_cs_set_primitive:[4,1,1,"c.psa_pake_cs_set_primitive"],psa_pake_family_t:[4,2,1,"c.psa_pake_family_t"],psa_pake_get_implicit_key:[4,1,1,"c.psa_pake_get_implicit_key"],psa_pake_input:[4,1,1,"c.psa_pake_input"],psa_pake_operation_init:[4,1,1,"c.psa_pake_operation_init"],psa_pake_operation_t:[4,2,1,"c.psa_pake_operation_t"],psa_pake_output:[4,1,1,"c.psa_pake_output"],psa_pake_primitive_t:[4,2,1,"c.psa_pake_primitive_t"],psa_pake_primitive_type_t:[4,2,1,"c.psa_pake_primitive_type_t"],psa_pake_role_t:[4,2,1,"c.psa_pake_role_t"],psa_pake_set_password_key:[4,1,1,"c.psa_pake_set_password_key"],psa_pake_set_peer:[4,1,1,"c.psa_pake_set_peer"],psa_pake_set_role:[4,1,1,"c.psa_pake_set_role"],psa_pake_set_user:[4,1,1,"c.psa_pake_set_user"],psa_pake_setup:[4,1,1,"c.psa_pake_setup"],psa_pake_step_t:[4,2,1,"c.psa_pake_step_t"]}},objnames:{"0":["c","macro","C macro"],"1":["c","function","C function"],"2":["c","type","C type"]},objtypes:{"0":"c:macro","1":"c:function","2":"c:type"},terms:{"0x01":4,"0x0101":[0,1,2,3,4,5],"0x0a":4,"0x0a000100":4,"0xffff0000":0,"0xffff_0000_0000_0000":0,"9nj":0,"abstract":2,"break":0,"byte":[0,4],"case":[0,4],"class":3,"const":[1,4],"export":0,"final":[1,3],"function":[0,5],"import":3,"long":[0,4],"public":[0,4],"return":[0,4],"short":0,"static":4,"true":4,"void":[1,4],AES:[0,1,2,3,4,5],AND:0,But:4,EKE:3,FOR:0,For:[0,4],IKE:3,LES:0,NOT:0,Not:[1,4],ONE:0,THE:0,TLS:[0,3],The:[0,1,3,4,5],There:3,These:3,USE:0,Use:4,Used:0,WILL:0,WITH:0,abbrevi:2,abl:4,abort:4,about:[2,4],abov:[0,3],access:4,accessor:4,accompani:0,acquir:0,action:4,activ:4,actual:4,added:4,addit:[0,2],aead:0,affili:[0,1,2,3,4,5],after:[0,4],again:4,against:0,agre:[0,4],agreement:0,alg:[1,4,5],algorithm:[0,2,3,5],all:[0,1,2,3,4,5],alloc:4,allow:[3,4],alreadi:3,also:[0,3,4],altern:[3,5],although:4,alwai:4,amp:3,analysi:0,ani:[0,3,4],anoth:[0,4],anticip:2,anyth:0,api:[0,1,3,5],appear:0,appendix:4,appli:[0,3],applic:[0,4],approach:3,appropri:4,architectur:0,arm:[1,2,3,4,5],armmb:0,arrai:4,aspect:0,assembl:0,assign:4,associ:[0,4],assum:4,assumpt:4,assur:0,asymmetr:0,attack:[0,3],attribut:4,augment:[3,4],augpak:3,authent:[0,2,3],automat:0,avoid:0,awar:0,background:3,balanc:[3,4],base:[0,3],becaus:[0,3],becom:4,been:[0,3,4],befor:[3,4],behalf:4,behavior:[0,4],being:[0,3,4],bet:[0,1,2,3,4,5],beta:[0,1,2,3,4,5],between:[0,4],big:4,binari:0,bit:[0,4],block:0,blue:0,both:[0,4],bound:0,box:3,brand:0,breach:0,bspeke2:3,buffer:4,built:0,calcul:4,call:[0,4],cambridg:0,can:[0,1,3,4,5],capit:0,carri:4,cat:4,categori:3,cb1:0,ceas:0,certain:0,cfrg:3,chang:2,charact:[0,4],character:4,chip:3,choic:3,cipher:[0,2],cipher_suit:[1,4],circul:[0,3],citat:0,claim:[0,4],clear:4,client:4,code:[0,4,5],com:[0,1,2,3,4,5],combin:4,comment:0,commentari:3,commerci:0,commit:0,common:0,commun:[0,3,4],compact:4,compani:0,compat:4,compil:[1,4],complet:[2,4],compli:0,compliant:0,compon:[0,4],compris:0,comput:[4,5],concis:0,condit:[0,4],confidenti:[1,2,3,4,5],confirm:[3,4],conflict:0,conform:4,conjunct:3,connect:0,consid:3,consider:3,consist:0,constant:4,constraint:4,construct:[0,4],consult:4,contain:[0,4],content:[0,2,4],context:[0,3],continu:4,contract:0,contrari:0,control:0,conveni:0,convent:[2,3],convers:4,convert:4,copi:0,copyright:[0,2],corpor:0,correct:[4,5],correl:0,correspond:4,counter:0,countermeasur:0,cpace:3,creat:0,cross:0,crypt:[0,3,4],crypto:[0,1,3],cryptograph:[0,4],cryptographi:[0,1,3,4,5],cryptoprocessor:0,ctr:0,current:[2,3],curv:[0,3,4],damag:0,data:[0,4],date:[0,2],decim:0,decis:3,declar:4,decrypt:[0,4],defin:[0,1,2,3,4,5],definit:[1,4,5],demand:0,demonstr:4,denot:[0,4],depend:4,deriv:[0,4],describ:[0,3,4],descript:[0,4,5],design:[0,3,4],destroi:0,detail:4,determin:[0,4],develop:[0,2,3],differ:[3,4],differenti:4,diffi:4,digest:0,digit:0,directli:0,discard:4,disclosur:0,distribut:0,divid:4,document:[2,3,4],doe:4,doubt:0,draft:0,dragonblood:3,dragonfli:3,due:4,duplic:0,dure:[0,4],each:[0,4,5],eap:3,ecc:4,ecjpak:3,effect:[0,4],effici:[0,4],eight:0,either:4,element:[1,4],ellipt:[0,3,4],elsewher:0,embodi:0,enabl:[2,3,4],encod:2,encrypt:[0,4],end:4,endian:4,england:0,english:0,enlarg:0,enough:4,ensur:[0,3],enter:4,entitl:0,entropi:0,ephemer:4,equival:4,error:4,establish:[0,4],evalu:4,event:[0,4],eventu:4,everi:0,exact:4,exactli:4,exampl:[0,2,4],exce:4,except:[0,3,4],excess:0,exchang:[0,2,3],exclus:0,execut:4,exist:[0,3],explan:0,explicit:4,express:0,expressli:0,extend:[0,3,4],extens:[0,1,4,5],extent:0,extract:0,fact:0,factor:3,fail:4,famili:[2,4],februari:0,feedback:[1,2,3,4,5],few:0,field:4,figur:4,file:[2,4],finit:[0,4],first:4,fit:[0,3],flag:4,flow:4,focus:3,follow:[0,3,4],font:0,forc:0,format:4,four:0,free:[0,4],from:[0,4],fulbourn:0,full:1,fullest:0,fulli:[0,1,4],futur:[2,3,4,5],gener:[0,3],get:4,github:0,give:0,given:4,global:4,govern:0,grant:0,green:3,group:4,guarante:[0,4],hardwar:0,has:[0,3,4],hash:[0,4],hash_alg:[1,4],have:[0,3,4,5],header:2,hellman:4,help:3,here:[4,5],hereaft:0,herebi:0,herein:0,hereund:0,hexadecim:0,higher:4,histori:0,hmac:0,hold:4,how:4,howev:[0,2],html:0,http:0,ident:4,identifi:[0,3],iec:3,ieee:3,ietf:[0,3],ignor:0,ihi0086:0,ihi:[0,2],ikev2:3,immedi:0,implement:[0,1,2,3],impli:0,implicit:4,implicitli:4,improv:0,inact:4,includ:[0,2,3,4],indic:[0,4],indirectli:0,individu:[0,4],industri:3,infocent:0,inform:[2,3,4],infring:0,initi:[0,2,4],inject:4,inlin:4,input:[0,1,4,5],input_length:[1,4],input_step:[1,4],instanc:0,instanti:4,instruct:0,insuffici:4,integ:[0,4],integr:[3,4],intellectu:0,interact:[0,4],interest:0,interfac:[0,2,3,4],interpret:[0,4],introduc:[0,2,3],introduct:2,invalid:4,involv:4,iso:3,issu:[0,1,2,3,4,5],ital:0,item:0,its:[0,1,2,3,4,5],itself:[0,4],itu:3,jpake:4,juggl:[0,4],kdf:[0,4],kei:[0,2,3,5],kerbero:3,key_deriv:4,keypair:0,keystor:0,know:4,knowledg:[0,4],known:3,languag:0,larg:4,latest:0,law:0,lead:4,least:4,led:3,legal:0,length:4,less:4,level:[2,4],liabil:0,liabl:0,librari:4,licenc:2,licens:0,license:0,lifespan:0,lifetim:0,like:[3,4,5],limit:[0,1,2,3,4,5],link:0,list:[0,3,4],littl:4,locat:0,logic:4,logo:0,low:0,ltd:0,mac:0,macro:2,made:[0,3],mai:[0,4],mail:0,main:0,major:0,make:[0,4],manag:0,mani:4,manufactur:0,map:4,mark:0,marker:4,match:4,materi:[0,4],matter:0,maximum:4,mbed:[0,3],mbedtl:0,mean:[0,4],mechan:[0,3],memori:0,memset:4,mention:0,merchant:0,messag:0,metadata:0,method:[0,4],might:[0,1,4],migrat:3,miss:1,mnemon:0,mode:0,modulo:4,monospac:0,montgomeri:4,more:[0,4],most:3,multi:[0,2],must:[0,1,3,4],name:[0,4],necessari:4,need:[3,4],neglig:3,nizk:4,nizkp:4,non:[1,2,3,4,5],nonc:0,none:3,normal:0,note:3,notic:0,notwithstand:0,now:[0,4],number:[2,3,4],numer:4,object:[2,4],oblig:0,occur:4,octet:0,offici:4,onc:[1,4],one:[0,3,4],onli:[0,3,4],opaqu:3,open:0,oper:[0,1,2],option:4,order:[2,4],ordinari:0,org:0,origin:4,other:[0,4],otherwis:[0,4],out:4,output:[0,1,4],output_length:[1,4],output_s:[1,4],output_step:[1,4],over:4,overwrit:4,own:0,owner:0,pace:3,page:0,pair:0,pak:3,pake:[0,1,5],pake_bit:[1,4,5],pake_famili:[1,4,5],pake_typ:[1,4,5],pakz:3,par:3,paramet:4,parametr:4,parametris:4,part:[0,2],parti:[0,4],particip:4,particular:[0,3,4],pass:4,password:[0,1,2,3],patent:0,pattern:4,pdf:0,peer:4,peer_id:[1,4],peer_id_len:[1,4],per:4,perform:[0,4],period:0,permit:[0,4],persist:0,phase:4,physic:0,piec:0,pkex:3,plain:0,platform:0,pleas:0,point:[1,4],polici:0,popular:3,portabl:4,portion:0,possess:0,ppk:3,practic:3,pre:0,preced:0,prefix:0,prejudic:0,prepar:4,present:3,prevail:0,prevent:0,previous:4,prime:4,primit:[1,2],privat:[0,4],produc:0,product:[0,2],program:[0,2],project:3,proof:[0,3,4],properti:0,propos:[2,3,4],protect:0,protocol:[0,3,4],provid:[0,1,3,4,5],psa:[0,1,3,4,5],psa_alg_is_hash:4,psa_alg_is_pak:[1,5],psa_alg_jpak:1,psa_alg_non:4,psa_algorithm_t:[1,4],psa_crypto_init:4,psa_dh_family_t:4,psa_ecc_family_t:4,psa_error_bad_st:4,psa_error_buffer_too_smal:4,psa_error_communication_failur:4,psa_error_corruption_detect:4,psa_error_data_corrupt:4,psa_error_data_invalid:4,psa_error_insufficient_entropi:4,psa_error_insufficient_memori:4,psa_error_invalid_argu:4,psa_error_invalid_handl:4,psa_error_invalid_signatur:4,psa_error_not_permit:4,psa_error_not_support:4,psa_error_storage_failur:4,psa_export_kei:4,psa_export_public_kei:4,psa_key_derivation_abort:4,psa_key_derivation_input_byt:4,psa_key_derivation_input_context:4,psa_key_derivation_input_label:4,psa_key_derivation_input_secret:4,psa_key_derivation_operation_init:4,psa_key_derivation_operation_t:[1,4],psa_key_derivation_setup:4,psa_key_id_t:[1,4],psa_key_type_password:4,psa_key_type_password_hash:4,psa_key_usage_der:4,psa_pake_abort:1,psa_pake_cipher_suite_init:1,psa_pake_cipher_suite_t:1,psa_pake_cs_get_algorithm:1,psa_pake_cs_get_hash:1,psa_pake_cs_get_primit:1,psa_pake_cs_get_xxx:4,psa_pake_cs_set_algorithm:1,psa_pake_cs_set_hash:1,psa_pake_cs_set_primit:1,psa_pake_cs_set_xxx:4,psa_pake_family_t:1,psa_pake_get_implicit_kei:1,psa_pake_input:1,psa_pake_input_max_s:1,psa_pake_input_s:1,psa_pake_operation_init:1,psa_pake_operation_t:1,psa_pake_output:1,psa_pake_output_max_s:1,psa_pake_output_s:1,psa_pake_primit:[1,5],psa_pake_primitive_t:[1,5],psa_pake_primitive_type_dh:1,psa_pake_primitive_type_ecc:1,psa_pake_primitive_type_t:1,psa_pake_primitive_type_xxx:4,psa_pake_role_cli:1,psa_pake_role_first:1,psa_pake_role_non:1,psa_pake_role_second:1,psa_pake_role_serv:1,psa_pake_role_t:1,psa_pake_set_p:1,psa_pake_set_password_kei:1,psa_pake_set_rol:1,psa_pake_set_us:1,psa_pake_set_xxx:4,psa_pake_setup:1,psa_pake_step_key_shar:1,psa_pake_step_t:1,psa_pake_step_zk_proof:1,psa_pake_step_zk_publ:1,psa_status_t:[1,4],psa_success:4,pseudo:5,pseudocod:0,psk:3,purpos:0,pwd:3,qualiti:[0,2],queri:4,question:4,rang:[0,4],rational:[3,4],read:[0,3],readabl:0,reader:3,readi:4,receiv:4,recipi:0,recogn:4,recommend:[3,4],red:0,reduc:4,reduct:4,ref:0,refer:[1,2,4],reflect:0,regard:4,regist:0,regul:0,relat:[0,3],releas:2,relev:0,remain:[0,4],remot:3,reorder:1,replac:5,report:4,repres:4,represent:[0,4,5],request:4,requir:[1,4],reserv:[0,1,2,3,4,5],reset:4,resourc:4,respect:[0,4],respons:0,restart:0,restrict:[0,4],result:[4,5],retriev:4,reus:[0,4],review:2,revis:0,rfc8235:[0,4],rfc8236:[0,4],rfc:3,right:[0,1,2,3,4,5],road:0,role:[1,2],round:4,royalti:0,rule:[0,1],safe:4,salt:0,same:[0,4],satisfactori:0,satisfi:1,scalar:4,scheme:[0,2],schnorr:[0,4],scope:[0,2],sec1:[0,4],sec:[0,4],secg:0,second:4,secret:[0,4],section:5,secur:[0,3],see:[0,4],select:4,sell:0,send:0,sent:4,separ:0,septemb:0,sequenc:[0,4],server:4,sespak:3,session:4,set:4,setup:4,sever:[0,4],shall:0,share:[0,4],should:[3,4],shown:4,signatur:0,simpl:4,sinc:4,singl:[0,4],situat:4,size:[0,4],size_t:[1,4],sizeof:4,small:[0,4],smaller:4,softwar:0,sole:0,some:[0,3,4],someon:4,sometim:3,sourc:0,spake1:3,spake2:3,spake:3,special:[0,4],specif:[0,1,2,4,5],specifi:4,speke:3,split:0,srp:3,stabl:[0,3,4],standard:[0,4],start:1,state:4,statement:[0,4],statu:[2,4],statutori:0,step:[0,1,2],still:2,stop:0,storag:0,store:[0,4],stream:0,string:0,strong:0,structur:[0,4],sub:0,subject:[0,2],subsidiari:0,substanti:4,succeed:4,success:[3,4],successfulli:4,suffici:[0,3,4],suggest:0,suit:[0,2],suitabl:[2,4],suppli:0,support:[2,3,5],surviv:0,symmetr:[0,4],syntax:0,system:0,tabl:[0,4],take:4,taken:[3,4],tamper:0,technic:0,technolog:0,term:2,termin:[0,4],terminolog:0,text:[0,4],than:[0,4],thei:3,them:[3,4],therein:0,thereof:0,thereon:0,thi:[1,2,4,5],third:0,thread:3,time:[0,4],titl:0,too:4,tool:0,tort:0,trade:0,trademark:0,transcript:4,transfer:[0,4],translat:0,two:[0,4],type:[0,1,2,5],typedef:[1,4],typic:4,uint32_t:[1,4],uint8_t:[1,4],unalloc:4,under:0,underli:4,underscor:0,understand:[0,3],undertaken:0,unit:0,unspecifi:4,until:[0,4],updat:2,upon:0,url:0,usag:4,use:[0,3,4],used:[0,1,3,4],useful:4,user:[3,4],user_id:[1,4],user_id_len:[1,4],uses:[0,4],using:[0,4],valid:[0,4,5],valu:[0,1,5],variabl:4,variant:3,variou:4,vector:0,veri:3,verif:4,verifi:[0,4],version:[0,2,3,4,5],violat:0,visit:0,volatil:0,vote:0,warranti:0,weak:0,websit:0,welcom:0,well:[3,4],were:0,what:0,when:[0,3,4],where:4,whether:4,which:[0,3,4],who:[0,4],whose:0,wider:[2,3],within:0,without:[0,1,4],word:0,worldwid:0,wpa3:3,write:4,written:[0,4],wspeke:3,www:0,x00:[1,4],x01:[1,4],x02:[1,4],x03:[1,4],x0a000000:5,x0a000100:[1,4],x11:[1,4],x12:[1,4],x7f000000:5,x7f:4,x80:4,xff:4,xffff:5,yet:4,you:[0,4],your:0,zero:[0,4],zkp:4},titles:["About this document","Example header file","PSA Cryptography API 1.1 PAKE Extension","1. Introduction","2. Password-authenticated key exchange (PAKE)","Example macro implementations"],titleterms:{"function":4,"new":4,abbrevi:0,about:0,addit:4,algorithm:4,anticip:0,api:[2,4],applic:3,arm:0,authent:4,book:0,categori:4,chang:[0,4],cipher:4,confidenti:0,convent:0,cryptographi:2,current:0,deploy:3,document:0,encod:4,exampl:[1,5],exchang:4,extens:[2,3],feedback:0,file:1,header:1,identifi:4,implement:[4,5],inform:0,introduct:3,kei:4,licenc:0,macro:[4,5],multi:4,non:0,note:4,number:0,object:3,oper:4,out:3,pake:[2,3,4],part:4,password:4,primit:4,program:4,psa:2,psa_alg_is_pak:4,psa_alg_jpak:4,psa_pake_abort:4,psa_pake_cipher_suite_init:4,psa_pake_cipher_suite_t:4,psa_pake_cs_get_algorithm:4,psa_pake_cs_get_hash:4,psa_pake_cs_get_primit:4,psa_pake_cs_set_algorithm:4,psa_pake_cs_set_hash:4,psa_pake_cs_set_primit:4,psa_pake_family_t:4,psa_pake_get_implicit_kei:4,psa_pake_input:4,psa_pake_input_max_s:4,psa_pake_input_s:4,psa_pake_operation_init:4,psa_pake_operation_t:4,psa_pake_output:4,psa_pake_output_max_s:4,psa_pake_output_s:4,psa_pake_primit:4,psa_pake_primitive_t:4,psa_pake_primitive_type_dh:4,psa_pake_primitive_type_ecc:4,psa_pake_primitive_type_t:4,psa_pake_role_cli:4,psa_pake_role_first:4,psa_pake_role_non:4,psa_pake_role_second:4,psa_pake_role_serv:4,psa_pake_role_t:4,psa_pake_set_p:4,psa_pake_set_password_kei:4,psa_pake_set_rol:4,psa_pake_set_us:4,psa_pake_setup:4,psa_pake_step_key_shar:4,psa_pake_step_t:4,psa_pake_step_zk_proof:4,psa_pake_step_zk_publ:4,refer:0,releas:0,request:3,review:3,role:4,scheme:3,scope:3,specif:3,standard:3,statu:0,step:4,sub:4,suit:4,support:4,term:0,thi:[0,3],type:4,typograph:0,valu:4,wide:3}})