|
|
|
@ -76,6 +76,146 @@ var fakeFailingGoogleCredentials = { |
|
|
|
|
} |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
var key_data, pem_data, ca_data; |
|
|
|
|
|
|
|
|
|
before(function() { |
|
|
|
|
var key_path = path.join(__dirname, './data/server1.key'); |
|
|
|
|
var pem_path = path.join(__dirname, './data/server1.pem'); |
|
|
|
|
var ca_path = path.join(__dirname, '../test/data/ca.pem'); |
|
|
|
|
key_data = fs.readFileSync(key_path); |
|
|
|
|
pem_data = fs.readFileSync(pem_path); |
|
|
|
|
ca_data = fs.readFileSync(ca_path); |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
describe('channel credentials', function() { |
|
|
|
|
describe('#createSsl', function() { |
|
|
|
|
it('works with no arguments', function() { |
|
|
|
|
var creds; |
|
|
|
|
assert.doesNotThrow(function() { |
|
|
|
|
creds = grpc.credentials.createSsl(); |
|
|
|
|
}); |
|
|
|
|
assert.notEqual(creds, null); |
|
|
|
|
}); |
|
|
|
|
it('works with just one Buffer argument', function() { |
|
|
|
|
var creds; |
|
|
|
|
assert.doesNotThrow(function() { |
|
|
|
|
creds = grpc.credentials.createSsl(ca_data); |
|
|
|
|
}); |
|
|
|
|
assert.notEqual(creds, null); |
|
|
|
|
}); |
|
|
|
|
it('works with 3 Buffer arguments', function() { |
|
|
|
|
var creds; |
|
|
|
|
assert.doesNotThrow(function() { |
|
|
|
|
creds = grpc.credentials.createSsl(ca_data, key_data, pem_data); |
|
|
|
|
}); |
|
|
|
|
assert.notEqual(creds, null); |
|
|
|
|
}); |
|
|
|
|
it('works if the first argument is null', function() { |
|
|
|
|
var creds; |
|
|
|
|
assert.doesNotThrow(function() { |
|
|
|
|
creds = grpc.credentials.createSsl(null, key_data, pem_data); |
|
|
|
|
}); |
|
|
|
|
assert.notEqual(creds, null); |
|
|
|
|
}); |
|
|
|
|
it('fails if the first argument is a non-Buffer value', function() { |
|
|
|
|
assert.throws(function() { |
|
|
|
|
grpc.credentials.createSsl('test'); |
|
|
|
|
}, TypeError); |
|
|
|
|
}); |
|
|
|
|
it('fails if the second argument is a non-Buffer value', function() { |
|
|
|
|
assert.throws(function() { |
|
|
|
|
grpc.credentials.createSsl(null, 'test', pem_data); |
|
|
|
|
}, TypeError); |
|
|
|
|
}); |
|
|
|
|
it('fails if the third argument is a non-Buffer value', function() { |
|
|
|
|
assert.throws(function() { |
|
|
|
|
grpc.credentials.createSsl(null, key_data, 'test'); |
|
|
|
|
}, TypeError); |
|
|
|
|
}); |
|
|
|
|
it('fails if only 1 of the last 2 arguments is provided', function() { |
|
|
|
|
assert.throws(function() { |
|
|
|
|
grpc.credentials.createSsl(null, key_data); |
|
|
|
|
}); |
|
|
|
|
assert.throws(function() { |
|
|
|
|
grpc.credentials.createSsl(null, null, pem_data); |
|
|
|
|
}); |
|
|
|
|
}); |
|
|
|
|
}); |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
describe('server credentials', function() { |
|
|
|
|
describe('#createSsl', function() { |
|
|
|
|
it('accepts a buffer and array as the first 2 arguments', function() { |
|
|
|
|
var creds; |
|
|
|
|
assert.doesNotThrow(function() { |
|
|
|
|
creds = grpc.ServerCredentials.createSsl(ca_data, []); |
|
|
|
|
}); |
|
|
|
|
assert.notEqual(creds, null); |
|
|
|
|
}); |
|
|
|
|
it('accepts a boolean as the third argument', function() { |
|
|
|
|
var creds; |
|
|
|
|
assert.doesNotThrow(function() { |
|
|
|
|
creds = grpc.ServerCredentials.createSsl(ca_data, [], true); |
|
|
|
|
}); |
|
|
|
|
assert.notEqual(creds, null); |
|
|
|
|
}); |
|
|
|
|
it('accepts an object with two buffers in the second argument', function() { |
|
|
|
|
var creds; |
|
|
|
|
assert.doesNotThrow(function() { |
|
|
|
|
creds = grpc.ServerCredentials.createSsl(null, |
|
|
|
|
[{private_key: key_data, |
|
|
|
|
cert_chain: pem_data}]); |
|
|
|
|
}); |
|
|
|
|
assert.notEqual(creds, null); |
|
|
|
|
}); |
|
|
|
|
it('accepts multiple objects in the second argument', function() { |
|
|
|
|
var creds; |
|
|
|
|
assert.doesNotThrow(function() { |
|
|
|
|
creds = grpc.ServerCredentials.createSsl(null, |
|
|
|
|
[{private_key: key_data, |
|
|
|
|
cert_chain: pem_data}, |
|
|
|
|
{private_key: key_data, |
|
|
|
|
cert_chain: pem_data}]); |
|
|
|
|
}); |
|
|
|
|
assert.notEqual(creds, null); |
|
|
|
|
}); |
|
|
|
|
it('fails if the second argument is not an Array', function() { |
|
|
|
|
assert.throws(function() { |
|
|
|
|
grpc.ServerCredentials.createSsl(ca_data, 'test'); |
|
|
|
|
}, TypeError); |
|
|
|
|
}); |
|
|
|
|
it('fails if the first argument is a non-Buffer value', function() { |
|
|
|
|
assert.throws(function() { |
|
|
|
|
grpc.ServerCredentials.createSsl('test', []); |
|
|
|
|
}, TypeError); |
|
|
|
|
}); |
|
|
|
|
it('fails if the third argument is a non-boolean value', function() { |
|
|
|
|
assert.throws(function() { |
|
|
|
|
grpc.ServerCredentials.createSsl(ca_data, [], 'test'); |
|
|
|
|
}, TypeError); |
|
|
|
|
}); |
|
|
|
|
it('fails if the array elements are not objects', function() { |
|
|
|
|
assert.throws(function() { |
|
|
|
|
grpc.ServerCredentials.createSsl(ca_data, 'test'); |
|
|
|
|
}, TypeError); |
|
|
|
|
}); |
|
|
|
|
it('fails if the object does not have a Buffer private_key', function() { |
|
|
|
|
assert.throws(function() { |
|
|
|
|
grpc.ServerCredentials.createSsl(null, |
|
|
|
|
[{private_key: 'test', |
|
|
|
|
cert_chain: pem_data}]); |
|
|
|
|
}, TypeError); |
|
|
|
|
}); |
|
|
|
|
it('fails if the object does not have a Buffer cert_chain', function() { |
|
|
|
|
assert.throws(function() { |
|
|
|
|
grpc.ServerCredentials.createSsl(null, |
|
|
|
|
[{private_key: key_data, |
|
|
|
|
cert_chain: 'test'}]); |
|
|
|
|
}, TypeError); |
|
|
|
|
}); |
|
|
|
|
}); |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
describe('client credentials', function() { |
|
|
|
|
var Client; |
|
|
|
|
var server; |
|
|
|
@ -109,20 +249,13 @@ describe('client credentials', function() { |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
var key_path = path.join(__dirname, './data/server1.key'); |
|
|
|
|
var pem_path = path.join(__dirname, './data/server1.pem'); |
|
|
|
|
var key_data = fs.readFileSync(key_path); |
|
|
|
|
var pem_data = fs.readFileSync(pem_path); |
|
|
|
|
var creds = grpc.ServerCredentials.createSsl(null, |
|
|
|
|
[{private_key: key_data, |
|
|
|
|
cert_chain: pem_data}]); |
|
|
|
|
//creds = grpc.ServerCredentials.createInsecure();
|
|
|
|
|
port = server.bind('localhost:0', creds); |
|
|
|
|
server.start(); |
|
|
|
|
|
|
|
|
|
Client = proto.TestService; |
|
|
|
|
var ca_path = path.join(__dirname, '../test/data/ca.pem'); |
|
|
|
|
var ca_data = fs.readFileSync(ca_path); |
|
|
|
|
client_ssl_creds = grpc.credentials.createSsl(ca_data); |
|
|
|
|
var host_override = 'foo.test.google.fr'; |
|
|
|
|
client_options['grpc.ssl_target_name_override'] = host_override; |
|
|
|
|