]> git.proxmox.com Git - proxmox-backup.git/commitdiff
src/bin/proxmox-backup-client.rs: sign index.json
authorDietmar Maurer <dietmar@proxmox.com>
Fri, 2 Aug 2019 08:00:15 +0000 (10:00 +0200)
committerDietmar Maurer <dietmar@proxmox.com>
Fri, 2 Aug 2019 08:00:15 +0000 (10:00 +0200)
src/bin/proxmox-backup-client.rs
src/client/http_client.rs

index bffc49b99f7287043c8d3ecd03c476843517625a..d73dbec8119425ea434f8455a216accbfd5469c5 100644 (file)
@@ -626,7 +626,7 @@ fn create_backup(
     if let Some(rsa_encrypted_key) = rsa_encrypted_key {
         let target = "rsa-encrypted.key";
         println!("Upload RSA encoded key to '{:?}' as {}", repo, target);
-        let stats = client.upload_blob_from_data(rsa_encrypted_key, target, None, false).wait()?;
+        let stats = client.upload_blob_from_data(rsa_encrypted_key, target, None, false, false).wait()?;
         file_list.push((target.to_owned(), stats));
 
         // openssl rsautl -decrypt -inkey master-private.pem -in rsa-encrypted.key -out t
@@ -657,7 +657,7 @@ fn create_backup(
 
     println!("Upload index.json to '{:?}'", repo);
     let index_data = serde_json::to_string_pretty(&index)?.into();
-    client.upload_blob_from_data(index_data, "index.json", crypt_config.clone(), true).wait()?;
+    client.upload_blob_from_data(index_data, "index.json", crypt_config.clone(), true, true).wait()?;
 
     client.finish().wait()?;
 
index e6c41ccca2939cd6cc08233aabfd6d494be5baa3..fa3680ab62598f0bff0284d86bc7c575fb4ace8f 100644 (file)
@@ -597,6 +597,7 @@ impl BackupClient {
         file_name: &str,
         crypt_config: Option<Arc<CryptConfig>>,
         compress: bool,
+        sign_only: bool,
      ) -> impl Future<Item=BackupStats, Error=Error> {
 
         let h2 = self.h2.clone();
@@ -606,7 +607,11 @@ impl BackupClient {
         futures::future::ok(())
             .and_then(move |_| {
                 let blob = if let Some(ref crypt_config) = crypt_config {
-                    DataBlob::encode(&data, Some(crypt_config), compress)?
+                    if sign_only {
+                        DataBlob::create_signed(&data, crypt_config, compress)?
+                    } else {
+                        DataBlob::encode(&data, Some(crypt_config), compress)?
+                    }
                 } else {
                     DataBlob::encode(&data, None, compress)?
                 };