|  |  |  |  | 
| Offset 9, 21 lines modified | Offset 9, 21 lines modified | 
|  |  | 
| 9 | EMI·Component·Version: | 9 | EMI·Component·Version: | 
|  |  | 
| 10 | 2.x | 10 | 2.x | 
|  |  | 
| 11 | Date: | 11 | Date: | 
|  |  | 
| 12 | July·7,·2020 | 12 | August·10,·2021 | 
|  |  | 
| 13 | 1/14 | 13 | 1/14 | 
|  |  | 
| 14 | \xcT·ITLE: | 14 | \xcT·ITLE: | 
| 15 | Common·Authentication·Library·–·Developer’s·Guide | 15 | Common·Authentication·Library·–·Developer’s·Guide | 
| 16 | Date:· July·7,·2020 | 16 | Date:·August·10,·2021 | 
|  |  | 
| 17 | This·work·is·co-funded·by·the·European·Commission·as·part·of·the·EMI·project·under·Grant·Agreement | 17 | This·work·is·co-funded·by·the·European·Commission·as·part·of·the·EMI·project·under·Grant·Agreement | 
| 18 | INFSO-RI-261611. | 18 | INFSO-RI-261611. | 
|  |  | 
| 19 | Copyright·c·EMI.·2010-2013. | 19 | Copyright·c·EMI.·2010-2013. | 
| 20 | Licensed·under·the·Apache·License,·Version·2.0·(the·"License");·you·may·not·use·this·file·except | 20 | Licensed·under·the·Apache·License,·Version·2.0·(the·"License");·you·may·not·use·this·file·except | 
| 21 | in·compliance·with·the·License.·You·may·obtain·a·copy·of·the·License·at | 21 | in·compliance·with·the·License.·You·may·obtain·a·copy·of·the·License·at | 
| Offset 32, 15 lines modified | Offset 32, 15 lines modified | 
| 32 | is·distributed·on·an·"AS·IS"·BASIS,·WITHOUT·WARRANTIES·OR·CONDITIONS·OF·ANY·KIND,·either·express·or·implied.·See·the·License·for·the·specific·language·governing·permissions·and | 32 | is·distributed·on·an·"AS·IS"·BASIS,·WITHOUT·WARRANTIES·OR·CONDITIONS·OF·ANY·KIND,·either·express·or·implied.·See·the·License·for·the·specific·language·governing·permissions·and | 
| 33 | limitations·under·the·License. | 33 | limitations·under·the·License. | 
|  |  | 
| 34 | 2/14 | 34 | 2/14 | 
|  |  | 
| 35 | \xcT·ITLE: | 35 | \xcT·ITLE: | 
| 36 | Common·Authentication·Library·–·Developer’s·Guide | 36 | Common·Authentication·Library·–·Developer’s·Guide | 
| 37 | Date:· July·7,·2020 | 37 | Date:·August·10,·2021 | 
|  |  | 
| 38 | C·ONTENTS | 38 | C·ONTENTS | 
| 39 | 1·INTRODUCTION | 39 | 1·INTRODUCTION | 
|  |  | 
| 40 | 4 | 40 | 4 | 
|  |  | 
| 41 | 1.1·LANGUAGE·BINDINGS·.·.·.·.·.·.·.·.·.·.·.·.·.·.·.·.·.·.·.·.·.·.·.·.·.·.·.·.·.·.·.·.·.·.·. | 41 | 1.1·LANGUAGE·BINDINGS·.·.·.·.·.·.·.·.·.·.·.·.·.·.·.·.·.·.·.·.·.·.·.·.·.·.·.·.·.·.·.·.·.·.·. | 
| Offset 107, 15 lines modified | Offset 107, 15 lines modified | 
|  |  | 
| 107 | 14 | 107 | 14 | 
|  |  | 
| 108 | 3/14 | 108 | 3/14 | 
|  |  | 
| 109 | \xcT·ITLE: | 109 | \xcT·ITLE: | 
| 110 | Common·Authentication·Library·–·Developer’s·Guide | 110 | Common·Authentication·Library·–·Developer’s·Guide | 
| 111 | Date:· July·7,·2020 | 111 | Date:·August·10,·2021 | 
|  |  | 
| 112 | 1 | 112 | 1 | 
|  |  | 
| 113 | I·NTRODUCTION | 113 | I·NTRODUCTION | 
|  |  | 
| 114 | This·document·serves·as·a·developer’s·guide·and·could·be·seen·as·an·API·reference·too,·even·though | 114 | This·document·serves·as·a·developer’s·guide·and·could·be·seen·as·an·API·reference·too,·even·though | 
| 115 | comments·in·the·header·files·may·give·the·reader·better·insights·into·that·matter. | 115 | comments·in·the·header·files·may·give·the·reader·better·insights·into·that·matter. | 
| Offset 172, 15 lines modified | Offset 172, 15 lines modified | 
| 172 | codes·from·errno.h·are·used·as·much·as·possible. | 172 | codes·from·errno.h·are·used·as·much·as·possible. | 
| 173 | Few·API·functions·return·char·*.·In·such·a·case·NULL·indicates·an·error,·non-null·value·means·success. | 173 | Few·API·functions·return·char·*.·In·such·a·case·NULL·indicates·an·error,·non-null·value·means·success. | 
|  |  | 
| 174 | 4/14 | 174 | 4/14 | 
|  |  | 
| 175 | \xcT·ITLE: | 175 | \xcT·ITLE: | 
| 176 | Common·Authentication·Library·–·Developer’s·Guide | 176 | Common·Authentication·Library·–·Developer’s·Guide | 
| 177 | Date:· July·7,·2020 | 177 | Date:·August·10,·2021 | 
|  |  | 
| 178 | 1.4 | 178 | 1.4 | 
|  |  | 
| 179 | C·ONTEXT·AND·PARAMETER·S·ETTINGS | 179 | C·ONTEXT·AND·PARAMETER·S·ETTINGS | 
|  |  | 
| 180 | All·the·API·functions·use·a·context·parameter·of·type·canl_ctx·to·maintain·state·information·like·error | 180 | All·the·API·functions·use·a·context·parameter·of·type·canl_ctx·to·maintain·state·information·like·error | 
| 181 | message·and·code.·Some·API·functions·also·use·an·io·context·of·type·canl_io_handler·which·keeps | 181 | message·and·code.·Some·API·functions·also·use·an·io·context·of·type·canl_io_handler·which·keeps | 
| Offset 237, 15 lines modified | Offset 237, 15 lines modified | 
| 237 | There·is·one·opaque·data·structure·representing·caNl·Certificate·API·context:·canl_cred.·It·must·only | 237 | There·is·one·opaque·data·structure·representing·caNl·Certificate·API·context:·canl_cred.·It·must·only | 
| 238 | be·initialized·before·function·calls·that·use·this·context·as·a·parameter. | 238 | be·initialized·before·function·calls·that·use·this·context·as·a·parameter. | 
|  |  | 
| 239 | 5/14 | 239 | 5/14 | 
|  |  | 
| 240 | \xcT·ITLE: | 240 | \xcT·ITLE: | 
| 241 | Common·Authentication·Library·–·Developer’s·Guide | 241 | Common·Authentication·Library·–·Developer’s·Guide | 
| 242 | Date:· July·7,·2020 | 242 | Date:·August·10,·2021 | 
|  |  | 
| 243 | #·include·<·c·a·n·l·.·h> | 243 | #·include·<·c·a·n·l·.·h> | 
| 244 | #·include·<·c·a·n·l·_·c·r·e·d·.·h> | 244 | #·include·<·c·a·n·l·_·c·r·e·d·.·h> | 
| 245 | canl_ctx·ctx·; | 245 | canl_ctx·ctx·; | 
| 246 | c·a·n·l·_·c·r·e·d·c_cred·; | 246 | c·a·n·l·_·c·r·e·d·c_cred·; | 
| 247 | ctx·=·canl_create_ctx·(·)·; | 247 | ctx·=·canl_create_ctx·(·)·; | 
| 248 | canl_cred_new·(·c·t·x·,·&c_cred·)·; | 248 | canl_cred_new·(·c·t·x·,·&c_cred·)·; | 
| Offset 268, 15 lines modified | Offset 268, 15 lines modified | 
| 268 | as·for·the·Certificate·API: | 268 | as·for·the·Certificate·API: | 
| 269 | c·a·n·l·_·c·r·e·d·_·f·r·e·e·(·c·t·x·,·c_cred·)·; | 269 | c·a·n·l·_·c·r·e·d·_·f·r·e·e·(·c·t·x·,·c_cred·)·; | 
|  |  | 
| 270 | 6/14 | 270 | 6/14 | 
|  |  | 
| 271 | \xcT·ITLE: | 271 | \xcT·ITLE: | 
| 272 | Common·Authentication·Library·–·Developer’s·Guide | 272 | Common·Authentication·Library·–·Developer’s·Guide | 
| 273 | Date:· July·7,·2020 | 273 | Date:·August·10,·2021 | 
|  |  | 
| 274 | 3 | 274 | 3 | 
|  |  | 
| 275 | C·LIENT-S·ERVER·AUTHENTICATED·C·ONNECTION | 275 | C·LIENT-S·ERVER·AUTHENTICATED·C·ONNECTION | 
|  |  | 
| 276 | For·client-server·authenticated·connection·we·just·use·caNl·Main·API·calls.·In·time·of·writing·this·paper | 276 | For·client-server·authenticated·connection·we·just·use·caNl·Main·API·calls.·In·time·of·writing·this·paper | 
| 277 | caNl·use·openssl·–·SSL/TLS·and·cryptography·toolkit.·However,·core·of·the·caNl·has·been·developed·to | 277 | caNl·use·openssl·–·SSL/TLS·and·cryptography·toolkit.·However,·core·of·the·caNl·has·been·developed·to | 
| Offset 321, 15 lines modified | Offset 321, 15 lines modified | 
| 321 | –·param·service·–·the·service·on·the·server·-·usually·NULL | 321 | –·param·service·–·the·service·on·the·server·-·usually·NULL | 
| 322 | –·param·port·–·the·port·on·which·the·server·is·listening | 322 | –·param·port·–·the·port·on·which·the·server·is·listening | 
|  |  | 
| 323 | 7/14 | 323 | 7/14 | 
|  |  | 
| 324 | \xcT·ITLE: | 324 | \xcT·ITLE: | 
| 325 | Common·Authentication·Library·–·Developer’s·Guide | 325 | Common·Authentication·Library·–·Developer’s·Guide | 
| 326 | Date:· July·7,·2020 | 326 | Date:·August·10,·2021 | 
|  |  | 
| 327 | –·param·auth_mechs·–·authentication·mechanism·to·use | 327 | –·param·auth_mechs·–·authentication·mechanism·to·use | 
| 328 | –·param·flags·–·for·future·usage | 328 | –·param·flags·–·for·future·usage | 
| 329 | –·param·peer·–·if·not·NULL·the·canl_principal·will·be·filled·with·peer’s·principal·info.·Approppriate | 329 | –·param·peer·–·if·not·NULL·the·canl_principal·will·be·filled·with·peer’s·principal·info.·Approppriate | 
| 330 | free·funcion·should·be·called·if·canl_princ·is·no·longer·to·be·used | 330 | free·funcion·should·be·called·if·canl_princ·is·no·longer·to·be·used | 
| 331 | –·param·timeout·–·the·timeout·after·which·to·drop·the·connect·attempt | 331 | –·param·timeout·–·the·timeout·after·which·to·drop·the·connect·attempt | 
| 332 | –·return·–·canl·error·code | 332 | –·return·–·canl·error·code | 
| Offset 364, 15 lines modified | Offset 364, 15 lines modified | 
| 364 | –·param·cp·–·canl·peer’s·principal·structure | 364 | –·param·cp·–·canl·peer’s·principal·structure | 
| 365 | –·return·–·void | 365 | –·return·–·void | 
|  |  | 
| 366 | 8/14 | 366 | 8/14 | 
|  |  | 
| 367 | \xcT·ITLE: | 367 | \xcT·ITLE: | 
| 368 | Common·Authentication·Library·–·Developer’s·Guide | 368 | Common·Authentication·Library·–·Developer’s·Guide | 
| 369 | Date:· July·7,·2020 | 369 | Date:·August·10,·2021 | 
|  |  | 
| Max diff block lines reached; 2714/6389 bytes (42.48%) of diff not shown. |