def test_json_flat(self): jobj_to = { "signature": json_util.encode_b64jose(self.mixed.signature.signature), "payload": json_util.encode_b64jose(b"foo"), "header": self.mixed.signature.header, "protected": json_util.encode_b64jose(self.mixed.signature.protected.encode("utf-8")), } jobj_from = jobj_to.copy() jobj_from["header"] = jobj_from["header"].to_json() self.assertEqual(self.mixed.to_partial_json(flat=True), jobj_to) from acme.jose.jws import JWS self.assertEqual(self.mixed, JWS.from_json(jobj_from))
def test_json_flat(self): jobj_to = { 'signature': json_util.encode_b64jose( self.mixed.signature.signature), 'payload': json_util.encode_b64jose(b'foo'), 'header': self.mixed.signature.header, 'protected': json_util.encode_b64jose( self.mixed.signature.protected.encode('utf-8')), } jobj_from = jobj_to.copy() jobj_from['header'] = jobj_from['header'].to_json() self.assertEqual(self.mixed.to_partial_json(flat=True), jobj_to) from acme.jose.jws import JWS self.assertEqual(self.mixed, JWS.from_json(jobj_from))
def test_json_flat(self): jobj_to = { 'signature': json_util.encode_b64jose(self.mixed.signature.signature), 'payload': json_util.encode_b64jose(b'foo'), 'header': self.mixed.signature.header, 'protected': json_util.encode_b64jose( self.mixed.signature.protected.encode('utf-8')), } jobj_from = jobj_to.copy() jobj_from['header'] = jobj_from['header'].to_json() self.assertEqual(self.mixed.to_partial_json(flat=True), jobj_to) from acme.jose.jws import JWS self.assertEqual(self.mixed, JWS.from_json(jobj_from))
def test_json_not_flat(self): jobj_to = {"signatures": (self.mixed.signature,), "payload": json_util.encode_b64jose(b"foo")} jobj_from = jobj_to.copy() jobj_from["signatures"] = [jobj_to["signatures"][0].to_json()] self.assertEqual(self.mixed.to_partial_json(flat=False), jobj_to) from acme.jose.jws import JWS self.assertEqual(self.mixed, JWS.from_json(jobj_from))
def test_json_not_flat(self): jobj_to = { 'signatures': (self.mixed.signature, ), 'payload': json_util.encode_b64jose(b'foo'), } jobj_from = jobj_to.copy() jobj_from['signatures'] = [jobj_to['signatures'][0].to_json()] self.assertEqual(self.mixed.to_partial_json(flat=False), jobj_to) from acme.jose.jws import JWS self.assertEqual(self.mixed, JWS.from_json(jobj_from))
def test_json_not_flat(self): jobj_to = { 'signatures': (self.mixed.signature,), 'payload': json_util.encode_b64jose(b'foo'), } jobj_from = jobj_to.copy() jobj_from['signatures'] = [jobj_to['signatures'][0].to_json()] self.assertEqual(self.mixed.to_partial_json(flat=False), jobj_to) from acme.jose.jws import JWS self.assertEqual(self.mixed, JWS.from_json(jobj_from))
def to_partial_json(self, flat=True): # pylint: disable=arguments-differ assert self.signatures payload = json_util.encode_b64jose(self.payload) if flat and len(self.signatures) == 1: ret = self.signatures[0].to_partial_json() ret['payload'] = payload return ret else: return { 'payload': payload, 'signatures': self.signatures, }
def _encode_param(cls, data): """Encode Base64urlUInt. :type data: long :rtype: unicode """ def _leading_zeros(arg): if len(arg) % 2: return '0' + arg return arg return json_util.encode_b64jose(binascii.unhexlify( _leading_zeros(hex(data)[2:].rstrip('L'))))
def fields_to_partial_json(self): # TODO: An "alg" member SHOULD also be present to identify the # algorithm intended to be used with the key, unless the # application uses another means or convention to determine # the algorithm used. return {'k': json_util.encode_b64jose(self.key)}
def protected(value): # pylint: disable=missing-docstring,no-self-argument # wrong type guess (Signature, not bytes) | pylint: disable=no-member return json_util.encode_b64jose(value.encode('utf-8'))
def setUp(self): from acme.jose.jwk import JWKOct self.jwk = JWKOct(key=b'foo') self.jobj = {'kty': 'oct', 'k': json_util.encode_b64jose(b'foo')}
def test_encode_b64jose(self): from acme.jose.json_util import encode_b64jose encoded = encode_b64jose(b'x') self.assertTrue(isinstance(encoded, six.string_types)) self.assertEqual(u'eA', encoded)