Example #1
0
 def setUp(self):
     self.tmpdir = tempfile.mkdtemp()
     os.environ['HOME'] = self.tmpdir
     nonces.set_nonce_handlers(lambda _n: True, lambda _n: True)
     self.keypair = keychain.Keypair.from_secret_der(base64.b64decode(
         'MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgOiXcCrreAqzw3xOT'
         'L44O8DFyDfBAPQgZ0AmPGZfWmMShRANCAARD66FPRWFIFrNcn+DjLTSb8lP3pha3'
         'joBvC7Cf4JR/LP7lECAc0mNfokw84+pLurAkP2rG1Y63n9KPwntflfRD='
     ))
Example #2
0
    def setUp(self):
        nonces.set_nonce_handlers(lambda _n: True, lambda _n: True)
        self.mock_id_keypair = keychain.Keypair.from_secret_pem(
            key_bytes=TestSession.id_key_bytes)
        self.mock_id_keypair.identity = 'device-id'

        self.id_credentials = keychain.Credentials(
            self.mock_id_keypair.identity, self.mock_id_keypair)

        self.mock_proj_keypair = keychain.Keypair.from_secret_pem(
            key_bytes=TestSession.proj_key_bytes)
        self.mock_proj_keypair.identity = 'proj-id'

        self.proj_credentials = keychain.Credentials(
            self.mock_proj_keypair.identity, self.mock_proj_keypair)

        self.mock_oneid_keypair = keychain.Keypair.from_secret_pem(
            key_bytes=TestSession.oneid_key_bytes)
        self.mock_oneid_keypair.identity = 'oneid-id'

        self.oneid_credentials = keychain.Credentials(
            self.mock_oneid_keypair.identity, self.mock_oneid_keypair)

        mock_peer_keypair = keychain.Keypair.from_secret_pem(
            key_bytes=TestSession.alt_key_bytes)
        mock_peer_keypair.identity = 'peer'

        self.peer_credentials = keychain.Credentials(
            mock_peer_keypair.identity, mock_peer_keypair)

        self.mock_resetA_keypair = keychain.Keypair.from_secret_pem(
            key_bytes=TestSession.reset_key_A_bytes)
        self.mock_resetA_keypair.identity = 'resetA-id'

        self.resetA_credentials = keychain.Credentials(
            self.mock_resetA_keypair.identity, self.mock_resetA_keypair)

        self.mock_resetB_keypair = keychain.Keypair.from_secret_pem(
            key_bytes=TestSession.reset_key_B_bytes)
        self.mock_resetB_keypair.identity = 'resetB-id'

        self.resetB_credentials = keychain.Credentials(
            self.mock_resetB_keypair.identity, self.mock_resetB_keypair)

        self.mock_resetC_keypair = keychain.Keypair.from_secret_pem(
            key_bytes=TestSession.reset_key_C_bytes)
        self.mock_resetC_keypair.identity = 'resetC-id'

        self.resetC_credentials = keychain.Credentials(
            self.mock_resetC_keypair.identity, self.mock_resetC_keypair)
Example #3
0
    def setUp(self):
        self.tmpdir = tempfile.mkdtemp()
        os.environ['HOME'] = self.tmpdir
        nonces.set_nonce_handlers(lambda _n: True, lambda _n: True)

        self.claim_keys = ['a', 'b', 'c', 'héllo!', '😬']
        self.raw_claims = {k: 0 for k in self.claim_keys}

        self.sender_keypair = service.create_secret_key()
        self.sender_keypair.identity = str(uuid.uuid4())

        self.recipient_keypairs = []
        for _ in range(3):
            recipient_keypair = _generate_keypair()
            self.recipient_keypairs.append(recipient_keypair)
        self.jwe = jwes.make_jwe(self.raw_claims, self.sender_keypair,
                                 self.recipient_keypairs)
Example #4
0
    def setUp(self):
        self.tmpdir = tempfile.mkdtemp()
        os.environ['HOME'] = self.tmpdir
        nonces.set_nonce_handlers(lambda _n: True, lambda _n: True)

        self.claim_keys = ['a', 'b', 'c', 'héllo!', '😬']
        self.raw_claims = {k: 0 for k in self.claim_keys}

        self.standard_claims = {
            'iss': str(uuid.uuid4()),
            'jti': nonces.make_nonce(),
            'nbf': 12345,
            'exp': 12346,
        }
        self.dummy_jwe = {
            'iv': '1234',
            'ciphertext': 'hello',
            'tag': '4567',
            'recipients': [{}],
            'unprotected': self.standard_claims,
        }
Example #5
0
 def tearDown(self):
     nonces.set_nonce_handlers(
         nonces._default_nonce_verifier, nonces._default_nonce_burner)
