{"id":2711,"date":"2017-02-05T01:04:09","date_gmt":"2017-02-04T16:04:09","guid":{"rendered":"http:\/\/tech.akat.info\/?p=2711"},"modified":"2017-02-05T01:04:09","modified_gmt":"2017-02-04T16:04:09","slug":"rfc5077%e3%82%92%e3%82%a4%e3%83%b3%e3%82%b9%e3%83%88%e3%83%bc%e3%83%ab%e3%81%a7%e3%81%8d%e3%81%aa%e3%81%8b%e3%81%a3%e3%81%9f%e8%a9%b1","status":"publish","type":"post","link":"https:\/\/tech.akat.info\/?p=2711","title":{"rendered":"rfc5077\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3067\u304d\u306a\u304b\u3063\u305f\u8a71"},"content":{"rendered":"<p><a href=\"https:\/\/intra-security.connpass.com\/event\/47638\/\">\u7b2c2\u56de\u793e\u5185\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u5171\u6709\u52c9\u5f37\u4f1a<\/a>\u306b\u53c2\u52a0\u3057\u305f\u969b\u306b\u521d\u3081\u3066\u77e5\u3063\u305f\u5358\u8a9e<\/p>\n<p>TLS\u306e\u30bb\u30c3\u30b7\u30e7\u30f3\u60c5\u5831\u3092\u78ba\u8a8d\u3067\u304d\u308b\u30c4\u30fc\u30eb\u3089\u3057\u3044<br \/>\n\u7d50\u8ad6\u3068\u3057\u3066debian8\u3067\u4f7f\u3063\u3066\u307f\u3088\u3046\u3068\u3057\u305f\u304c\u3001\u3067\u304d\u306a\u304b\u3063\u305f\u8a71<\/p>\n<p>\u4ee5\u4e0b\u3092\u53c2\u8003\u306b\u5b9f\u65bd\u3057\u3066\u307f\u305f<br \/>\n<a href=\"http:\/\/oranie.hatenablog.com\/entry\/20140731\/1406798043\">\u30b5\u30fc\u30d0\u5074\u306eSSL Session Cache\u72b6\u6cc1\u3092\u78ba\u8a8d\u3059\u308b\u300crfc5077\u300d\u3068\u3044\u3046\u30c4\u30fc\u30eb\u304c\u4fbf\u5229<\/a><br \/>\n<a href=\"http:\/\/qiita.com\/harukasan\/items\/28c44183fd44b8638f59\">rfc5077-client\u3092Debian\u4e0a\u3067\u30d3\u30eb\u30c9\u3057\u305f\u3044<\/a><br \/>\n\u3092\u53c2\u8003\u306b\u5b9f\u65bd\u3057\u305f<\/p>\n<pre class=\"brush: plain; title: debian8; notranslate\" title=\"debian8\">\r\n# git clone https:\/\/github.com\/vincentbernat\/rfc5077.git\r\n# aptitude install libnspr4-dev libev-dev libssl-dev libnss3-dev make gcc\r\n...\r\n# git submodule init\r\nSubmodule 'http-parser' (https:\/\/github.com\/joyent\/http-parser) registered for path 'http-parser'\r\nSubmodule 'httpagentparser' (git:\/\/github.com\/shon\/httpagentparser.git) registered for path 'httpagentparser'\r\n# git submodule update\r\nCloning into 'http-parser'...\r\nremote: Counting objects: 1460, done.\r\nremote: Total 1460 (delta 0), reused 0 (delta 0), pack-reused 1460\r\nReceiving objects: 100% (1460\/1460), 659.95 KiB | 341.00 KiB\/s, done.\r\nResolving deltas: 100% (897\/897), done.\r\nChecking connectivity... done.\r\nSubmodule path 'http-parser': checked out '1ca7de52587f19cb87a28b8ace2e0f2e6cfcde7f'\r\nCloning into 'httpagentparser'...\r\nremote: Counting objects: 591, done.\r\nremote: Total 591 (delta 0), reused 0 (delta 0), pack-reused 591\r\nReceiving objects: 100% (591\/591), 630.40 KiB | 160.00 KiB\/s, done.\r\nResolving deltas: 100% (265\/265), done.\r\nChecking connectivity... done.\r\nSubmodule path 'httpagentparser': checked out '920af88989f6dd8eb6f628505d039df8b65c880e'\r\n# make\r\ncc -g -Werror -Wall -ansi -std=c99 -D_DEFAULT_SOURCE -D_GNU_SOURCE   -c -o rfc5077-client.o rfc5077-client.c\r\nrfc5077-client.c: In function \u2018resultinfo_display\u2019:\r\nrfc5077-client.c:135:6: error: implicit declaration of function \u2018SSL_SESSION_get0_cipher\u2019 &#x5B;-Werror=implicit-function-declaration]\r\n      SSL_CIPHER_get_name(SSL_SESSION_get0_cipher(x)),\r\n      ^\r\nrfc5077-client.c:135:26: error: passing argument 1 of \u2018SSL_CIPHER_get_name\u2019 makes pointer from integer without a cast &#x5B;-Werror]\r\n      SSL_CIPHER_get_name(SSL_SESSION_get0_cipher(x)),\r\n                          ^\r\nIn file included from rfc5077-client.c:23:0:\r\n\/usr\/include\/openssl\/ssl.h:1834:13: note: expected \u2018const struct SSL_CIPHER *\u2019 but argument is of type \u2018int\u2019\r\n const char *SSL_CIPHER_get_name(const SSL_CIPHER *c);\r\n             ^\r\nrfc5077-client.c:154:5: error: implicit declaration of function \u2018SSL_SESSION_get_master_key\u2019 &#x5B;-Werror=implicit-function-declaration]\r\n     size_t master_key_len = SSL_SESSION_get_master_key(x, NULL, 0);\r\n     ^\r\nrfc5077-client.c:170:6: error: implicit declaration of function \u2018SSL_SESSION_has_ticket\u2019 &#x5B;-Werror=implicit-function-declaration]\r\n      SSL_SESSION_has_ticket(x)?&quot;\u2714&quot;:&quot;\u2718&quot;,\r\n      ^\r\nrfc5077-client.c: In function \u2018resultinfo_write\u2019:\r\nrfc5077-client.c:207:33: error: passing argument 1 of \u2018SSL_CIPHER_get_name\u2019 makes pointer from integer without a cast &#x5B;-Werror]\r\n             SSL_CIPHER_get_name(SSL_SESSION_get0_cipher(x)),\r\n                                 ^\r\nIn file included from rfc5077-client.c:23:0:\r\n\/usr\/include\/openssl\/ssl.h:1834:13: note: expected \u2018const struct SSL_CIPHER *\u2019 but argument is of type \u2018int\u2019\r\n const char *SSL_CIPHER_get_name(const SSL_CIPHER *c);\r\n             ^\r\nrfc5077-client.c: In function \u2018main\u2019:\r\nrfc5077-client.c:381:3: error: implicit declaration of function \u2018TLS_client_method\u2019 &#x5B;-Werror=implicit-function-declaration]\r\n   if ((ctx = SSL_CTX_new(TLS_client_method())) == NULL)\r\n   ^\r\nrfc5077-client.c:381:26: error: passing argument 1 of \u2018SSL_CTX_new\u2019 makes pointer from integer without a cast &#x5B;-Werror]\r\n   if ((ctx = SSL_CTX_new(TLS_client_method())) == NULL)\r\n                          ^\r\nIn file included from rfc5077-client.c:23:0:\r\n\/usr\/include\/openssl\/ssl.h:1820:10: note: expected \u2018const struct SSL_METHOD *\u2019 but argument is of type \u2018int\u2019\r\n SSL_CTX *SSL_CTX_new(const SSL_METHOD *meth);\r\n          ^\r\ncc1: all warnings being treated as errors\r\n&lt;builtin&gt;: recipe for target 'rfc5077-client.o' failed\r\nmake: *** &#x5B;rfc5077-client.o] Error 1\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\u7b2c2\u56de\u793e\u5185\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u5171\u6709\u52c9\u5f37\u4f1a\u306b\u53c2\u52a0\u3057\u305f\u969b\u306b\u521d\u3081\u3066\u77e5\u3063\u305f\u5358\u8a9e TLS\u306e\u30bb\u30c3\u30b7\u30e7\u30f3\u60c5\u5831\u3092\u78ba\u8a8d\u3067\u304d\u308b\u30c4\u30fc\u30eb\u3089\u3057\u3044 \u7d50\u8ad6\u3068\u3057\u3066debian8\u3067\u4f7f\u3063\u3066\u307f\u3088\u3046\u3068\u3057\u305f\u304c\u3001\u3067\u304d\u306a\u304b\u3063\u305f\u8a71 \u4ee5\u4e0b\u3092\u53c2\u8003\u306b\u5b9f\u65bd\u3057\u3066\u307f\u305f \u30b5\u30fc\u30d0\u5074\u306eSSL  [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[1],"tags":[],"_links":{"self":[{"href":"https:\/\/tech.akat.info\/index.php?rest_route=\/wp\/v2\/posts\/2711"}],"collection":[{"href":"https:\/\/tech.akat.info\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/tech.akat.info\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/tech.akat.info\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/tech.akat.info\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2711"}],"version-history":[{"count":1,"href":"https:\/\/tech.akat.info\/index.php?rest_route=\/wp\/v2\/posts\/2711\/revisions"}],"predecessor-version":[{"id":2712,"href":"https:\/\/tech.akat.info\/index.php?rest_route=\/wp\/v2\/posts\/2711\/revisions\/2712"}],"wp:attachment":[{"href":"https:\/\/tech.akat.info\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2711"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/tech.akat.info\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2711"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/tech.akat.info\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2711"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}