def testParseCredential_MissingRequiredKey(self): with self.assertRaisesRegex(ValueError, 'path is required'): util.ParseCredential(None, 'rsa-x509-pem', messages=self.messages) with self.assertRaisesRegex(ValueError, re.escape('Invalid key type [None]')): util.ParseCredential(self.rsa_key_path, None, messages=self.messages)
def testParseCredential_EcdsaKeyUnreadableKeyFile(self): with self.assertRaisesRegex( util.InvalidKeyFileError, re.escape(('Could not read key file [{}]:').format( self.bad_key_path))): util.ParseCredential(self.bad_key_path, 'es256-pem', messages=self.messages)
def testParseCredential_EcdsaKey(self): self.assertEqual( util.ParseCredential(self.ecdsa_key_path, 'es256-pem', messages=self.messages), self.messages.DeviceCredential( publicKey=self.messages.PublicKeyCredential( format=self.format_enum.ES256_PEM, key=_DUMMY_ECDSA_FILE_CONTENTS)))
def testParseCredential_RsaKey(self): self.assertEqual( util.ParseCredential(self.rsa_key_path, 'rsa-x509-pem', messages=self.messages), self.messages.DeviceCredential( publicKey=self.messages.PublicKeyCredential( format=self.format_enum.RSA_X509_PEM, key=_DUMMY_RSA_FILE_CONTENTS)))
def testParseCredential_EcdsaKeyExpirationTime(self): self.assertEqual( util.ParseCredential(self.ecdsa_key_path, 'es256-pem', expiration_time=datetime.datetime(2017, 1, 1), messages=self.messages), self.messages.DeviceCredential( expirationTime='2017-01-01T00:00:00.000', publicKey=self.messages.PublicKeyCredential( format=self.format_enum.ES256_PEM, key=_DUMMY_ECDSA_FILE_CONTENTS)))
def Run(self, args): client = devices.DevicesClient() device_ref = args.CONCEPTS.device.Parse() new_credential = util.ParseCredential( args.path, args.type, args.expiration_time, messages=client.messages) credentials = client.Get(device_ref).credentials if len(credentials) >= util.MAX_PUBLIC_KEY_NUM: raise util.InvalidPublicKeySpecificationError( 'Cannot create a new public key credential for this device; ' 'maximum {} keys are allowed.'.format(util.MAX_PUBLIC_KEY_NUM)) credentials.append(new_credential) response = client.Patch(device_ref, credentials=credentials) log.CreatedResource(device_ref.Name(), 'credentials for device') return response
def Run(self, args): client = devices.DevicesClient() device_ref = util.ParseDevice(args.device, registry=args.registry, region=args.region) new_credential = util.ParseCredential(args.path, args.type, args.expiration_time, messages=client.messages) credentials = client.Get(device_ref).credentials if len(credentials) >= util.MAX_PUBLIC_KEY_NUM: raise util.InvalidPublicKeySpecificationError( 'Cannot create a new public key credential for this device; ' 'maximum {} keys are allowed.'.format(util.MAX_PUBLIC_KEY_NUM)) credentials.append(new_credential) return client.Patch(device_ref, credentials=credentials)
def testParseCredential_BadKeyType(self): with self.assertRaisesRegex( ValueError, re.escape('Invalid key type [invalid-type]')): util.ParseCredential(self.rsa_key_path, 'invalid-type', messages=self.messages)