Forum Navigation
Question about SSLSocket
Posted: 11/04/09 15:22:34Hello. I'm writting framework to creating websites. Now, i encountered a strange situation.
module main; private import tango.net.device.SSLSocket; private import tango.net.device.Berkeley; private import tango.net.util.PKI; import tango.io.Stdout; import tango.text.convert.Layout; void main() { SSLServerSocket server; SSLCtx ctx = new SSLCtx(); Layout!(char) sprint = new Layout!(char); char[] key_data = `-----BEGIN RSA PRIVATE KEY----- MIICWwIBAAKBgQDFNTsKFZrxvFGPZsrVRlndIYeIsWb7EAvrQxOOMySd9cmSUxyr o6f4FB+VpGbkrf8xg9zhs5YjJr8Pbj0dyDZks2H2A8YCGSN0PQ/ZDG9+qVDrLvvu WJDkBEdku6ycvoLh+S3XUGFmL2eSMj0m9YydugHu5u7DyMSfV28U/hLfAwIDAQAB AoGAcHcl/19I6PmLzetCW5TuZNTdVZBOeXmyQm4TdfImvMrSNNefLyd7AFiBlraW U24DbjqUOkdPpSZQqb0lr5lhotT27M6H0SQNEoziM6kQtFM584D6wGYtISlszPQk zs9fbh7IbuuOE2f0Q9hg+IAnnjeajoB4voW7fXYgnHJR67ECQQD1xGnawhJAQB5g uFtH8oO5/gKF+MdBJs64H89Vxp360+Dg0zzTkRqiXSjj79DHjJymUYrAv9z3LPWP wBxUofeJAkEAzWs7jx3YDY8oZN/f8IcpqaDZ4uVLC4NgRm+AL36Wr13JUXYULsN+ YYArV0T0JFdmuNF6/DUyRP/iQ3sW3J4zKwJAcQ2H8BRkFuAn2TAU9VSumakp+fzF k8fJQdOIKZny5AYBJQqmqV/PU67s92VCsfiRusQ5wo6/k4g/8X9ayOe0mQJAaaxK XVtq8767dvk8SI4fvqWCsRhnvKp+8n0Volkqx1gl4oQt6cij0SCQKzrLpY5Yx6br 76amD5zbFv/RSPkRNQJAXnEu3OyK2HEznMDN37JC1MAdVePsqap+rGKiB3WUKDmI ZUqM0Iy0kI48+ciQ8tkU2SXBPR4QDV8YTS2F+9RvCA== -----END RSA PRIVATE KEY----- `; char[] cer_data = `-----BEGIN CERTIFICATE----- MIICTTCCAbYCCQC+cVlR7GlryDANBgkqhkiG9w0BAQUFADBrMQswCQYDVQQGEwJS VTEPMA0GA1UECBMGTW9zY293MQ8wDQYDVQQHEwZNb3Njb3cxDzANBgNVBAoTBkRp YURlbTEUMBIGA1UECxMLRGV2ZWxvcG1lbnQxEzARBgNVBAMTCmRpYS1kZW0ucnUw HhcNMDkxMDIwMTExNDUxWhcNMTkxMDE4MTExNDUxWjBrMQswCQYDVQQGEwJSVTEP MA0GA1UECBMGTW9zY293MQ8wDQYDVQQHEwZNb3Njb3cxDzANBgNVBAoTBkRpYURl bTEUMBIGA1UECxMLRGV2ZWxvcG1lbnQxEzARBgNVBAMTCmRpYS1kZW0ucnUwgZ8w DQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMU1OwoVmvG8UY9mytVGWd0hh4ixZvsQ C+tDE44zJJ31yZJTHKujp/gUH5WkZuSt/zGD3OGzliMmvw9uPR3INmSzYfYDxgIZ I3Q9D9kMb36pUOsu++5YkOQER2S7rJy+guH5LddQYWYvZ5IyPSb1jJ26Ae7m7sPI xJ9XbxT+Et8DAgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAkF1Df1CZFyLbEaQgIExd tCj8OIlFXXomHqruSGgIFBH2xshaiNAksjkbtDdlhtVYrzl0pJhowasdMlRCEOrR 0qSv1nhViVIyU7DbOOVdQKDeGCo2hvsAJXmPMbVqhtHaEuqb+LakWEJ8vdoYtkbV 50tB5DNk48lbNHI1ulT5rR4= -----END CERTIFICATE----- `; char[] o_data = "Hello, World."; char[] i_data = new char[512]; PrivateKey key = new PrivateKey(key_data, ""); Certificate certificate = new Certificate(cer_data); ctx.certificate = certificate; ctx.privateKey = key; server = new SSLServerSocket(443, ctx); Stdout("Reading...\n"); SSLSocket request = server.accept; size_t size = request.read(i_data); Stdout.formatln(`{}`, size); if((size) && (size != size_t.max)) i_data = i_data[0 .. size]; else i_data = ""; Stdout.formatln(`{}`, i_data.length); Stdout(i_data).flush; Stdout("write 0.\n"); request.write("HTTP/1.1 200 OK\n"); Stdout("write 1.\n"); request.write("Content-type: text/html\n"); Stdout("write 2.\n"); request.write(sprint("Content-length: {}\n\n", o_data.length)); Stdout("write 3.\n"); request.write(o_data); Stdout("End work.\n"); }When i open page in Firefox 3.5, i has read message from socket, write output, and has "segmentation fault", in browser i can see "Hello, World."
When i open page in Opera 10, or Internet Explorer 8 i has "segmentation fault" when i trying to read message from socket. It is my error, or bug?
Sorry for my bad English...