Skip to content
This repository
tree: 6acab3ad3b
Fetching contributors…

Cannot retrieve contributors at this time

file 47 lines (39 sloc) 1.387 kb
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
--[[
Copyright 2012 The Luvit Authors. All Rights Reserved.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License 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
limitations under the License.
]]--
require('helper')
local fixture = require('./fixture-tls')
local tls = require('tls')

local options = {
  key = fixture.loadFile('agent.key'),
  cert = fixture.loadFile('alice.crt')
}

local verified = false

local server
server = tls.createServer(options, function(cleartext)
  cleartext:write('world')
  cleartext:destroy()
end)

server:listen(fixture.commonPort, function()
  local socket
  socket = tls.connect({host = '127.0.0.1', port = fixture.commonPort}, function()
    local peercert = socket:getPeerCertificate()
    assert(peercert.subject.subjectAltName == 'uniformResourceIdentifier:http://localhost:8000/alice.foaf#me')
    verified = true
    socket:write('Hello')
    socket:destroy()
    server:close()
  end)
end)

process:on('exit', function()
  assert(verified == true)
end)
Something went wrong with that request. Please try again.