MCPcopy
hub / github.com/borgbackup/borg / save

Method save

src/borg/crypto/key.py:703–721  ·  view source on GitHub ↗
(self, target, passphrase, algorithm, create=False)

Source from the content-addressed store, hash-verified

701 return success
702
703 def save(self, target, passphrase, algorithm, create=False):
704 key_data = self._save(passphrase, algorithm)
705 if self.STORAGE == KeyBlobStorage.KEYFILE:
706 if create and os.path.isfile(target):
707 # if a new keyfile key repository is created, ensure that an existing keyfile of another
708 # keyfile key repo is not accidentally overwritten by careless use of the BORG_KEY_FILE env var.
709 # see issue #6036
710 raise Error('Aborting because key in "%s" already exists.' % target)
711 with SaveFile(target) as fd:
712 fd.write(f"{self.FILE_ID} {bin_to_hex(self.repository_id)}\n")
713 fd.write(key_data)
714 fd.write("\n")
715 elif self.STORAGE == KeyBlobStorage.REPO:
716 self.logically_encrypted = passphrase != "" # nosec B105
717 key_data = key_data.encode("utf-8") # remote repo: msgpack issue #99, giving bytes
718 target.save_key(key_data)
719 else:
720 raise TypeError("Unsupported borg key storage type")
721 self.target = target
722
723 def remove(self, target):
724 if self.STORAGE == KeyBlobStorage.KEYFILE:

Callers 5

change_passphraseMethod · 0.95
createMethod · 0.45
saveMethod · 0.45
create_innerMethod · 0.45

Calls 6

_saveMethod · 0.95
ErrorClass · 0.85
SaveFileClass · 0.85
bin_to_hexFunction · 0.85
writeMethod · 0.45
save_keyMethod · 0.45

Tested by

no test coverage detected