Last active
May 19, 2016 12:10
-
-
Save binarin/35c34c2df7556bf04c8a878682ef3d67 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| -module(test). | |
| -define(SERVER_CERT, <<"-----BEGIN CERTIFICATE----- | |
| MIIC4TCCAcmgAwIBAgIBATANBgkqhkiG9w0BAQsFADATMREwDwYDVQQDDAhNeVRl | |
| c3RDQTAeFw0xNjA1MTkxMTQ0MzVaFw0xNzA1MTkxMTQ0MzVaMCQxETAPBgNVBAMM | |
| CGlzaGFtYWVsMQ8wDQYDVQQKDAZzZXJ2ZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IB | |
| DwAwggEKAoIBAQCzPcdvoQh+yLeRt8w/FrZY3EOxQL3lMNgcWzpuq3AsYdK1wZmH | |
| MND+ZGMs/QqxYnJBxbRcVJiCD2IeVKD3UWF38UljQFJfb6VYWS/bTWltsaRcuiRI | |
| NzC2FZwy3buG0aJXnJA/qEwhem1xfGMRYuhm6+QIR9jAwH1AQRw6go0Z1nvzW1EK | |
| cYuDUsYE+JIUoo7GafBurTiau6RD4zVlU9GI8+P78yf9k3EgilFpqsbPXvIqJIyE | |
| l1aJy4XLC+5ZxF3wNt9t+N7380rj75pTY+T7mNznufEEyobXdVVw7aa1W8X0+h1F | |
| EI2g9X+2nyngRlUAeZ9CHLJpXzhJt28FqfnxAgMBAAGjLzAtMAkGA1UdEwQCMAAw | |
| CwYDVR0PBAQDAgUgMBMGA1UdJQQMMAoGCCsGAQUFBwMBMA0GCSqGSIb3DQEBCwUA | |
| A4IBAQB3ZcpozUv1emwwRIjylf9wQRvKgOpuedy+hCqekk6tOeq83NqrkBFBObI6 | |
| yE0R3fVKy8PCyV5BW/p88vqHHssWCIpgQvTu0B22uur6Ak8br6+uVcC6r5+Nepis | |
| /VOsfkL1Zuc5LECfG/AQf7r47v2HEzCfZZ6Ub4iWshVieS9gPAEtSuId63jauIX7 | |
| 8UR3dNjIrSF3iQFjsRJX247oorOKCwCXZHhSuJ8c+zTM4JWtXrieXFLwposDuXuT | |
| f3VZeF/CcxV1rSbCCTuKN4ElG7yaRoFPlAB4ZWoZquVnwIcCuQRegCONeYZAUYnl | |
| fEIeaxn8I+N0giJTcIhrtNSseD/V | |
| -----END CERTIFICATE----- | |
| ">>). | |
| -define(SERVER_KEY, <<"-----BEGIN RSA PRIVATE KEY----- | |
| MIIEpAIBAAKCAQEAsz3Hb6EIfsi3kbfMPxa2WNxDsUC95TDYHFs6bqtwLGHStcGZ | |
| hzDQ/mRjLP0KsWJyQcW0XFSYgg9iHlSg91Fhd/FJY0BSX2+lWFkv201pbbGkXLok | |
| SDcwthWcMt27htGiV5yQP6hMIXptcXxjEWLoZuvkCEfYwMB9QEEcOoKNGdZ781tR | |
| CnGLg1LGBPiSFKKOxmnwbq04mrukQ+M1ZVPRiPPj+/Mn/ZNxIIpRaarGz17yKiSM | |
| hJdWicuFywvuWcRd8Dbfbfje9/NK4++aU2Pk+5jc57nxBMqG13VVcO2mtVvF9Pod | |
| RRCNoPV/tp8p4EZVAHmfQhyyaV84SbdvBan58QIDAQABAoIBAEioNF31wwHRz0fM | |
| X4j7ZfNjZjVF7zQmtpPYDzmpWRFEnit7TQbWLQHSI7mq4VjCdVpgEBqVWDTwk2+E | |
| ErPuUzpRntQS0NFK6pWDobieCqyio+PKuMZlSOOmouijpU6jT9F/76E+UY4ImLC2 | |
| IVp844RE/uy0YxLPdHZFbnHxVc0wzKNYPFI2BTQvDmDY57R6qPblBxrBnPBxsYC0 | |
| A7o2goT++aSSyq0LnPyZ5g0q9dHImgE1bUQlYktJAqXDvZQMS7YVwmx1QyNRaXZu | |
| uA+CdRF/9ZZPIwKI4LwlaTp5Jp/6ri4IVq2S7RU5PEtxQ6X6wvwE+7NFgZepux5l | |
| p/PQ7aECgYEA4mXYj04JmwEAGaHSgKr526tQLJ4d66CDfbpmvIBy/NTMpWU/hhlF | |
| 5KSCBC4Uu2lX7hegSJ30JK/ZQvH54UY6rmUo+x7fSHMIB/xDNSkx76GImP+XUx0i | |
| juIIIxaVDirdQQvsb8imVj9PCjVrRP5uC1YbYHEAyI3ufZW4sddRRCUCgYEAyq15 | |
| 0UP3n56OFfvQqkVYePbZQk3JhtB828FEJzHVAnZF+na+RzcOrkR/xGe68Tz93QcO | |
| CqVL7Ge5MfUgvkWl8R/sEDDiH/eHXPaWulQ0a3SmaKhHEXK/qW5/IFpwVE33FodH | |
| Gog2saV3zeb8g0/A4Z+nHk0eGi6W6526QnAdrt0CgYEAvFmU2GxJC37CkZCSa19T | |
| LZERy3zkUZKhsmjwbeTDRVrYwsVAGxVNk5HVZRrdPqm+cKORQri+VANEUjCz/doK | |
| meopNPqTMlgZF2Okmkaid8VAumDxiUEU7iBYOrDf4wCAQExmMP2SfPCAlnKowqaV | |
| 8LJ7Zjm9OBz0i+CS3snOn00CgYBGj155nE/5IhoVTTW4EaxbcJTyoGIorSzK1N4F | |
| RzQBR2vVZsGXyXMy+GYC2poaokE/UdVxn1pvUy0GV3CuzVCYQaTNfjc7KdHWa4LO | |
| G8KkJlhI10zmpixTsERR3yp8Lyh2j2IRuppP/mtXI7OFg56C7jIgOnjgZJfmL2NI | |
| /f9XgQKBgQCwx1qrprfpy2I4kpFnni2qQeOSPVLjmpz8umrpZftCK1GyQxmYpFoM | |
| 4NbDMZTTZZkFOK7NYruTdf0CIsc/Z5GZ/Z3q5TjcHsdNDyMEsyMlavFH6qZre0SA | |
| IE2UDmDI64q4moGTb3cyYqwfHSGgMQKzLvJ0IXbAdnN5JpS8qdQydg== | |
| -----END RSA PRIVATE KEY----- | |
| ">>). | |
| -define(CA_CERT, <<"-----BEGIN CERTIFICATE----- | |
| MIICxjCCAa6gAwIBAgIJAPcihqfAYpeVMA0GCSqGSIb3DQEBCwUAMBMxETAPBgNV | |
| BAMMCE15VGVzdENBMB4XDTE2MDUxOTExNDQzNVoXDTE3MDUxOTExNDQzNVowEzER | |
| MA8GA1UEAwwITXlUZXN0Q0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB | |
| AQCwSwm9RLEv1YpgDGhLaeJxM0ZuiL7hrm7eDH8VYJ6k0G3uKCSGYHGvOUwYAkYg | |
| Tspjc7XakVB9LB3liedn7u+JYuumHPrrsj1l+rXfka6U60wfu40v/2qY/IMS3moS | |
| v7/I8r/3aBKgiJuNMxgWQL1ImFdMK0Y6+Ax02BWDFL82QkpXUAoQQwigPyZZ3Bcm | |
| mHVnrtNWsXtL8W/e+EKVftbNvpDb+dIaO1N+9X/vvRI2ihIDgiZTkwVVSw4ql7lG | |
| c5tBfvvWPaWY2b1Osy2kN1tYVg1/8d9bSOon+zWIndzcqUXIfr15u98q7Mzj9m4l | |
| 2Bm9ZBwiOiUrEG3ahonq14S1AgMBAAGjHTAbMAwGA1UdEwQFMAMBAf8wCwYDVR0P | |
| BAQDAgEGMA0GCSqGSIb3DQEBCwUAA4IBAQCrIfnLO5Px7Pzm6sY3L/rquR5H7o7w | |
| +ExV8et13Tr8cBVJXSFxf+W8OrIFX15DR0SEAjI9qsVn7v6Iz1UUpyascpZJhURu | |
| 6GDK+/JLtoVgHC+eU2rFiDPDtIHLxXK6BHbwMowOnPyYqr+bO3cv629YKtN3CkfP | |
| DRsACjLOgttkA1rp0WqWa7QRoS4iSuSYef9Muy0o39iEWBcAGeqagQYIUk3ZcnTk | |
| dw6uUBb2KAFgBpCImtjjvLeNvnwbIbhjaZGuH1S3i0L5RjvkujH59lfV5Tb9+lJC | |
| dmNcklpXaq5oZlAXUgVvEiDQzEFHl0j+eg1wG7rrvKaNfgDwWtWUtTv3 | |
| -----END CERTIFICATE----- | |
| ">>). | |
| client() -> | |
| [{_, Cert, _}]= public_key:pem_decode(?SERVER_CERT), | |
| [{KeyType, Key, _}] = public_key:pem_decode(?SERVER_KEY), | |
| [{_, CACert, _}]= public_key:pem_decode(?CA_CERT), | |
| {ok, SSLSock} = ssl:connect({127, 0, 0, 1}, 12345, [{cert, Cert}, | |
| {key, {KeyType, Key}}, | |
| {cacerts, [CACert]}]), | |
| ok. | |
| main([]) -> | |
| application:ensure_all_started(ssl), | |
| application:ensure_all_started(sasl), | |
| [{_, Cert, _}]= public_key:pem_decode(?SERVER_CERT), | |
| [{KeyType, Key, _}] = public_key:pem_decode(?SERVER_KEY), | |
| [{_, CACert, _}]= public_key:pem_decode(?CA_CERT), | |
| {ok, LSock} = ssl:listen(12345, [{cert, Cert}, | |
| {key, {KeyType, Key}}, | |
| {verify, verify_peer}, | |
| {cacerts, [CACert]}]), | |
| spawn_link(fun () -> | |
| try | |
| client() | |
| catch | |
| C:E -> | |
| io:format("~p:~p ~p", [C, E, erlang:get_stacktrace()]), | |
| exit(E) | |
| end | |
| end), | |
| {ok, NewSock} = ssl:transport_accept(LSock), | |
| ok = ssl:ssl_accept(NewSock), | |
| ok. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment