class DVSNITest(unittest.TestCase): def setUp(self): from acme.challenges import DVSNI self.msg = DVSNI( token=jose.b64decode('a82d5ff8ef740d12881f6d3c2277ab2e')) self.jmsg = { 'type': 'dvsni', 'token': 'a82d5ff8ef740d12881f6d3c2277ab2e', } def test_to_partial_json(self): self.assertEqual(self.jmsg, self.msg.to_partial_json()) def test_from_json(self): from acme.challenges import DVSNI self.assertEqual(self.msg, DVSNI.from_json(self.jmsg)) def test_from_json_hashable(self): from acme.challenges import DVSNI hash(DVSNI.from_json(self.jmsg)) def test_from_json_invalid_token_length(self): from acme.challenges import DVSNI self.jmsg['token'] = jose.encode_b64jose(b'abcd') self.assertRaises(jose.DeserializationError, DVSNI.from_json, self.jmsg) def test_gen_response(self): key = jose.JWKRSA(key=KEY) from acme.challenges import DVSNI self.assertEqual( self.msg, DVSNI.json_loads( self.msg.gen_response(key).validation.payload.decode()))
class DVSNITest(unittest.TestCase): def setUp(self): from acme.challenges import DVSNI self.msg = DVSNI( token=jose.b64decode('a82d5ff8ef740d12881f6d3c2277ab2e')) self.jmsg = { 'type': 'dvsni', 'token': 'a82d5ff8ef740d12881f6d3c2277ab2e', } def test_to_partial_json(self): self.assertEqual(self.jmsg, self.msg.to_partial_json()) def test_from_json(self): from acme.challenges import DVSNI self.assertEqual(self.msg, DVSNI.from_json(self.jmsg)) def test_from_json_hashable(self): from acme.challenges import DVSNI hash(DVSNI.from_json(self.jmsg)) def test_from_json_invalid_token_length(self): from acme.challenges import DVSNI self.jmsg['token'] = jose.encode_b64jose(b'abcd') self.assertRaises( jose.DeserializationError, DVSNI.from_json, self.jmsg) def test_gen_response(self): key = jose.JWKRSA(key=KEY) from acme.challenges import DVSNI self.assertEqual(self.msg, DVSNI.json_loads( self.msg.gen_response(key).validation.payload.decode()))
class DVSNITest(unittest.TestCase): def setUp(self): from acme.challenges import DVSNI self.msg = DVSNI( r="O*\xb4-\xad\xec\x95>\xed\xa9\r0\x94\xe8\x97\x9c&6" "\xbf'\xb3\xed\x9a9nX\x0f'\\m\xe7\x12", nonce='\xa8-_\xf8\xeft\r\x12\x88\x1fm<"w\xab.') self.jmsg = { 'type': 'dvsni', 'r': 'Tyq0La3slT7tqQ0wlOiXnCY2vyez7Zo5blgPJ1xt5xI', 'nonce': 'a82d5ff8ef740d12881f6d3c2277ab2e', } def test_nonce_domain(self): self.assertEqual('a82d5ff8ef740d12881f6d3c2277ab2e.acme.invalid', self.msg.nonce_domain) def test_to_partial_json(self): self.assertEqual(self.jmsg, self.msg.to_partial_json()) def test_from_json(self): from acme.challenges import DVSNI self.assertEqual(self.msg, DVSNI.from_json(self.jmsg)) def test_from_json_hashable(self): from acme.challenges import DVSNI hash(DVSNI.from_json(self.jmsg)) def test_from_json_invalid_r_length(self): from acme.challenges import DVSNI self.jmsg['r'] = 'abcd' self.assertRaises( jose.DeserializationError, DVSNI.from_json, self.jmsg) def test_from_json_invalid_nonce_length(self): from acme.challenges import DVSNI self.jmsg['nonce'] = 'abcd' self.assertRaises( jose.DeserializationError, DVSNI.from_json, self.jmsg)
class DVSNITest(unittest.TestCase): def setUp(self): from acme.challenges import DVSNI self.msg = DVSNI(r="O*\xb4-\xad\xec\x95>\xed\xa9\r0\x94\xe8\x97\x9c&6" "\xbf'\xb3\xed\x9a9nX\x0f'\\m\xe7\x12", nonce='\xa8-_\xf8\xeft\r\x12\x88\x1fm<"w\xab.') self.jmsg = { 'type': 'dvsni', 'r': 'Tyq0La3slT7tqQ0wlOiXnCY2vyez7Zo5blgPJ1xt5xI', 'nonce': 'a82d5ff8ef740d12881f6d3c2277ab2e', } def test_nonce_domain(self): self.assertEqual('a82d5ff8ef740d12881f6d3c2277ab2e.acme.invalid', self.msg.nonce_domain) def test_to_partial_json(self): self.assertEqual(self.jmsg, self.msg.to_partial_json()) def test_from_json(self): from acme.challenges import DVSNI self.assertEqual(self.msg, DVSNI.from_json(self.jmsg)) def test_from_json_hashable(self): from acme.challenges import DVSNI hash(DVSNI.from_json(self.jmsg)) def test_from_json_invalid_r_length(self): from acme.challenges import DVSNI self.jmsg['r'] = 'abcd' self.assertRaises(jose.DeserializationError, DVSNI.from_json, self.jmsg) def test_from_json_invalid_nonce_length(self): from acme.challenges import DVSNI self.jmsg['nonce'] = 'abcd' self.assertRaises(jose.DeserializationError, DVSNI.from_json, self.jmsg)
class DVSNITest(unittest.TestCase): def setUp(self): from acme.challenges import DVSNI self.msg = DVSNI(r=b"O*\xb4-\xad\xec\x95>\xed\xa9\r0\x94\xe8\x97\x9c&6" b"\xbf'\xb3\xed\x9a9nX\x0f'\\m\xe7\x12", nonce=b'\xa8-_\xf8\xeft\r\x12\x88\x1fm<"w\xab.') self.jmsg = { 'type': 'dvsni', 'r': 'Tyq0La3slT7tqQ0wlOiXnCY2vyez7Zo5blgPJ1xt5xI', 'nonce': 'a82d5ff8ef740d12881f6d3c2277ab2e', } def test_nonce_domain(self): self.assertEqual(b'a82d5ff8ef740d12881f6d3c2277ab2e.acme.invalid', self.msg.nonce_domain) def test_to_partial_json(self): self.assertEqual(self.jmsg, self.msg.to_partial_json()) def test_from_json(self): from acme.challenges import DVSNI self.assertEqual(self.msg, DVSNI.from_json(self.jmsg)) def test_from_json_hashable(self): from acme.challenges import DVSNI hash(DVSNI.from_json(self.jmsg)) def test_from_json_invalid_r_length(self): from acme.challenges import DVSNI self.jmsg['r'] = 'abcd' self.assertRaises(jose.DeserializationError, DVSNI.from_json, self.jmsg) def test_from_json_invalid_nonce_length(self): from acme.challenges import DVSNI self.jmsg['nonce'] = 'abcd' self.assertRaises(jose.DeserializationError, DVSNI.from_json, self.jmsg) @mock.patch('acme.challenges.socket.gethostbyname') @mock.patch('acme.challenges.crypto_util._probe_sni') def test_probe_cert(self, mock_probe_sni, mock_gethostbyname): mock_gethostbyname.return_value = '127.0.0.1' self.msg.probe_cert('foo.com') mock_gethostbyname.assert_called_once_with('foo.com') mock_probe_sni.assert_called_once_with( host='127.0.0.1', port=self.msg.PORT, name=b'a82d5ff8ef740d12881f6d3c2277ab2e.acme.invalid') self.msg.probe_cert('foo.com', host='8.8.8.8') mock_probe_sni.assert_called_with(host='8.8.8.8', port=mock.ANY, name=mock.ANY) self.msg.probe_cert('foo.com', port=1234) mock_probe_sni.assert_called_with(host=mock.ANY, port=1234, name=mock.ANY) self.msg.probe_cert('foo.com', bar='baz') mock_probe_sni.assert_called_with(host=mock.ANY, port=mock.ANY, name=mock.ANY, bar='baz') self.msg.probe_cert('foo.com', name=b'xxx') mock_probe_sni.assert_called_with( host=mock.ANY, port=mock.ANY, name=b'a82d5ff8ef740d12881f6d3c2277ab2e.acme.invalid')
class DVSNITest(unittest.TestCase): def setUp(self): from acme.challenges import DVSNI self.msg = DVSNI( r=b"O*\xb4-\xad\xec\x95>\xed\xa9\r0\x94\xe8\x97\x9c&6" b"\xbf'\xb3\xed\x9a9nX\x0f'\\m\xe7\x12", nonce=b'\xa8-_\xf8\xeft\r\x12\x88\x1fm<"w\xab.') self.jmsg = { 'type': 'dvsni', 'r': 'Tyq0La3slT7tqQ0wlOiXnCY2vyez7Zo5blgPJ1xt5xI', 'nonce': 'a82d5ff8ef740d12881f6d3c2277ab2e', } def test_nonce_domain(self): self.assertEqual(b'a82d5ff8ef740d12881f6d3c2277ab2e.acme.invalid', self.msg.nonce_domain) def test_to_partial_json(self): self.assertEqual(self.jmsg, self.msg.to_partial_json()) def test_from_json(self): from acme.challenges import DVSNI self.assertEqual(self.msg, DVSNI.from_json(self.jmsg)) def test_from_json_hashable(self): from acme.challenges import DVSNI hash(DVSNI.from_json(self.jmsg)) def test_from_json_invalid_r_length(self): from acme.challenges import DVSNI self.jmsg['r'] = 'abcd' self.assertRaises( jose.DeserializationError, DVSNI.from_json, self.jmsg) def test_from_json_invalid_nonce_length(self): from acme.challenges import DVSNI self.jmsg['nonce'] = 'abcd' self.assertRaises( jose.DeserializationError, DVSNI.from_json, self.jmsg) @mock.patch('acme.challenges.socket.gethostbyname') @mock.patch('acme.challenges.crypto_util._probe_sni') def test_probe_cert(self, mock_probe_sni, mock_gethostbyname): mock_gethostbyname.return_value = '127.0.0.1' self.msg.probe_cert('foo.com') mock_gethostbyname.assert_called_once_with('foo.com') mock_probe_sni.assert_called_once_with( host='127.0.0.1', port=self.msg.PORT, name=b'a82d5ff8ef740d12881f6d3c2277ab2e.acme.invalid') self.msg.probe_cert('foo.com', host='8.8.8.8') mock_probe_sni.assert_called_with( host='8.8.8.8', port=mock.ANY, name=mock.ANY) self.msg.probe_cert('foo.com', port=1234) mock_probe_sni.assert_called_with( host=mock.ANY, port=1234, name=mock.ANY) self.msg.probe_cert('foo.com', bar='baz') mock_probe_sni.assert_called_with( host=mock.ANY, port=mock.ANY, name=mock.ANY, bar='baz') self.msg.probe_cert('foo.com', name=b'xxx') mock_probe_sni.assert_called_with( host=mock.ANY, port=mock.ANY, name=b'a82d5ff8ef740d12881f6d3c2277ab2e.acme.invalid')