Example #6
0
    def setUp(self):
        self.tmpdir = tempfile.mkdtemp()
        os.environ['HOME'] = self.tmpdir
        nonces.set_nonce_handlers(lambda _n: True, lambda _n: True)

        self.keypairs = []

        for _ in range(3):
            key = service.create_secret_key()
            key.identity = str(uuid.uuid4())
            self.keypairs.append(key)

        self.JWS_MISSING_2_SIGNATURE_INDEXES = json.dumps(
            {
                "signatures": [
                    {
                        "signature": ("qv3yMkk5ASPWYKHduH07JtwziPvZjOVlUpBX4ePd8YYPu4H5poHBn12QgjY9"
                                      "MF081UH2-BARVRzDaJ7N02nXFA"),
                        "protected": ("eyJhbGciOiAiRVMyNTYiLCAidHlwIjogIkpPU0UrSlNPTiIsICJraWQiOiAi"
                                      "MDAyY2Q5MTAtYzEyMi00ZmY3LWEwMmMtMzQyNjAzOTQ1YzFiIn0")
                    },
                    {
                        "signature": ("rwm1ohxoHPCFWT_rsQKV0CPezUHp-Udgc4JsuqjtWpqMFuQEDYDTMEDlx93B"
                                      "2RWGvF7WyjNeftCSr-olAcM04A"),
                        "protected": ("eyJhbGciOiAiRVMyNTYiLCAidHlwIjogIkpPU0UrSlNPTiIsICJraWQiOiAi"
                                      "NTU2YTZlOTctNzZlNS00NGRmLTkyMGUtMTE0OTA5MDNiNDZhIn0")
                    },
                    {
                        "signature": ("HUSPH2fP8MTb2F4wT5cClNzzvIWtxn7oTLaFlSMMiAWmTKnUbMpA6GcGhPNg"
                                      "b3Yu5RPyNQuyx_cwXsV00sDO8Q"),
                        "protected": ("eyJhbGciOiAiRVMyNTYiLCAic2lkIjogMCwgInR5cCI6ICJKT1NFK0pTT04i"
                                      "LCAia2lkIjogIjA2ZjY2ODdhLWIxYTQtNGMyZC04YmIwLWQ3ZjdhMjU3ODE2"
                                      "MSJ9")
                    }
                ],
                "payload": ("eyJqdGkiOiAiMDAyMjQ4OS0wMi0yN1QxNjowMDowMFpPbE13WUgiLCAibmJmIjogMTQ3OT"
                            "QxNTY3OCwgImEiOiAxLCAiZXhwIjogMTYzODMxNjgwMDB9")
            }
        )

        self.JWS_MISSING_1_SIGNATURE_INDEXES = json.dumps(
            {
                "signatures": [
                    {
                        "signature": ("W8HUqYZi3F3xI-Hx2KUwXCeEwhxLDqpSOs4syaAaHJvvwArShgdZibwFLmy9"
                                      "w4sdR2oFRQU2Uz7-flOuaDukTA"),
                        "protected": ("eyJhbGciOiAiRVMyNTYiLCAia2lkIjogIjg2M2E4MDU1LTU2OGUtNGE3Yy04"
                                      "YjAwLWQxYTdhMjBkZjc0MSIsICJ0eXAiOiAiSk9TRStKU09OIiwgInNpZHgi"
                                      "OiAwfQ")
                    },
                    {
                        "signature": ("O5q9H9vXTiGh0Qrv6Rc1r7Tbc_eO-K5CMX_-Z5ir33GPX4c-AuQuKoE4vLvi"
                                      "n30LfnCOcG5USXVE8G-Q3eD-TQ"),
                        "protected": ("eyJhbGciOiAiRVMyNTYiLCAia2lkIjogImFlOGVhOWI4LWZlMmQtNDI0My05"
                                      "OGE5LWQ5ZjAyYjBiYWEwYiIsICJ0eXAiOiAiSk9TRStKU09OIiwgInNpZHgi"
                                      "OiAxfQ")
                    },
                    {
                        "signature": ("kFQeh4tYgsioE71umxNc4_r6diil7vVFC7nYiXQpaAZA9FfWVnM6vSCgS2UX"
                                      "wKicHrf-S5_1ZjiXPR-uInZKeg"),
                        "protected": ("eyJraWQiOiAiMzc0MGU1YjUtMDc3MC00YjcwLWIzN2MtOTUyMTA4ZTBhYzE0"
                                      "IiwgInR5cCI6ICJKT1NFK0pTT04iLCAiYWxnIjogIkVTMjU2In0")
                    }
                ],
                "payload": ("eyJhIjogMSwgIm5iZiI6IDE0Nzk0MTYyMzEsICJqdGkiOiAiMDAyMjQ4OS0wMi0yN1QxNj"
                            "owMDowMFo3WW1QQ1IiLCAiZXhwIjogMTYzODMxNjgwMDB9")
            }
        )

        self.JWS_DUPLICATE_SIGNATURE_INDEXES = json.dumps(
            {
                "signatures": [
                    {
                        "signature": ("0xmM4kfdd9vXc58nwGrrur_ddzppnB90OeTYLGO6aeNLuCzM7rTcL3edeCyR"
                                      "nqddn3hyXl4eCQSSOGCjdHwlRQ"),
                        "protected": ("eyJhbGciOiAiRVMyNTYiLCAidHlwIjogIkpPU0UrSlNPTiIsICJraWQiOiAi"
                                      "MTg2NjEzY2UtOWZmNy00ZWNjLTlkZTgtNzY2NjdmOWIwZjQ5IiwgInNpZHgi"
                                      "OiAxfQ")
                    },
                    {
                        "signature": ("vT6zww3UwMO-ECi1E74qJuV2U2hEJwC_k8ab2fumQZRsqG4vCJob8pQaGa-k"
                                      "dF88FSXDqj6j_09UXa0Fx_eOHA"),
                        "protected": ("eyJhbGciOiAiRVMyNTYiLCAidHlwIjogIkpPU0UrSlNPTiIsICJraWQiOiAi"
                                      "ZjMyYzE1ZGYtZGNmNS00YThiLWJhMzktYjM0Y2QwNGJiMjhjIiwgInNpZHgi"
                                      "OiAxfQ")
                    }
                ],
                "payload": ("eyJhIjogMSwgImV4cCI6IDE0Nzk0Mjk2NDMsICJqdGkiOiAiMDAyMjAxNi0xMS0xOFQwMD"
                            "o0MDo0M1pWS09WOTIiLCAibmJmIjogMTQ3OTQyNjA0M30")
            }
        )
