def testParseFaileBadKeyType(self):
     disk = self._MakeDiskRef()
     with self.assertRaisesRegex(core_exceptions.Error,
                                 r'Invalid key type \[rAW\]'):
         csek_utils.CsekKeyStore("""
       [ {{ "uri": "{0}",
            "key": "abcdefghijklmnopqrstuvwxyz1234567890AAAAAAA=",
            "key-type": "rAW" }} ]
       """.format(disk))
 def testExerciseSingletonFileWrappedKeyNotAllowed(self):
     disk = self._MakeDiskRef()
     with self.assertRaisesRegex(
             csek_utils.BadKeyTypeException,
             re.escape(
                 'Invalid key type [rsa-encrypted]: this feature is only allowed in the '
                 'alpha and beta versions of this command.')):
         csek_utils.CsekKeyStore("""
       [ {{ "uri": "{0}",
            "key": "{1}",
            "key-type": "rsa-encrypted" }} ]
       """.format(disk, SAMPLE_WRAPPED_KEY))
 def testExerciseSingletonFileWrappedKeyAllowed(self):
     disk1 = self._MakeDiskRef(DISK1_NAME)
     disk2 = self._MakeDiskRef(DISK2_NAME)
     mks = csek_utils.CsekKeyStore("""
     [ {{ "uri": "{0}",
          "key": "{1}",
          "key-type": "rsa-encrypted" }} ]
     """.format(disk1, SAMPLE_WRAPPED_KEY),
                                   allow_rsa_encrypted=True)
     self.assertEqual(len(mks), 1)
     self.assertEqual(mks.LookupKey(disk1).key_material, SAMPLE_WRAPPED_KEY)
     self.assertEqual(mks.LookupKey(disk2), None)
 def testExerciseBadKeyInFileWithTwoEntries(self):
     disk1 = self._MakeDiskRef(DISK1_NAME, 'v1')
     disk2 = self._MakeDiskRef(DISK2_NAME, 'v1')
     with self.assertRaisesRegex(csek_utils.InvalidKeyException,
                                 disk2.RelativeName()):
         csek_utils.CsekKeyStore("""
       [ {{ "uri": "{0}",
            "key": "abcdefghijklmnopqrstuvwxyz1234567890AAAAAAA=",
            "key-type": "raw" }},
         {{ "uri": "{1}",
            "key": "WaffleWaffleWaffleWaffleWaffleWaffleWaffleXX",
            "key-type": "raw" }} ]
       """.format(disk1, disk2))
 def testExerciseSingletonFileRawKey(self):
     disk1 = self._MakeDiskRef(DISK1_NAME, 'v1')
     disk1_alpha = self._MakeDiskRef(DISK1_NAME, 'alpha')
     disk1_beta = self._MakeDiskRef(DISK1_NAME, 'beta')
     disk2 = self._MakeDiskRef(DISK2_NAME, 'v1')
     mks = csek_utils.CsekKeyStore("""
     [ {{ "uri": "{0}",
          "key": "abcdefghijklmnopqrstuvwxyz1234567890AAAAAAA=",
          "key-type": "raw" }} ]
     """.format(disk1))
     self.assertEqual(len(mks), 1)
     self.assertEqual(
         mks.LookupKey(disk1).key_material,
         'abcdefghijklmnopqrstuvwxyz1234567890AAAAAAA=')
     self.assertEqual(
         mks.LookupKey(disk1_alpha).key_material,
         'abcdefghijklmnopqrstuvwxyz1234567890AAAAAAA=')
     self.assertEqual(
         mks.LookupKey(disk1_beta).key_material,
         'abcdefghijklmnopqrstuvwxyz1234567890AAAAAAA=')
     self.assertEqual(mks.LookupKey(disk2), None)
 def testParseOkEmpty(self):
     mks = csek_utils.CsekKeyStore('[]')
     self.assertEqual(len(mks), 0)