469 lua_pop(L, 1); /* ret.subject */ |
469 lua_pop(L, 1); /* ret.subject */ |
470 |
470 |
471 lua_newtable(L); /* {} */ |
471 lua_newtable(L); /* {} */ |
472 lua_pushvalue(L, -1); |
472 lua_pushvalue(L, -1); |
473 lua_setfield(L, -3, "extensions"); /* ret.extensions = {} */ |
473 lua_setfield(L, -3, "extensions"); /* ret.extensions = {} */ |
474 |
474 |
475 i = -1; |
475 i = -1; |
476 while((i = X509_get_ext_by_NID(peer, NID_subject_alt_name, i)) != -1) |
476 while((i = X509_get_ext_by_NID(peer, NID_subject_alt_name, i)) != -1) |
477 { |
477 { |
478 X509_EXTENSION *extension; |
478 X509_EXTENSION *extension; |
479 STACK_OF(GENERAL_NAME) *values; |
479 STACK_OF(GENERAL_NAME) *values; |
480 int n_general_names; |
480 int n_general_names; |
481 |
481 |
482 extension = X509_get_ext(peer, i); |
482 extension = X509_get_ext(peer, i); |
483 if(extension == NULL) |
483 if(extension == NULL) |
484 break; |
484 break; |
485 |
485 |
486 values = X509V3_EXT_d2i(extension); |
486 values = X509V3_EXT_d2i(extension); |
487 if(values == NULL) |
487 if(values == NULL) |
488 break; |
488 break; |
489 |
489 |
490 /* Push ret.extensions[oid] */ |
490 /* Push ret.extensions[oid] */ |