def testMissingSignedBinary(self): missing_urn = rdfvalue.RDFURN("aff4:/config/executables/not/exist") with self.assertRaises(signed_binary_utils.SignedBinaryNotFoundError): signed_binary_utils.DeleteSignedBinary(missing_urn) with self.assertRaises(signed_binary_utils.SignedBinaryNotFoundError): signed_binary_utils.FetchBlobsForSignedBinaryByURN(missing_urn) with self.assertRaises(signed_binary_utils.SignedBinaryNotFoundError): signed_binary_utils.FetchSizeOfSignedBinary(missing_urn)
def Handle(self, args, token=None): if not args.path: raise ValueError("Invalid binary path: %s" % args.path) root_urn = _GetBinaryRootUrn(args.type) try: signed_binary_utils.DeleteSignedBinary(root_urn.Add(args.path)) except signed_binary_utils.SignedBinaryNotFoundError: raise GrrBinaryNotFoundError( "No binary with type=%s and path=%s was found." % (args.type, args.path))
def testDeleteSignedBinary(self): binary1_urn = rdfvalue.RDFURN("aff4:/config/executables/foo1") binary2_urn = rdfvalue.RDFURN("aff4:/config/executables/foo2") signed_binary_utils.WriteSignedBinaryBlobs( binary1_urn, [rdf_crypto.SignedBlob().Sign(b"\x00", self._private_key)]) signed_binary_utils.WriteSignedBinaryBlobs( binary2_urn, [rdf_crypto.SignedBlob().Sign(b"\x11", self._private_key)]) self.assertCountEqual(signed_binary_utils.FetchURNsForAllSignedBinaries(), [binary1_urn, binary2_urn]) signed_binary_utils.DeleteSignedBinary(binary1_urn) self.assertCountEqual(signed_binary_utils.FetchURNsForAllSignedBinaries(), [binary2_urn])
def Handle(self, args, context=None): if not args.path: raise ValueError("Invalid binary path: %s" % args.path) # We do not allow deleting GRR binaries if the readonly configuration # flag is set. if config.CONFIG["Server.grr_binaries_readonly"]: raise GrrBinaryIsNotDeletableError( f"GRR binary ({args.path}, {args.type}) can't be deleted: " "all binaries are read-only.") root_urn = _GetBinaryRootUrn(args.type) try: signed_binary_utils.DeleteSignedBinary(root_urn.Add(args.path)) except signed_binary_utils.SignedBinaryNotFoundError: raise GrrBinaryNotFoundError( "No binary with type=%s and path=%s was found." % (args.type, args.path))