TCRYPT: fix activation and hidden device offsets.
[platform/upstream/cryptsetup.git] / lib / tcrypt / tcrypt.h
index e709314..d67f8f1 100644 (file)
 #define TCRYPT_HDR_MAGIC "TRUE"
 #define TCRYPT_HDR_MAGIC_LEN 4
 
+#define TCRYPT_HDR_HIDDEN_OFFSET_OLD -1536
 #define TCRYPT_HDR_HIDDEN_OFFSET 65536
 
+#define TCRYPT_HDR_HIDDEN_OFFSET_BCK -65536
+#define TCRYPT_HDR_OFFSET_BCK -131072
+
 #define TCRYPT_LRW_IKEY_LEN 16
 #define TCRYPT_KEY_POOL_LEN 64
 #define TCRYPT_KEYFILE_LEN  1048576
@@ -64,10 +68,20 @@ struct tcrypt_phdr {
        };
 } __attribute__((__packed__));
 
+struct crypt_dm_active_device;
+struct volume_key;
+struct device;
+
 int TCRYPT_read_phdr(struct crypt_device *cd,
                     struct tcrypt_phdr *hdr,
                     struct crypt_params_tcrypt *params);
 
+int TCRYPT_init_by_name(struct crypt_device *cd, const char *name,
+                       const struct crypt_dm_active_device *dmd,
+                       struct device **device,
+                       struct crypt_params_tcrypt *tcrypt_params,
+                       struct tcrypt_phdr *tcrypt_hdr);
+
 int TCRYPT_activate(struct crypt_device *cd,
                     const char *name,
                     struct tcrypt_phdr *hdr,
@@ -77,4 +91,21 @@ int TCRYPT_activate(struct crypt_device *cd,
 int TCRYPT_deactivate(struct crypt_device *cd,
                      const char *name);
 
+uint64_t TCRYPT_get_data_offset(struct crypt_device *cd,
+                               struct tcrypt_phdr *hdr,
+                               struct crypt_params_tcrypt *params);
+
+uint64_t TCRYPT_get_iv_offset(struct crypt_device *cd,
+                             struct tcrypt_phdr *hdr,
+                             struct crypt_params_tcrypt *params);
+
+int TCRYPT_get_volume_key(struct crypt_device *cd,
+                         struct tcrypt_phdr *hdr,
+                         struct crypt_params_tcrypt *params,
+                         struct volume_key **vk);
+
+int TCRYPT_dump(struct crypt_device *cd,
+               struct tcrypt_phdr *hdr,
+               struct crypt_params_tcrypt *params);
+
 #endif