Example #7
0
 def setUp(self):
     self.tmpdir = tempfile.mkdtemp()
     os.environ['HOME'] = self.tmpdir
     nonces.set_nonce_handlers(lambda _n: True, lambda _n: True)
     self.keypair = service.create_secret_key()
Example #8
0
 def setUp(self):
     nonces.set_nonce_handlers(lambda _n: False, lambda _n: False)
Example #9
0
 def setUp(self):
     nonces.set_nonce_handlers(lambda _n: True, lambda _n: True)
Example #10
0
    def setUp(self):
        nonces.set_nonce_handlers(lambda _n: True, lambda _n: True)
        mock_keypair = keychain.Keypair.from_secret_pem(
            key_bytes=TestSession.id_key_bytes)
        mock_keypair.identity = 'id'
        self.id_credentials = keychain.Credentials(mock_keypair.identity,
                                                   mock_keypair)

        mock_oneid_keypair = keychain.Keypair.from_secret_pem(
            key_bytes=TestSession.oneid_key_bytes)
        mock_oneid_keypair.identity = 'oneID'
        self.oneid_credentials = keychain.Credentials(
            mock_oneid_keypair.identity, mock_oneid_keypair)

        mock_alt_keypair = keychain.Keypair.from_secret_pem(
            key_bytes=TestSession.alt_key_bytes)
        mock_alt_keypair.identity = 'alt'
        self.alt_credentials = keychain.Credentials(mock_alt_keypair.identity,
                                                    mock_alt_keypair)

        mock_project_keypair = keychain.Keypair.from_secret_pem(
            key_bytes=TestSession.proj_key_bytes)
        mock_project_keypair.identity = 'proj'
        self.project_credentials = keychain.Credentials(
            mock_project_keypair.identity, mock_project_keypair)
        mock_resetA_keypair = keychain.Keypair.from_secret_pem(
            key_bytes=TestSession.reset_key_A_bytes)
        mock_resetA_keypair.identity = 'resetA-id'
        self.resetA_credentials = keychain.Credentials(
            mock_resetA_keypair.identity, mock_resetA_keypair)

        mock_resetB_keypair = keychain.Keypair.from_secret_pem(
            key_bytes=TestSession.reset_key_B_bytes)
        mock_resetB_keypair.identity = 'resetB-id'
        self.resetB_credentials = keychain.Credentials(
            mock_resetB_keypair.identity, mock_resetB_keypair)

        mock_resetC_keypair = keychain.Keypair.from_secret_pem(
            key_bytes=TestSession.reset_key_C_bytes)
        mock_resetC_keypair.identity = 'resetC-id'
        self.resetC_credentials = keychain.Credentials(
            mock_resetC_keypair.identity, mock_resetC_keypair)

        # TODO: JWS with both

        self.fake_config = {
            'GLOBAL': {
                'base_url': 'https://myservice',
            },
            'test_service': {
                'test_method': {
                    'endpoint': '/my/endpoint',
                    'method': 'GET',
                    'arguments': {},
                },
            },
            'authenticate': {},
        }
        self.fake_config['authenticate']['project'] = {
            'endpoint': '/auth/generic_endpoint',
            'method': 'POST',
            'arguments': {
                'message': {
                    'location': 'jwt',
                    'required': True,
                },
            },
        }
        self.fake_config['authenticate']['edge_device'] = \
            self.fake_config['authenticate']['server'] = {

            'endpoint': '/auth/endpoint',
            'method': 'POST',
            'arguments': {
                'identity': {
                    'location': 'url',
                    'required': True,
                },
                'message': {
                    'location': 'jwt',
                    'required': True,
                },
            },
        }