(in-package #:cl-openid) (in-suite :cl-openid) (test session-digest-type (is (eq :sha1 (session-digest-type "DH-SHA1"))) (is (eq :sha256 (session-digest-type "DH-SHA256"))) (is (eq nil (session-digest-type "no-encryption"))) (is (eq nil (session-digest-type ""))) (for-all ((s (gen-string))) (if (member s '("DH-SHA1" "DH-SHA256" "no-encryption" "") :test #'string=) (pass) ; already tested (signals error (session-digest-type s))))) (defun usbvec (&rest args) (make-array (length args) :element-type '(unsigned-byte 8) :initial-contents args)) (test dh-encrypt/decrypt-key (dolist (test-case ; Bunch of real-life cases, no corner cases, sorry `(((:SHA1 2 155172898181473697471232257763715539915724801966915404479707795314057629378541917580651227423698188993727816152646631438561595825688188889951272158842675419950341258706556549803580104870537681476726513255747040765857479291291572334510643245094715007229621094194349783925984760375594985848253359305585439638443 43133364286046104005495596878039303762196669171438428938484574843494782439502836630227438149927559433027244553255608507827193992925769740183616244130334720147931117672525071711832345250549475978306633924527144414476944590135364797914149245172188626607339638808147553293851580599526687143018311534185530762603 51637223610690816625812698519303640908854460296439577357765359955190068531605839218865501917949045073722879861824322852045868329086038019720533834354129116030720340329443541315597571146266178574551783886626287418811239490568390196651127292510126702025485447201697157625658664574008580322516700116100756798998 "rEhIYU80i0PHxzshfzNeOXG6jSY=") . (#(21 123 136 76 122 134 151 0 75 64 97 169 64 36 18 12 121 41 94 60) 62859108771705071019070544249100629163825940846223833702223491079734828378774578655018753326055679241111045404258592710772564003687023422314004745568151622953019088633965638349295064599274982134307175684474425148501674660261857905708833524538899653001900997639854294193458879348992327451997387829713796576225)) ((:SHA1 2 155172898181473697471232257763715539915724801966915404479707795314057629378541917580651227423698188993727816152646631438561595825688188889951272158842675419950341258706556549803580104870537681476726513255747040765857479291291572334510643245094715007229621094194349783925984760375594985848253359305585439638443 88928144589664707944221383935339434390455491896188855536738552339889198294082023539337325759708641809990058266202739307542187808473314633312932542309682904698185035499452776459905876507087800614709467859102293846271205937474098663371659611061308990020344491280343568221857783933207123799751223308218777831559 27640060165088002617514944780328848587549941645258734574565786324915525358036729513712513761000636455181860941468247254362868653627784306709864758703678666208494546030974691271481535044914318914327322560898071219780051618121701383770717704969066479955840845716733853687879056056166059994112360174971673345930 "WBmBc4eKOXmDVHFanZNaFGxCb3M=") . (#(1 238 128 9 54 94 33 224 171 125 206 175 26 22 245 173 240 199 207 194) 132122098251739532912123911797194514441141850204440966676447473633923258413616900050094246491320794962653183965203084558680100350822597360075872830778628897605867694981526933820554774968967629408571515056157726625387698665997069051249324248051176749274562707813745709468306187037698729607825080402515576572235)) ((:SHA256 2 155172898181473697471232257763715539915724801966915404479707795314057629378541917580651227423698188993727816152646631438561595825688188889951272158842675419950341258706556549803580104870537681476726513255747040765857479291291572334510643245094715007229621094194349783925984760375594985848253359305585439638443 70866243240532385070758052919969284573786306061744674372237351180206181017417503368784151918974715821667277731676772491138395247167244726918917841479124243601667203092700219407749903479468092675884722816915023711717925248810279468526054325175062572681094626247278357795533598755906007281182903064997490123769 27640060165088002617514944780328848587549941645258734574565786324915525358036729513712513761000636455181860941468247254362868653627784306709864758703678666208494546030974691271481535044914318914327322560898071219780051618121701383770717704969066479955840845716733853687879056056166059994112360174971673345930 "KDFtDmx188gr+p9SFk1x0c03xpOZoRUFFb0PJl3kx38=") . (#(80 157 139 22 232 82 34 218 217 100 160 244 246 169 200 219 88 34 94 36 90 22 164 99 75 26 216 91 104 160 89 0) 132122098251739532912123911797194514441141850204440966676447473633923258413616900050094246491320794962653183965203084558680100350822597360075872830778628897605867694981526933820554774968967629408571515056157726625387698665997069051249324248051176749274562707813745709468306187037698729607825080402515576572235)) ((:SHA256 2 155172898181473697471232257763715539915724801966915404479707795314057629378541917580651227423698188993727816152646631438561595825688188889951272158842675419950341258706556549803580104870537681476726513255747040765857479291291572334510643245094715007229621094194349783925984760375594985848253359305585439638443 132122098251739532912123911797194514441141850204440966676447473633923258413616900050094246491320794962653183965203084558680100350822597360075872830778628897605867694981526933820554774968967629408571515056157726625387698665997069051249324248051176749274562707813745709468306187037698729607825080402515576572235 27640060165088002617514944780328848587549941645258734574565786324915525358036729513712513761000636455181860941468247254362868653627784306709864758703678666208494546030974691271481535044914318914327322560898071219780051618121701383770717704969066479955840845716733853687879056056166059994112360174971673345930 ,(usbvec 0 157 228 57 115 6 4 51 135 40 71 14 247 80 124 229 179 112 71 128 215 20 54 111 1 40 224 186 39 177 190 248 194)) . (#(166 22 16 10 165 219 74 212 238 42 226 222 187 15 155 13 171 162 220 174 179 81 89 82 101 209 23 164 199 68 144 177) 132122098251739532912123911797194514441141850204440966676447473633923258413616900050094246491320794962653183965203084558680100350822597360075872830778628897605867694981526933820554774968967629408571515056157726625387698665997069051249324248051176749274562707813745709468306187037698729607825080402515576572235)) ((:SHA256 2 155172898181473697471232257763715539915724801966915404479707795314057629378541917580651227423698188993727816152646631438561595825688188889951272158842675419950341258706556549803580104870537681476726513255747040765857479291291572334510643245094715007229621094194349783925984760375594985848253359305585439638443 132122098251739532912123911797194514441141850204440966676447473633923258413616900050094246491320794962653183965203084558680100350822597360075872830778628897605867694981526933820554774968967629408571515056157726625387698665997069051249324248051176749274562707813745709468306187037698729607825080402515576572235 27640060165088002617514944780328848587549941645258734574565786324915525358036729513712513761000636455181860941468247254362868653627784306709864758703678666208494546030974691271481535044914318914327322560898071219780051618121701383770717704969066479955840845716733853687879056056166059994112360174971673345930 "phYQCqXbStTuKuLeuw+bDaui3K6zUVlSZdEXpMdEkLE=") . (#(157 228 57 115 6 4 51 135 40 71 14 247 80 124 229 179 112 71 128 215 20 54 111 1 40 224 186 39 177 190 248 194) 132122098251739532912123911797194514441141850204440966676447473633923258413616900050094246491320794962653183965203084558680100350822597360075872830778628897605867694981526933820554774968967629408571515056157726625387698665997069051249324248051176749274562707813745709468306187037698729607825080402515576572235)) ((:SHA256 2 155172898181473697471232257763715539915724801966915404479707795314057629378541917580651227423698188993727816152646631438561595825688188889951272158842675419950341258706556549803580104870537681476726513255747040765857479291291572334510643245094715007229621094194349783925984760375594985848253359305585439638443 132122098251739532912123911797194514441141850204440966676447473633923258413616900050094246491320794962653183965203084558680100350822597360075872830778628897605867694981526933820554774968967629408571515056157726625387698665997069051249324248051176749274562707813745709468306187037698729607825080402515576572235 27640060165088002617514944780328848587549941645258734574565786324915525358036729513712513761000636455181860941468247254362868653627784306709864758703678666208494546030974691271481535044914318914327322560898071219780051618121701383770717704969066479955840845716733853687879056056166059994112360174971673345930 ,(usbvec 0 157 228 57 115 6 4 51 135 40 71 14 247 80 124 229 179 112 71 128 215 20 54 111 1 40 224 186 39 177 190 248 194)) . (#(166 22 16 10 165 219 74 212 238 42 226 222 187 15 155 13 171 162 220 174 179 81 89 82 101 209 23 164 199 68 144 177) 132122098251739532912123911797194514441141850204440966676447473633923258413616900050094246491320794962653183965203084558680100350822597360075872830778628897605867694981526933820554774968967629408571515056157726625387698665997069051249324248051176749274562707813745709468306187037698729607825080402515576572235)) ((:SHA256 2 155172898181473697471232257763715539915724801966915404479707795314057629378541917580651227423698188993727816152646631438561595825688188889951272158842675419950341258706556549803580104870537681476726513255747040765857479291291572334510643245094715007229621094194349783925984760375594985848253359305585439638443 132122098251739532912123911797194514441141850204440966676447473633923258413616900050094246491320794962653183965203084558680100350822597360075872830778628897605867694981526933820554774968967629408571515056157726625387698665997069051249324248051176749274562707813745709468306187037698729607825080402515576572235 27640060165088002617514944780328848587549941645258734574565786324915525358036729513712513761000636455181860941468247254362868653627784306709864758703678666208494546030974691271481535044914318914327322560898071219780051618121701383770717704969066479955840845716733853687879056056166059994112360174971673345930 "phYQCqXbStTuKuLeuw+bDaui3K6zUVlSZdEXpMdEkLE=") . (#(157 228 57 115 6 4 51 135 40 71 14 247 80 124 229 179 112 71 128 215 20 54 111 1 40 224 186 39 177 190 248 194) 132122098251739532912123911797194514441141850204440966676447473633923258413616900050094246491320794962653183965203084558680100350822597360075872830778628897605867694981526933820554774968967629408571515056157726625387698665997069051249324248051176749274562707813745709468306187037698729607825080402515576572235)) ((:SHA1 2 155172898181473697471232257763715539915724801966915404479707795314057629378541917580651227423698188993727816152646631438561595825688188889951272158842675419950341258706556549803580104870537681476726513255747040765857479291291572334510643245094715007229621094194349783925984760375594985848253359305585439638443 66198383832594703100575125237959846678825031836129056289255424326923555327640603117968536584300623010293907765680095549997062120023152831777930290108706829513580593064639790307481023585293142378201477905364990910469617606363416086057543953792284867202772475948138361133530079111560546453811016324396765137092 27640060165088002617514944780328848587549941645258734574565786324915525358036729513712513761000636455181860941468247254362868653627784306709864758703678666208494546030974691271481535044914318914327322560898071219780051618121701383770717704969066479955840845716733853687879056056166059994112360174971673345930 ,(usbvec 0 157 228 57 115 6 4 51 135 40 71 14 247 80 124 229 179 112 71 128 215 20 54 111 1 40 224 186 39 177 190 248 194)) . (#(157 228 57 115 6 4 51 135 40 71 14 247 7 225 244 1 243 221 90 241 158 150 200 81 32 75 191 65 183 238 228 251) 132122098251739532912123911797194514441141850204440966676447473633923258413616900050094246491320794962653183965203084558680100350822597360075872830778628897605867694981526933820554774968967629408571515056157726625387698665997069051249324248051176749274562707813745709468306187037698729607825080402515576572235)) ((:SHA1 2 155172898181473697471232257763715539915724801966915404479707795314057629378541917580651227423698188993727816152646631438561595825688188889951272158842675419950341258706556549803580104870537681476726513255747040765857479291291572334510643245094715007229621094194349783925984760375594985848253359305585439638443 78576542412739926692632897983000391712317067420809194746440968909291458685899282770791416474121992043548898084248122584500656752832695813880606797462774547216679482272794217752550335793537086873286231291019938707631333764184259167911473727575454039305548249707654855683531619689554777899192248130419096225780 27640060165088002617514944780328848587549941645258734574565786324915525358036729513712513761000636455181860941468247254362868653627784306709864758703678666208494546030974691271481535044914318914327322560898071219780051618121701383770717704969066479955840845716733853687879056056166059994112360174971673345930 ,(usbvec 0 157 228 57 115 6 4 51 135 40 71 14 247 80 124 229 179 112 71 128 215 20 54 111 1 40 224 186 39 177 190 248 194)) . (#(157 228 57 115 6 4 51 135 40 71 14 247 39 195 139 32 189 41 139 218 217 48 200 11 45 90 125 83 82 112 168 233) 132122098251739532912123911797194514441141850204440966676447473633923258413616900050094246491320794962653183965203084558680100350822597360075872830778628897605867694981526933820554774968967629408571515056157726625387698665997069051249324248051176749274562707813745709468306187037698729607825080402515576572235)) ((:SHA1 2 155172898181473697471232257763715539915724801966915404479707795314057629378541917580651227423698188993727816152646631438561595825688188889951272158842675419950341258706556549803580104870537681476726513255747040765857479291291572334510643245094715007229621094194349783925984760375594985848253359305585439638443 152981605545994195439415044829827941140143390341192406611838037084033188910428558807239399233323666730230112139827463941481733632716244674717174430479874061301334202996142558209358007275417964007034757643740361074026713443038445653538248192952332692921249040540154788651956934229319533752516415581551123453686 27640060165088002617514944780328848587549941645258734574565786324915525358036729513712513761000636455181860941468247254362868653627784306709864758703678666208494546030974691271481535044914318914327322560898071219780051618121701383770717704969066479955840845716733853687879056056166059994112360174971673345930 ,(usbvec 0 157 228 57 115 6 4 51 135 40 71 14 247 80 124 229 179 112 71 128 215 20 54 111 1 40 224 186 39 177 190 248 194)) . (#(157 228 57 115 6 4 51 135 40 71 14 247 104 178 137 83 104 241 181 89 120 185 12 243 25 183 109 248 47 146 69 76) 132122098251739532912123911797194514441141850204440966676447473633923258413616900050094246491320794962653183965203084558680100350822597360075872830778628897605867694981526933820554774968967629408571515056157726625387698665997069051249324248051176749274562707813745709468306187037698729607825080402515576572235)) ((:SHA1 2 155172898181473697471232257763715539915724801966915404479707795314057629378541917580651227423698188993727816152646631438561595825688188889951272158842675419950341258706556549803580104870537681476726513255747040765857479291291572334510643245094715007229621094194349783925984760375594985848253359305585439638443 91186128569718785703806561128154170190405314840802340643667892574170600847382016592655913521749605510666289125803383654751981518447787679870274466691405595892298482915703080226981191837837054917820289528641748366678467331674561644491794830892865950022065769430371787110100619165303175705698550082480183746410 27640060165088002617514944780328848587549941645258734574565786324915525358036729513712513761000636455181860941468247254362868653627784306709864758703678666208494546030974691271481535044914318914327322560898071219780051618121701383770717704969066479955840845716733853687879056056166059994112360174971673345930 ,(usbvec 80 124 229 179 112 71 128 215 20 54 111 1 40 224 186 39 177 190 248 194)) . (#(215 84 171 207 31 2 235 244 7 126 114 230 59 34 137 145 169 80 248 25) 132122098251739532912123911797194514441141850204440966676447473633923258413616900050094246491320794962653183965203084558680100350822597360075872830778628897605867694981526933820554774968967629408571515056157726625387698665997069051249324248051176749274562707813745709468306187037698729607825080402515576572235)) ((:SHA256 2 155172898181473697471232257763715539915724801966915404479707795314057629378541917580651227423698188993727816152646631438561595825688188889951272158842675419950341258706556549803580104870537681476726513255747040765857479291291572334510643245094715007229621094194349783925984760375594985848253359305585439638443 132122098251739532912123911797194514441141850204440966676447473633923258413616900050094246491320794962653183965203084558680100350822597360075872830778628897605867694981526933820554774968967629408571515056157726625387698665997069051249324248051176749274562707813745709468306187037698729607825080402515576572235 27640060165088002617514944780328848587549941645258734574565786324915525358036729513712513761000636455181860941468247254362868653627784306709864758703678666208494546030974691271481535044914318914327322560898071219780051618121701383770717704969066479955840845716733853687879056056166059994112360174971673345930 ,(usbvec 157 228 57 115 6 4 51 135 40 71 14 247 80 124 229 179 112 71 128 215 20 54 111 1 40 224 186 39 177 190 248 194)) . (#(166 22 16 10 165 219 74 212 238 42 226 222 187 15 155 13 171 162 220 174 179 81 89 82 101 209 23 164 199 68 144 177) 132122098251739532912123911797194514441141850204440966676447473633923258413616900050094246491320794962653183965203084558680100350822597360075872830778628897605867694981526933820554774968967629408571515056157726625387698665997069051249324248051176749274562707813745709468306187037698729607825080402515576572235)) ((:SHA256 2 155172898181473697471232257763715539915724801966915404479707795314057629378541917580651227423698188993727816152646631438561595825688188889951272158842675419950341258706556549803580104870537681476726513255747040765857479291291572334510643245094715007229621094194349783925984760375594985848253359305585439638443 132122098251739532912123911797194514441141850204440966676447473633923258413616900050094246491320794962653183965203084558680100350822597360075872830778628897605867694981526933820554774968967629408571515056157726625387698665997069051249324248051176749274562707813745709468306187037698729607825080402515576572235 27640060165088002617514944780328848587549941645258734574565786324915525358036729513712513761000636455181860941468247254362868653627784306709864758703678666208494546030974691271481535044914318914327322560898071219780051618121701383770717704969066479955840845716733853687879056056166059994112360174971673345930 "phYQCqXbStTuKuLeuw+bDaui3K6zUVlSZdEXpMdEkLE=") . (#(157 228 57 115 6 4 51 135 40 71 14 247 80 124 229 179 112 71 128 215 20 54 111 1 40 224 186 39 177 190 248 194) 132122098251739532912123911797194514441141850204440966676447473633923258413616900050094246491320794962653183965203084558680100350822597360075872830778628897605867694981526933820554774968967629408571515056157726625387698665997069051249324248051176749274562707813745709468306187037698729607825080402515576572235)) ((:SHA256 2 155172898181473697471232257763715539915724801966915404479707795314057629378541917580651227423698188993727816152646631438561595825688188889951272158842675419950341258706556549803580104870537681476726513255747040765857479291291572334510643245094715007229621094194349783925984760375594985848253359305585439638443 132122098251739532912123911797194514441141850204440966676447473633923258413616900050094246491320794962653183965203084558680100350822597360075872830778628897605867694981526933820554774968967629408571515056157726625387698665997069051249324248051176749274562707813745709468306187037698729607825080402515576572235 27640060165088002617514944780328848587549941645258734574565786324915525358036729513712513761000636455181860941468247254362868653627784306709864758703678666208494546030974691271481535044914318914327322560898071219780051618121701383770717704969066479955840845716733853687879056056166059994112360174971673345930 "phYQCqXbStTuKuLeuw+bDaui3K6zUVlSZdEXpMdEkLE=") . (#(157 228 57 115 6 4 51 135 40 71 14 247 80 124 229 179 112 71 128 215 20 54 111 1 40 224 186 39 177 190 248 194) 132122098251739532912123911797194514441141850204440966676447473633923258413616900050094246491320794962653183965203084558680100350822597360075872830778628897605867694981526933820554774968967629408571515056157726625387698665997069051249324248051176749274562707813745709468306187037698729607825080402515576572235)))) (is (equalp (multiple-value-list (apply #'dh-encrypt/decrypt-key (car test-case))) (cdr test-case))))) ;;; TODO: signature