Regenerate go-tuf-transitional-M4 metadata

This incorporates all the recent metadata changes:

* metadata is pretty printed
* test now no longer saves keys, and rotates all the keys
* ignores duplicate key ids
* metadata is now canonicalized
* uses shared keys
* `keyid_hash_algorithm` switched to `["sha256"]`
* fixed `consistent-snapshot-false` to actually turn off consistent
  snapshot
* stops generating hash-prefixed metadata, and versioned-prefixed target
  files

Change-Id: I3cd17e9886f51882d287fe1e1fe76df163942b67
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/0/keys/root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/0/keys/root.json
deleted file mode 100644
index 5ad0b04..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/0/keys/root.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
-	"encrypted": false,
-	"data": [
-		{
-			"keytype": "ed25519",
-			"scheme": "ed25519",
-			"keyid_hash_algorithms": [
-				"sha512"
-			],
-			"keyval": {
-				"public": "0b4fd984ce719448735d51496f20bfeba6ce076efd3311f828baca405827a680",
-				"private": "32fc6316916958d56498d557c855bc2d012ea847175ffe03807d06ad401602da0b4fd984ce719448735d51496f20bfeba6ce076efd3311f828baca405827a680"
-			}
-		}
-	]
-}
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/0/keys/snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/0/keys/snapshot.json
deleted file mode 100644
index f0c7638..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/0/keys/snapshot.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
-	"encrypted": false,
-	"data": [
-		{
-			"keytype": "ed25519",
-			"scheme": "ed25519",
-			"keyid_hash_algorithms": [
-				"sha512"
-			],
-			"keyval": {
-				"public": "9d0a51a3b2c40f8bfb6a989787eebfd0b7af521f85ecfa74ce6a3036239b7518",
-				"private": "6a96f1a4d2193a181511ac4ba1b3ae8e92de8b9f14d76ed10139d705d2d57e5b9d0a51a3b2c40f8bfb6a989787eebfd0b7af521f85ecfa74ce6a3036239b7518"
-			}
-		}
-	]
-}
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/0/keys/targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/0/keys/targets.json
deleted file mode 100644
index ea04176..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/0/keys/targets.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
-	"encrypted": false,
-	"data": [
-		{
-			"keytype": "ed25519",
-			"scheme": "ed25519",
-			"keyid_hash_algorithms": [
-				"sha512"
-			],
-			"keyval": {
-				"public": "03f9d7cb27b94b914fda338371cc525afefddf2075a179dc7927d17b79b453ef",
-				"private": "30d93aa3b83a5672dabfe4e8a0175491ae5051d02d6e049952c065169fe04b6c03f9d7cb27b94b914fda338371cc525afefddf2075a179dc7927d17b79b453ef"
-			}
-		}
-	]
-}
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/0/keys/timestamp.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/0/keys/timestamp.json
deleted file mode 100644
index 5e42d1c..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/0/keys/timestamp.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
-	"encrypted": false,
-	"data": [
-		{
-			"keytype": "ed25519",
-			"scheme": "ed25519",
-			"keyid_hash_algorithms": [
-				"sha512"
-			],
-			"keyval": {
-				"public": "bca92195f8fb4fe781e59614f819ee983d7398deea249cb93e4517e5a7b285f7",
-				"private": "55c510bcbe6892eb536e6ac632317f6b0651452e9a2519472a28fa2dc4d8dfdbbca92195f8fb4fe781e59614f819ee983d7398deea249cb93e4517e5a7b285f7"
-			}
-		}
-	]
-}
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/0/repository/077b1bccf9b08d011e5ed54338408b90cd089ba6bf2f57b9f65eaedb5245ab58a2b2cadbb7c9fe21c4c5935dce4f325e07d732296e2d01af32fe1ae5fa4c4094.targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/0/repository/077b1bccf9b08d011e5ed54338408b90cd089ba6bf2f57b9f65eaedb5245ab58a2b2cadbb7c9fe21c4c5935dce4f325e07d732296e2d01af32fe1ae5fa4c4094.targets.json
deleted file mode 100644
index 54af415..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/0/repository/077b1bccf9b08d011e5ed54338408b90cd089ba6bf2f57b9f65eaedb5245ab58a2b2cadbb7c9fe21c4c5935dce4f325e07d732296e2d01af32fe1ae5fa4c4094.targets.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"targets","expires":"2100-01-01T00:00:00Z","spec_version":"1.0","targets":{"0":{"hashes":{"sha512":"31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"},"length":1}},"version":1},"signatures":[{"keyid":"c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e","sig":"4fbdc8c6e31f63ed182694ae82081e52a68ea563d8e6339e7c247531538af6cfa3e19f7cbcf9d790c6daa57460a60ea74b75eacd1b320d86193be7d36dae3a07"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/0/repository/1.root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/0/repository/1.root.json
index faa92c6..f02c25b 100644
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/0/repository/1.root.json
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/0/repository/1.root.json
@@ -1 +1,83 @@
-{"signed":{"_type":"root","consistent_snapshot":true,"expires":"2100-01-01T00:00:00Z","keys":{"0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"9d0a51a3b2c40f8bfb6a989787eebfd0b7af521f85ecfa74ce6a3036239b7518"},"scheme":"ed25519"},"4f6cbf068b19f3f876f0919eafb43f65e4899504fc18b822c6e6078b798c986b":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"bca92195f8fb4fe781e59614f819ee983d7398deea249cb93e4517e5a7b285f7"},"scheme":"ed25519"},"c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"03f9d7cb27b94b914fda338371cc525afefddf2075a179dc7927d17b79b453ef"},"scheme":"ed25519"},"c9e06997f3e77a1c999ed35b41899790214e9669b3a5c900238b8ed7260b375b":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"0b4fd984ce719448735d51496f20bfeba6ce076efd3311f828baca405827a680"},"scheme":"ed25519"}},"roles":{"root":{"keyids":["c9e06997f3e77a1c999ed35b41899790214e9669b3a5c900238b8ed7260b375b"],"threshold":1},"snapshot":{"keyids":["0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7"],"threshold":1},"targets":{"keyids":["c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e"],"threshold":1},"timestamp":{"keyids":["4f6cbf068b19f3f876f0919eafb43f65e4899504fc18b822c6e6078b798c986b"],"threshold":1}},"spec_version":"1.0","version":1},"signatures":[{"keyid":"c9e06997f3e77a1c999ed35b41899790214e9669b3a5c900238b8ed7260b375b","sig":"83803c5ce5acb02df6bd8287b16f356b9139f0c9e2696731875361ab422849d7683a0543ba83e55eea15ed77a84f654196e68337c6d2db31ec95d6a8ac7aa10f"}]}
\ No newline at end of file
+{
+	"signatures": [
+		{
+			"keyid": "160f5ae5e7017bc783bbbe26c5419bbeeeb87f507b140ef474da0517d56549f7",
+			"sig": "4d84952574a5ef31fa9f8d97a3159305b8b99c011b27327e969d88f8f88a5d56ef4a3d03b19134d0f8a1627de8d03b11847ffb7ed0e15c2fad0d8cfd5a57ae0f"
+		}
+	],
+	"signed": {
+		"_type": "root",
+		"consistent_snapshot": false,
+		"expires": "2100-01-01T00:00:00Z",
+		"keys": {
+			"160f5ae5e7017bc783bbbe26c5419bbeeeb87f507b140ef474da0517d56549f7": {
+				"keyid_hash_algorithms": [
+					"sha256"
+				],
+				"keytype": "ed25519",
+				"keyval": {
+					"public": "bca152214dbfd3e7a1b7a7b3e2cc179fb00520fd7212c8a60ba99f14dfc0e1ca"
+				},
+				"scheme": "ed25519"
+			},
+			"b1eb1d74c0e65524c85f96f9badf09a4d2ed1259fb427fc689fc2279ebb4d867": {
+				"keyid_hash_algorithms": [
+					"sha256"
+				],
+				"keytype": "ed25519",
+				"keyval": {
+					"public": "62f71f99c788f16bcdc8bb252455e3a690350e4ddea5a6aab1f9a3aaabcf369a"
+				},
+				"scheme": "ed25519"
+			},
+			"b59406a55fbe2492022f2951dacd01fc7b400b7b41ec4028b8356161a5a71a33": {
+				"keyid_hash_algorithms": [
+					"sha256"
+				],
+				"keytype": "ed25519",
+				"keyval": {
+					"public": "8656ad20568cd3534c405e4d9a84b0c6e6163f7f66434df77416502835b9b160"
+				},
+				"scheme": "ed25519"
+			},
+			"d792ff8cf3c5d9a8fe0fdfa585b25028fa9f49aa29c62a658140d4b98cc2c917": {
+				"keyid_hash_algorithms": [
+					"sha256"
+				],
+				"keytype": "ed25519",
+				"keyval": {
+					"public": "d482fa4805a50870aa1356ace6b764f7ab47ed4dc38f49b1a189afa25f179e94"
+				},
+				"scheme": "ed25519"
+			}
+		},
+		"roles": {
+			"root": {
+				"keyids": [
+					"160f5ae5e7017bc783bbbe26c5419bbeeeb87f507b140ef474da0517d56549f7"
+				],
+				"threshold": 1
+			},
+			"snapshot": {
+				"keyids": [
+					"d792ff8cf3c5d9a8fe0fdfa585b25028fa9f49aa29c62a658140d4b98cc2c917"
+				],
+				"threshold": 1
+			},
+			"targets": {
+				"keyids": [
+					"b1eb1d74c0e65524c85f96f9badf09a4d2ed1259fb427fc689fc2279ebb4d867"
+				],
+				"threshold": 1
+			},
+			"timestamp": {
+				"keyids": [
+					"b59406a55fbe2492022f2951dacd01fc7b400b7b41ec4028b8356161a5a71a33"
+				],
+				"threshold": 1
+			}
+		},
+		"spec_version": "1.0",
+		"version": 1
+	}
+}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/0/repository/1.snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/0/repository/1.snapshot.json
deleted file mode 100644
index ca3b1f0..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/0/repository/1.snapshot.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"snapshot","expires":"2100-01-01T00:00:00Z","meta":{"root.json":{"hashes":{"sha512":"3501a1e50ea2045abb29c5b4accc1fe95d10c574e2797d0391fb701f4f2d1cb8f343b301bfed5fff0817afeed491e058dfb5ba01e00c916fc81d2e22b7dbde84"},"length":1704,"version":1},"targets.json":{"hashes":{"sha512":"077b1bccf9b08d011e5ed54338408b90cd089ba6bf2f57b9f65eaedb5245ab58a2b2cadbb7c9fe21c4c5935dce4f325e07d732296e2d01af32fe1ae5fa4c4094"},"length":505,"version":1}},"spec_version":"1.0","version":1},"signatures":[{"keyid":"0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7","sig":"8a8d8f27a7b46a41a50c8fb5f9f9a355f1dd9538e29505f2b13c4ae2598084b4d87d1600485eeca23237e70a6ff5f6df1cee42542c929cd3129a00df0f6fc409"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/0/repository/1.targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/0/repository/1.targets.json
deleted file mode 100644
index 54af415..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/0/repository/1.targets.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"targets","expires":"2100-01-01T00:00:00Z","spec_version":"1.0","targets":{"0":{"hashes":{"sha512":"31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"},"length":1}},"version":1},"signatures":[{"keyid":"c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e","sig":"4fbdc8c6e31f63ed182694ae82081e52a68ea563d8e6339e7c247531538af6cfa3e19f7cbcf9d790c6daa57460a60ea74b75eacd1b320d86193be7d36dae3a07"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/0/repository/3501a1e50ea2045abb29c5b4accc1fe95d10c574e2797d0391fb701f4f2d1cb8f343b301bfed5fff0817afeed491e058dfb5ba01e00c916fc81d2e22b7dbde84.root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/0/repository/3501a1e50ea2045abb29c5b4accc1fe95d10c574e2797d0391fb701f4f2d1cb8f343b301bfed5fff0817afeed491e058dfb5ba01e00c916fc81d2e22b7dbde84.root.json
deleted file mode 100644
index faa92c6..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/0/repository/3501a1e50ea2045abb29c5b4accc1fe95d10c574e2797d0391fb701f4f2d1cb8f343b301bfed5fff0817afeed491e058dfb5ba01e00c916fc81d2e22b7dbde84.root.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"root","consistent_snapshot":true,"expires":"2100-01-01T00:00:00Z","keys":{"0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"9d0a51a3b2c40f8bfb6a989787eebfd0b7af521f85ecfa74ce6a3036239b7518"},"scheme":"ed25519"},"4f6cbf068b19f3f876f0919eafb43f65e4899504fc18b822c6e6078b798c986b":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"bca92195f8fb4fe781e59614f819ee983d7398deea249cb93e4517e5a7b285f7"},"scheme":"ed25519"},"c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"03f9d7cb27b94b914fda338371cc525afefddf2075a179dc7927d17b79b453ef"},"scheme":"ed25519"},"c9e06997f3e77a1c999ed35b41899790214e9669b3a5c900238b8ed7260b375b":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"0b4fd984ce719448735d51496f20bfeba6ce076efd3311f828baca405827a680"},"scheme":"ed25519"}},"roles":{"root":{"keyids":["c9e06997f3e77a1c999ed35b41899790214e9669b3a5c900238b8ed7260b375b"],"threshold":1},"snapshot":{"keyids":["0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7"],"threshold":1},"targets":{"keyids":["c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e"],"threshold":1},"timestamp":{"keyids":["4f6cbf068b19f3f876f0919eafb43f65e4899504fc18b822c6e6078b798c986b"],"threshold":1}},"spec_version":"1.0","version":1},"signatures":[{"keyid":"c9e06997f3e77a1c999ed35b41899790214e9669b3a5c900238b8ed7260b375b","sig":"83803c5ce5acb02df6bd8287b16f356b9139f0c9e2696731875361ab422849d7683a0543ba83e55eea15ed77a84f654196e68337c6d2db31ec95d6a8ac7aa10f"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/0/repository/e92754ae7309051b870ced601ab9bb9817b457a7c48f010f6060d32aba60afaa88ac4d79a78bf79a2fe4602c74831fe1d402ddf109314793964486d4017fadee.snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/0/repository/e92754ae7309051b870ced601ab9bb9817b457a7c48f010f6060d32aba60afaa88ac4d79a78bf79a2fe4602c74831fe1d402ddf109314793964486d4017fadee.snapshot.json
deleted file mode 100644
index ca3b1f0..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/0/repository/e92754ae7309051b870ced601ab9bb9817b457a7c48f010f6060d32aba60afaa88ac4d79a78bf79a2fe4602c74831fe1d402ddf109314793964486d4017fadee.snapshot.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"snapshot","expires":"2100-01-01T00:00:00Z","meta":{"root.json":{"hashes":{"sha512":"3501a1e50ea2045abb29c5b4accc1fe95d10c574e2797d0391fb701f4f2d1cb8f343b301bfed5fff0817afeed491e058dfb5ba01e00c916fc81d2e22b7dbde84"},"length":1704,"version":1},"targets.json":{"hashes":{"sha512":"077b1bccf9b08d011e5ed54338408b90cd089ba6bf2f57b9f65eaedb5245ab58a2b2cadbb7c9fe21c4c5935dce4f325e07d732296e2d01af32fe1ae5fa4c4094"},"length":505,"version":1}},"spec_version":"1.0","version":1},"signatures":[{"keyid":"0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7","sig":"8a8d8f27a7b46a41a50c8fb5f9f9a355f1dd9538e29505f2b13c4ae2598084b4d87d1600485eeca23237e70a6ff5f6df1cee42542c929cd3129a00df0f6fc409"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/0/repository/root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/0/repository/root.json
index faa92c6..f02c25b 100644
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/0/repository/root.json
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/0/repository/root.json
@@ -1 +1,83 @@
-{"signed":{"_type":"root","consistent_snapshot":true,"expires":"2100-01-01T00:00:00Z","keys":{"0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"9d0a51a3b2c40f8bfb6a989787eebfd0b7af521f85ecfa74ce6a3036239b7518"},"scheme":"ed25519"},"4f6cbf068b19f3f876f0919eafb43f65e4899504fc18b822c6e6078b798c986b":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"bca92195f8fb4fe781e59614f819ee983d7398deea249cb93e4517e5a7b285f7"},"scheme":"ed25519"},"c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"03f9d7cb27b94b914fda338371cc525afefddf2075a179dc7927d17b79b453ef"},"scheme":"ed25519"},"c9e06997f3e77a1c999ed35b41899790214e9669b3a5c900238b8ed7260b375b":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"0b4fd984ce719448735d51496f20bfeba6ce076efd3311f828baca405827a680"},"scheme":"ed25519"}},"roles":{"root":{"keyids":["c9e06997f3e77a1c999ed35b41899790214e9669b3a5c900238b8ed7260b375b"],"threshold":1},"snapshot":{"keyids":["0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7"],"threshold":1},"targets":{"keyids":["c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e"],"threshold":1},"timestamp":{"keyids":["4f6cbf068b19f3f876f0919eafb43f65e4899504fc18b822c6e6078b798c986b"],"threshold":1}},"spec_version":"1.0","version":1},"signatures":[{"keyid":"c9e06997f3e77a1c999ed35b41899790214e9669b3a5c900238b8ed7260b375b","sig":"83803c5ce5acb02df6bd8287b16f356b9139f0c9e2696731875361ab422849d7683a0543ba83e55eea15ed77a84f654196e68337c6d2db31ec95d6a8ac7aa10f"}]}
\ No newline at end of file
+{
+	"signatures": [
+		{
+			"keyid": "160f5ae5e7017bc783bbbe26c5419bbeeeb87f507b140ef474da0517d56549f7",
+			"sig": "4d84952574a5ef31fa9f8d97a3159305b8b99c011b27327e969d88f8f88a5d56ef4a3d03b19134d0f8a1627de8d03b11847ffb7ed0e15c2fad0d8cfd5a57ae0f"
+		}
+	],
+	"signed": {
+		"_type": "root",
+		"consistent_snapshot": false,
+		"expires": "2100-01-01T00:00:00Z",
+		"keys": {
+			"160f5ae5e7017bc783bbbe26c5419bbeeeb87f507b140ef474da0517d56549f7": {
+				"keyid_hash_algorithms": [
+					"sha256"
+				],
+				"keytype": "ed25519",
+				"keyval": {
+					"public": "bca152214dbfd3e7a1b7a7b3e2cc179fb00520fd7212c8a60ba99f14dfc0e1ca"
+				},
+				"scheme": "ed25519"
+			},
+			"b1eb1d74c0e65524c85f96f9badf09a4d2ed1259fb427fc689fc2279ebb4d867": {
+				"keyid_hash_algorithms": [
+					"sha256"
+				],
+				"keytype": "ed25519",
+				"keyval": {
+					"public": "62f71f99c788f16bcdc8bb252455e3a690350e4ddea5a6aab1f9a3aaabcf369a"
+				},
+				"scheme": "ed25519"
+			},
+			"b59406a55fbe2492022f2951dacd01fc7b400b7b41ec4028b8356161a5a71a33": {
+				"keyid_hash_algorithms": [
+					"sha256"
+				],
+				"keytype": "ed25519",
+				"keyval": {
+					"public": "8656ad20568cd3534c405e4d9a84b0c6e6163f7f66434df77416502835b9b160"
+				},
+				"scheme": "ed25519"
+			},
+			"d792ff8cf3c5d9a8fe0fdfa585b25028fa9f49aa29c62a658140d4b98cc2c917": {
+				"keyid_hash_algorithms": [
+					"sha256"
+				],
+				"keytype": "ed25519",
+				"keyval": {
+					"public": "d482fa4805a50870aa1356ace6b764f7ab47ed4dc38f49b1a189afa25f179e94"
+				},
+				"scheme": "ed25519"
+			}
+		},
+		"roles": {
+			"root": {
+				"keyids": [
+					"160f5ae5e7017bc783bbbe26c5419bbeeeb87f507b140ef474da0517d56549f7"
+				],
+				"threshold": 1
+			},
+			"snapshot": {
+				"keyids": [
+					"d792ff8cf3c5d9a8fe0fdfa585b25028fa9f49aa29c62a658140d4b98cc2c917"
+				],
+				"threshold": 1
+			},
+			"targets": {
+				"keyids": [
+					"b1eb1d74c0e65524c85f96f9badf09a4d2ed1259fb427fc689fc2279ebb4d867"
+				],
+				"threshold": 1
+			},
+			"timestamp": {
+				"keyids": [
+					"b59406a55fbe2492022f2951dacd01fc7b400b7b41ec4028b8356161a5a71a33"
+				],
+				"threshold": 1
+			}
+		},
+		"spec_version": "1.0",
+		"version": 1
+	}
+}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/0/repository/snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/0/repository/snapshot.json
index ca3b1f0..a846dde 100644
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/0/repository/snapshot.json
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/0/repository/snapshot.json
@@ -1 +1,30 @@
-{"signed":{"_type":"snapshot","expires":"2100-01-01T00:00:00Z","meta":{"root.json":{"hashes":{"sha512":"3501a1e50ea2045abb29c5b4accc1fe95d10c574e2797d0391fb701f4f2d1cb8f343b301bfed5fff0817afeed491e058dfb5ba01e00c916fc81d2e22b7dbde84"},"length":1704,"version":1},"targets.json":{"hashes":{"sha512":"077b1bccf9b08d011e5ed54338408b90cd089ba6bf2f57b9f65eaedb5245ab58a2b2cadbb7c9fe21c4c5935dce4f325e07d732296e2d01af32fe1ae5fa4c4094"},"length":505,"version":1}},"spec_version":"1.0","version":1},"signatures":[{"keyid":"0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7","sig":"8a8d8f27a7b46a41a50c8fb5f9f9a355f1dd9538e29505f2b13c4ae2598084b4d87d1600485eeca23237e70a6ff5f6df1cee42542c929cd3129a00df0f6fc409"}]}
\ No newline at end of file
+{
+	"signatures": [
+		{
+			"keyid": "d792ff8cf3c5d9a8fe0fdfa585b25028fa9f49aa29c62a658140d4b98cc2c917",
+			"sig": "0c2eb81db397d04faed82a5b75c4e5980d3fb2dafb13ff6892a7bdc131a6d698fe635ee369a016a4a8e47964a77f56f834cc432853d76feccc70e3fbb9dcc70a"
+		}
+	],
+	"signed": {
+		"_type": "snapshot",
+		"expires": "2100-01-01T00:00:00Z",
+		"meta": {
+			"root.json": {
+				"hashes": {
+					"sha512": "d2a63252478ef0e4baef238f277261b469dac193d731c618194d37492dcd57eb391563fe065c2df054628dc28ae9896f20670a41b1264507a739ff36dab85d9f"
+				},
+				"length": 2118,
+				"version": 1
+			},
+			"targets.json": {
+				"hashes": {
+					"sha512": "257ae8c4653e9ecd1580d0f95ece3cbd03d67ace62e670c0493cde2afde96670a1620fcdf4a2e81ecbf8a67c7b0af9e03e6f9c5c8195d4b1940f7e0e61cc04c8"
+				},
+				"length": 588,
+				"version": 1
+			}
+		},
+		"spec_version": "1.0",
+		"version": 1
+	}
+}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/0/repository/targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/0/repository/targets.json
index 54af415..7e9ac2d 100644
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/0/repository/targets.json
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/0/repository/targets.json
@@ -1 +1,22 @@
-{"signed":{"_type":"targets","expires":"2100-01-01T00:00:00Z","spec_version":"1.0","targets":{"0":{"hashes":{"sha512":"31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"},"length":1}},"version":1},"signatures":[{"keyid":"c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e","sig":"4fbdc8c6e31f63ed182694ae82081e52a68ea563d8e6339e7c247531538af6cfa3e19f7cbcf9d790c6daa57460a60ea74b75eacd1b320d86193be7d36dae3a07"}]}
\ No newline at end of file
+{
+	"signatures": [
+		{
+			"keyid": "b1eb1d74c0e65524c85f96f9badf09a4d2ed1259fb427fc689fc2279ebb4d867",
+			"sig": "4d5c3a5da43f3792d077c1128fa28585982ff2957fae59be02a831fc920d0b91cbeaa99fd6c15066ec4da8bf12f993440a90d1624fd7b0a68070e5d60ed2500f"
+		}
+	],
+	"signed": {
+		"_type": "targets",
+		"expires": "2100-01-01T00:00:00Z",
+		"spec_version": "1.0",
+		"targets": {
+			"0": {
+				"hashes": {
+					"sha512": "31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"
+				},
+				"length": 1
+			}
+		},
+		"version": 1
+	}
+}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/0/repository/targets/0.0 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/0/repository/targets/0
similarity index 100%
rename from client/testdata/go-tuf-transition-M4/consistent-snapshot-false/0/repository/targets/0.0
rename to client/testdata/go-tuf-transition-M4/consistent-snapshot-false/0/repository/targets/0
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/0/repository/targets/31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99.0 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/0/repository/targets/31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99.0
deleted file mode 100644
index c227083..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/0/repository/targets/31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99.0
+++ /dev/null
@@ -1 +0,0 @@
-0
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/0/repository/timestamp.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/0/repository/timestamp.json
index 33faea5..f03cdb6 100644
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/0/repository/timestamp.json
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/0/repository/timestamp.json
@@ -1 +1,23 @@
-{"signed":{"_type":"timestamp","expires":"2100-01-01T00:00:00Z","meta":{"snapshot.json":{"hashes":{"sha512":"e92754ae7309051b870ced601ab9bb9817b457a7c48f010f6060d32aba60afaa88ac4d79a78bf79a2fe4602c74831fe1d402ddf109314793964486d4017fadee"},"length":719,"version":1}},"spec_version":"1.0","version":1},"signatures":[{"keyid":"4f6cbf068b19f3f876f0919eafb43f65e4899504fc18b822c6e6078b798c986b","sig":"af902cb1fb440577037ed550f708dd45ea368636a58b92cbe30cc8922c4791054e7d2fb375e09d297de6f35364e83a49da80189324adcf5842d23a1910278a05"}]}
\ No newline at end of file
+{
+	"signatures": [
+		{
+			"keyid": "b59406a55fbe2492022f2951dacd01fc7b400b7b41ec4028b8356161a5a71a33",
+			"sig": "cff803896a6af526281ad8ae7e3c3039bd850a4f56afc23e50564b9259719d2dd9e2f7956bf89f04d405a6f2c836db0ae98fa21846921bba39ed43adbf728c0e"
+		}
+	],
+	"signed": {
+		"_type": "timestamp",
+		"expires": "2100-01-01T00:00:00Z",
+		"meta": {
+			"snapshot.json": {
+				"hashes": {
+					"sha512": "9f96c109f0d6a53fa01567d1577fdbc02a34c4a755cba6cfb2e3dd9f6c87596755b9285317c6640a139abad25dcbac22da79208f37ecffd17c67fb87fc89ce1c"
+				},
+				"length": 847,
+				"version": 1
+			}
+		},
+		"spec_version": "1.0",
+		"version": 1
+	}
+}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/1/keys/root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/1/keys/root.json
deleted file mode 100644
index 5ad0b04..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/1/keys/root.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
-	"encrypted": false,
-	"data": [
-		{
-			"keytype": "ed25519",
-			"scheme": "ed25519",
-			"keyid_hash_algorithms": [
-				"sha512"
-			],
-			"keyval": {
-				"public": "0b4fd984ce719448735d51496f20bfeba6ce076efd3311f828baca405827a680",
-				"private": "32fc6316916958d56498d557c855bc2d012ea847175ffe03807d06ad401602da0b4fd984ce719448735d51496f20bfeba6ce076efd3311f828baca405827a680"
-			}
-		}
-	]
-}
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/1/keys/snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/1/keys/snapshot.json
deleted file mode 100644
index f0c7638..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/1/keys/snapshot.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
-	"encrypted": false,
-	"data": [
-		{
-			"keytype": "ed25519",
-			"scheme": "ed25519",
-			"keyid_hash_algorithms": [
-				"sha512"
-			],
-			"keyval": {
-				"public": "9d0a51a3b2c40f8bfb6a989787eebfd0b7af521f85ecfa74ce6a3036239b7518",
-				"private": "6a96f1a4d2193a181511ac4ba1b3ae8e92de8b9f14d76ed10139d705d2d57e5b9d0a51a3b2c40f8bfb6a989787eebfd0b7af521f85ecfa74ce6a3036239b7518"
-			}
-		}
-	]
-}
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/1/keys/targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/1/keys/targets.json
deleted file mode 100644
index ea04176..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/1/keys/targets.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
-	"encrypted": false,
-	"data": [
-		{
-			"keytype": "ed25519",
-			"scheme": "ed25519",
-			"keyid_hash_algorithms": [
-				"sha512"
-			],
-			"keyval": {
-				"public": "03f9d7cb27b94b914fda338371cc525afefddf2075a179dc7927d17b79b453ef",
-				"private": "30d93aa3b83a5672dabfe4e8a0175491ae5051d02d6e049952c065169fe04b6c03f9d7cb27b94b914fda338371cc525afefddf2075a179dc7927d17b79b453ef"
-			}
-		}
-	]
-}
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/1/keys/timestamp.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/1/keys/timestamp.json
deleted file mode 100644
index c6e5326..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/1/keys/timestamp.json
+++ /dev/null
@@ -1,27 +0,0 @@
-{
-	"encrypted": false,
-	"data": [
-		{
-			"keytype": "ed25519",
-			"scheme": "ed25519",
-			"keyid_hash_algorithms": [
-				"sha512"
-			],
-			"keyval": {
-				"public": "bca92195f8fb4fe781e59614f819ee983d7398deea249cb93e4517e5a7b285f7",
-				"private": "55c510bcbe6892eb536e6ac632317f6b0651452e9a2519472a28fa2dc4d8dfdbbca92195f8fb4fe781e59614f819ee983d7398deea249cb93e4517e5a7b285f7"
-			}
-		},
-		{
-			"keytype": "ed25519",
-			"scheme": "ed25519",
-			"keyid_hash_algorithms": [
-				"sha512"
-			],
-			"keyval": {
-				"public": "814f81f40a031f2543a29860dc1c3666416dbc424ae7c8dd79d3af3c61577e61",
-				"private": "58b4c4368feeaa3c217caa454deee36f44edaf44f92fa15c22ed8156edc9bd29814f81f40a031f2543a29860dc1c3666416dbc424ae7c8dd79d3af3c61577e61"
-			}
-		}
-	]
-}
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/1/repository/077b1bccf9b08d011e5ed54338408b90cd089ba6bf2f57b9f65eaedb5245ab58a2b2cadbb7c9fe21c4c5935dce4f325e07d732296e2d01af32fe1ae5fa4c4094.targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/1/repository/077b1bccf9b08d011e5ed54338408b90cd089ba6bf2f57b9f65eaedb5245ab58a2b2cadbb7c9fe21c4c5935dce4f325e07d732296e2d01af32fe1ae5fa4c4094.targets.json
deleted file mode 100644
index 54af415..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/1/repository/077b1bccf9b08d011e5ed54338408b90cd089ba6bf2f57b9f65eaedb5245ab58a2b2cadbb7c9fe21c4c5935dce4f325e07d732296e2d01af32fe1ae5fa4c4094.targets.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"targets","expires":"2100-01-01T00:00:00Z","spec_version":"1.0","targets":{"0":{"hashes":{"sha512":"31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"},"length":1}},"version":1},"signatures":[{"keyid":"c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e","sig":"4fbdc8c6e31f63ed182694ae82081e52a68ea563d8e6339e7c247531538af6cfa3e19f7cbcf9d790c6daa57460a60ea74b75eacd1b320d86193be7d36dae3a07"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/1/repository/1.root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/1/repository/1.root.json
deleted file mode 100644
index faa92c6..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/1/repository/1.root.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"root","consistent_snapshot":true,"expires":"2100-01-01T00:00:00Z","keys":{"0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"9d0a51a3b2c40f8bfb6a989787eebfd0b7af521f85ecfa74ce6a3036239b7518"},"scheme":"ed25519"},"4f6cbf068b19f3f876f0919eafb43f65e4899504fc18b822c6e6078b798c986b":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"bca92195f8fb4fe781e59614f819ee983d7398deea249cb93e4517e5a7b285f7"},"scheme":"ed25519"},"c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"03f9d7cb27b94b914fda338371cc525afefddf2075a179dc7927d17b79b453ef"},"scheme":"ed25519"},"c9e06997f3e77a1c999ed35b41899790214e9669b3a5c900238b8ed7260b375b":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"0b4fd984ce719448735d51496f20bfeba6ce076efd3311f828baca405827a680"},"scheme":"ed25519"}},"roles":{"root":{"keyids":["c9e06997f3e77a1c999ed35b41899790214e9669b3a5c900238b8ed7260b375b"],"threshold":1},"snapshot":{"keyids":["0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7"],"threshold":1},"targets":{"keyids":["c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e"],"threshold":1},"timestamp":{"keyids":["4f6cbf068b19f3f876f0919eafb43f65e4899504fc18b822c6e6078b798c986b"],"threshold":1}},"spec_version":"1.0","version":1},"signatures":[{"keyid":"c9e06997f3e77a1c999ed35b41899790214e9669b3a5c900238b8ed7260b375b","sig":"83803c5ce5acb02df6bd8287b16f356b9139f0c9e2696731875361ab422849d7683a0543ba83e55eea15ed77a84f654196e68337c6d2db31ec95d6a8ac7aa10f"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/1/repository/1.root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/1/repository/1.root.json
new file mode 120000
index 0000000..0ffd2b6
--- /dev/null
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/1/repository/1.root.json
@@ -0,0 +1 @@
+../../0/repository/1.root.json
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/1/repository/1.snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/1/repository/1.snapshot.json
deleted file mode 100644
index ca3b1f0..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/1/repository/1.snapshot.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"snapshot","expires":"2100-01-01T00:00:00Z","meta":{"root.json":{"hashes":{"sha512":"3501a1e50ea2045abb29c5b4accc1fe95d10c574e2797d0391fb701f4f2d1cb8f343b301bfed5fff0817afeed491e058dfb5ba01e00c916fc81d2e22b7dbde84"},"length":1704,"version":1},"targets.json":{"hashes":{"sha512":"077b1bccf9b08d011e5ed54338408b90cd089ba6bf2f57b9f65eaedb5245ab58a2b2cadbb7c9fe21c4c5935dce4f325e07d732296e2d01af32fe1ae5fa4c4094"},"length":505,"version":1}},"spec_version":"1.0","version":1},"signatures":[{"keyid":"0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7","sig":"8a8d8f27a7b46a41a50c8fb5f9f9a355f1dd9538e29505f2b13c4ae2598084b4d87d1600485eeca23237e70a6ff5f6df1cee42542c929cd3129a00df0f6fc409"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/1/repository/1.targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/1/repository/1.targets.json
deleted file mode 100644
index 54af415..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/1/repository/1.targets.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"targets","expires":"2100-01-01T00:00:00Z","spec_version":"1.0","targets":{"0":{"hashes":{"sha512":"31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"},"length":1}},"version":1},"signatures":[{"keyid":"c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e","sig":"4fbdc8c6e31f63ed182694ae82081e52a68ea563d8e6339e7c247531538af6cfa3e19f7cbcf9d790c6daa57460a60ea74b75eacd1b320d86193be7d36dae3a07"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/1/repository/17957fb35719cdf1b42f9a82e53981433c76be22ceefe0c1f27c23345d99491daecc0b3979bb963c716aaeb6c52502f5e4d5bd63a3406352a0d39f2b1fe90472.snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/1/repository/17957fb35719cdf1b42f9a82e53981433c76be22ceefe0c1f27c23345d99491daecc0b3979bb963c716aaeb6c52502f5e4d5bd63a3406352a0d39f2b1fe90472.snapshot.json
deleted file mode 100644
index 453e1ac..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/1/repository/17957fb35719cdf1b42f9a82e53981433c76be22ceefe0c1f27c23345d99491daecc0b3979bb963c716aaeb6c52502f5e4d5bd63a3406352a0d39f2b1fe90472.snapshot.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"snapshot","expires":"2100-01-01T00:00:00Z","meta":{"root.json":{"hashes":{"sha512":"9b995f439e9d7d53faa975ee5715d3a9f32cdd4b83a72314a3cdbe0e823faae6bd424a4a961b9fff225e59d7b6d1ee4b08fad1e289b280a2c2e13f384ec2eb8c"},"length":1704,"version":2},"targets.json":{"hashes":{"sha512":"c944d09e8c5efda309e1a4498277af737b97dc8823a659ed3a60c4d011dcdc729797fd1a6f6d963b93bc2a30414be3f88481837c2b17d14f072b39f2191866a2"},"length":673,"version":2}},"spec_version":"1.0","version":2},"signatures":[{"keyid":"0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7","sig":"f6e31e7bb5789f7c18fcaadbe6cca65c9b874fe67255291bcf56641a11a7b764939602b31aa928b2e02a87fcefbc8ef91d8de19ebd61007818eebafa76c6b701"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/1/repository/2.root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/1/repository/2.root.json
index f2c637d..7c2571f 100644
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/1/repository/2.root.json
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/1/repository/2.root.json
@@ -1 +1,87 @@
-{"signed":{"_type":"root","consistent_snapshot":true,"expires":"2100-01-01T00:00:00Z","keys":{"0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"9d0a51a3b2c40f8bfb6a989787eebfd0b7af521f85ecfa74ce6a3036239b7518"},"scheme":"ed25519"},"c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"03f9d7cb27b94b914fda338371cc525afefddf2075a179dc7927d17b79b453ef"},"scheme":"ed25519"},"c9e06997f3e77a1c999ed35b41899790214e9669b3a5c900238b8ed7260b375b":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"0b4fd984ce719448735d51496f20bfeba6ce076efd3311f828baca405827a680"},"scheme":"ed25519"},"cf0618db7ba21084b308c7a3a46219aff05e2ec39d48d55baac5e0c9ae5f9a47":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"814f81f40a031f2543a29860dc1c3666416dbc424ae7c8dd79d3af3c61577e61"},"scheme":"ed25519"}},"roles":{"root":{"keyids":["c9e06997f3e77a1c999ed35b41899790214e9669b3a5c900238b8ed7260b375b"],"threshold":1},"snapshot":{"keyids":["0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7"],"threshold":1},"targets":{"keyids":["c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e"],"threshold":1},"timestamp":{"keyids":["cf0618db7ba21084b308c7a3a46219aff05e2ec39d48d55baac5e0c9ae5f9a47"],"threshold":1}},"spec_version":"1.0","version":2},"signatures":[{"keyid":"c9e06997f3e77a1c999ed35b41899790214e9669b3a5c900238b8ed7260b375b","sig":"55463ef12660d470109117b2873e1c018aaf606b9b7918ec6362929db5312665a8697c83510212bac5ef236284342922a96a4ce88122470851a7b7cb7536a107"}]}
\ No newline at end of file
+{
+	"signatures": [
+		{
+			"keyid": "160f5ae5e7017bc783bbbe26c5419bbeeeb87f507b140ef474da0517d56549f7",
+			"sig": "2c7952346c8f899b15f33048bfc22db078a2ee5df5ae4dfc1c7e4eb303ee5dd99b6957d8bddd39ddddbc2e49b0abd76e27c0b0439984ae36e23db5bafb51d104"
+		},
+		{
+			"keyid": "4c663b6d0b9f2c74a19b6791c1417c8d1916e2d84461be1a8148e4386c89582d",
+			"sig": "a9ae363c57c79235e0fb646f364a747e88d61a25eef9e92e44f13f6849bb62ee1a91db6ba021cbef330e9a5b3e2131a45b5922bbd1a30596a11973743aedc404"
+		}
+	],
+	"signed": {
+		"_type": "root",
+		"consistent_snapshot": false,
+		"expires": "2100-01-01T00:00:00Z",
+		"keys": {
+			"4c663b6d0b9f2c74a19b6791c1417c8d1916e2d84461be1a8148e4386c89582d": {
+				"keyid_hash_algorithms": [
+					"sha256"
+				],
+				"keytype": "ed25519",
+				"keyval": {
+					"public": "153986a7370e002f377dd68797e7466c421180c1571e233de2f8ab41c8af4f54"
+				},
+				"scheme": "ed25519"
+			},
+			"b1eb1d74c0e65524c85f96f9badf09a4d2ed1259fb427fc689fc2279ebb4d867": {
+				"keyid_hash_algorithms": [
+					"sha256"
+				],
+				"keytype": "ed25519",
+				"keyval": {
+					"public": "62f71f99c788f16bcdc8bb252455e3a690350e4ddea5a6aab1f9a3aaabcf369a"
+				},
+				"scheme": "ed25519"
+			},
+			"b59406a55fbe2492022f2951dacd01fc7b400b7b41ec4028b8356161a5a71a33": {
+				"keyid_hash_algorithms": [
+					"sha256"
+				],
+				"keytype": "ed25519",
+				"keyval": {
+					"public": "8656ad20568cd3534c405e4d9a84b0c6e6163f7f66434df77416502835b9b160"
+				},
+				"scheme": "ed25519"
+			},
+			"d792ff8cf3c5d9a8fe0fdfa585b25028fa9f49aa29c62a658140d4b98cc2c917": {
+				"keyid_hash_algorithms": [
+					"sha256"
+				],
+				"keytype": "ed25519",
+				"keyval": {
+					"public": "d482fa4805a50870aa1356ace6b764f7ab47ed4dc38f49b1a189afa25f179e94"
+				},
+				"scheme": "ed25519"
+			}
+		},
+		"roles": {
+			"root": {
+				"keyids": [
+					"4c663b6d0b9f2c74a19b6791c1417c8d1916e2d84461be1a8148e4386c89582d"
+				],
+				"threshold": 1
+			},
+			"snapshot": {
+				"keyids": [
+					"d792ff8cf3c5d9a8fe0fdfa585b25028fa9f49aa29c62a658140d4b98cc2c917"
+				],
+				"threshold": 1
+			},
+			"targets": {
+				"keyids": [
+					"b1eb1d74c0e65524c85f96f9badf09a4d2ed1259fb427fc689fc2279ebb4d867"
+				],
+				"threshold": 1
+			},
+			"timestamp": {
+				"keyids": [
+					"b59406a55fbe2492022f2951dacd01fc7b400b7b41ec4028b8356161a5a71a33"
+				],
+				"threshold": 1
+			}
+		},
+		"spec_version": "1.0",
+		"version": 2
+	}
+}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/1/repository/2.snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/1/repository/2.snapshot.json
deleted file mode 100644
index 453e1ac..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/1/repository/2.snapshot.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"snapshot","expires":"2100-01-01T00:00:00Z","meta":{"root.json":{"hashes":{"sha512":"9b995f439e9d7d53faa975ee5715d3a9f32cdd4b83a72314a3cdbe0e823faae6bd424a4a961b9fff225e59d7b6d1ee4b08fad1e289b280a2c2e13f384ec2eb8c"},"length":1704,"version":2},"targets.json":{"hashes":{"sha512":"c944d09e8c5efda309e1a4498277af737b97dc8823a659ed3a60c4d011dcdc729797fd1a6f6d963b93bc2a30414be3f88481837c2b17d14f072b39f2191866a2"},"length":673,"version":2}},"spec_version":"1.0","version":2},"signatures":[{"keyid":"0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7","sig":"f6e31e7bb5789f7c18fcaadbe6cca65c9b874fe67255291bcf56641a11a7b764939602b31aa928b2e02a87fcefbc8ef91d8de19ebd61007818eebafa76c6b701"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/1/repository/2.targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/1/repository/2.targets.json
deleted file mode 100644
index e82b814..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/1/repository/2.targets.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"targets","expires":"2100-01-01T00:00:00Z","spec_version":"1.0","targets":{"0":{"hashes":{"sha512":"31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"},"length":1},"1":{"hashes":{"sha512":"4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a"},"length":1}},"version":2},"signatures":[{"keyid":"c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e","sig":"e50e81453ed9416a8877fa83a7e8dcc8d2ce73b38808986d420fc940ba6fa43c60b53d1a00caba2ae5a06ff8421472c9c4a09efee56cbe63a683b01f15f4e10a"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/1/repository/3501a1e50ea2045abb29c5b4accc1fe95d10c574e2797d0391fb701f4f2d1cb8f343b301bfed5fff0817afeed491e058dfb5ba01e00c916fc81d2e22b7dbde84.root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/1/repository/3501a1e50ea2045abb29c5b4accc1fe95d10c574e2797d0391fb701f4f2d1cb8f343b301bfed5fff0817afeed491e058dfb5ba01e00c916fc81d2e22b7dbde84.root.json
deleted file mode 100644
index faa92c6..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/1/repository/3501a1e50ea2045abb29c5b4accc1fe95d10c574e2797d0391fb701f4f2d1cb8f343b301bfed5fff0817afeed491e058dfb5ba01e00c916fc81d2e22b7dbde84.root.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"root","consistent_snapshot":true,"expires":"2100-01-01T00:00:00Z","keys":{"0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"9d0a51a3b2c40f8bfb6a989787eebfd0b7af521f85ecfa74ce6a3036239b7518"},"scheme":"ed25519"},"4f6cbf068b19f3f876f0919eafb43f65e4899504fc18b822c6e6078b798c986b":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"bca92195f8fb4fe781e59614f819ee983d7398deea249cb93e4517e5a7b285f7"},"scheme":"ed25519"},"c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"03f9d7cb27b94b914fda338371cc525afefddf2075a179dc7927d17b79b453ef"},"scheme":"ed25519"},"c9e06997f3e77a1c999ed35b41899790214e9669b3a5c900238b8ed7260b375b":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"0b4fd984ce719448735d51496f20bfeba6ce076efd3311f828baca405827a680"},"scheme":"ed25519"}},"roles":{"root":{"keyids":["c9e06997f3e77a1c999ed35b41899790214e9669b3a5c900238b8ed7260b375b"],"threshold":1},"snapshot":{"keyids":["0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7"],"threshold":1},"targets":{"keyids":["c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e"],"threshold":1},"timestamp":{"keyids":["4f6cbf068b19f3f876f0919eafb43f65e4899504fc18b822c6e6078b798c986b"],"threshold":1}},"spec_version":"1.0","version":1},"signatures":[{"keyid":"c9e06997f3e77a1c999ed35b41899790214e9669b3a5c900238b8ed7260b375b","sig":"83803c5ce5acb02df6bd8287b16f356b9139f0c9e2696731875361ab422849d7683a0543ba83e55eea15ed77a84f654196e68337c6d2db31ec95d6a8ac7aa10f"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/1/repository/9b995f439e9d7d53faa975ee5715d3a9f32cdd4b83a72314a3cdbe0e823faae6bd424a4a961b9fff225e59d7b6d1ee4b08fad1e289b280a2c2e13f384ec2eb8c.root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/1/repository/9b995f439e9d7d53faa975ee5715d3a9f32cdd4b83a72314a3cdbe0e823faae6bd424a4a961b9fff225e59d7b6d1ee4b08fad1e289b280a2c2e13f384ec2eb8c.root.json
deleted file mode 100644
index f2c637d..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/1/repository/9b995f439e9d7d53faa975ee5715d3a9f32cdd4b83a72314a3cdbe0e823faae6bd424a4a961b9fff225e59d7b6d1ee4b08fad1e289b280a2c2e13f384ec2eb8c.root.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"root","consistent_snapshot":true,"expires":"2100-01-01T00:00:00Z","keys":{"0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"9d0a51a3b2c40f8bfb6a989787eebfd0b7af521f85ecfa74ce6a3036239b7518"},"scheme":"ed25519"},"c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"03f9d7cb27b94b914fda338371cc525afefddf2075a179dc7927d17b79b453ef"},"scheme":"ed25519"},"c9e06997f3e77a1c999ed35b41899790214e9669b3a5c900238b8ed7260b375b":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"0b4fd984ce719448735d51496f20bfeba6ce076efd3311f828baca405827a680"},"scheme":"ed25519"},"cf0618db7ba21084b308c7a3a46219aff05e2ec39d48d55baac5e0c9ae5f9a47":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"814f81f40a031f2543a29860dc1c3666416dbc424ae7c8dd79d3af3c61577e61"},"scheme":"ed25519"}},"roles":{"root":{"keyids":["c9e06997f3e77a1c999ed35b41899790214e9669b3a5c900238b8ed7260b375b"],"threshold":1},"snapshot":{"keyids":["0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7"],"threshold":1},"targets":{"keyids":["c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e"],"threshold":1},"timestamp":{"keyids":["cf0618db7ba21084b308c7a3a46219aff05e2ec39d48d55baac5e0c9ae5f9a47"],"threshold":1}},"spec_version":"1.0","version":2},"signatures":[{"keyid":"c9e06997f3e77a1c999ed35b41899790214e9669b3a5c900238b8ed7260b375b","sig":"55463ef12660d470109117b2873e1c018aaf606b9b7918ec6362929db5312665a8697c83510212bac5ef236284342922a96a4ce88122470851a7b7cb7536a107"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/1/repository/c944d09e8c5efda309e1a4498277af737b97dc8823a659ed3a60c4d011dcdc729797fd1a6f6d963b93bc2a30414be3f88481837c2b17d14f072b39f2191866a2.targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/1/repository/c944d09e8c5efda309e1a4498277af737b97dc8823a659ed3a60c4d011dcdc729797fd1a6f6d963b93bc2a30414be3f88481837c2b17d14f072b39f2191866a2.targets.json
deleted file mode 100644
index e82b814..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/1/repository/c944d09e8c5efda309e1a4498277af737b97dc8823a659ed3a60c4d011dcdc729797fd1a6f6d963b93bc2a30414be3f88481837c2b17d14f072b39f2191866a2.targets.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"targets","expires":"2100-01-01T00:00:00Z","spec_version":"1.0","targets":{"0":{"hashes":{"sha512":"31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"},"length":1},"1":{"hashes":{"sha512":"4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a"},"length":1}},"version":2},"signatures":[{"keyid":"c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e","sig":"e50e81453ed9416a8877fa83a7e8dcc8d2ce73b38808986d420fc940ba6fa43c60b53d1a00caba2ae5a06ff8421472c9c4a09efee56cbe63a683b01f15f4e10a"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/1/repository/e92754ae7309051b870ced601ab9bb9817b457a7c48f010f6060d32aba60afaa88ac4d79a78bf79a2fe4602c74831fe1d402ddf109314793964486d4017fadee.snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/1/repository/e92754ae7309051b870ced601ab9bb9817b457a7c48f010f6060d32aba60afaa88ac4d79a78bf79a2fe4602c74831fe1d402ddf109314793964486d4017fadee.snapshot.json
deleted file mode 100644
index ca3b1f0..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/1/repository/e92754ae7309051b870ced601ab9bb9817b457a7c48f010f6060d32aba60afaa88ac4d79a78bf79a2fe4602c74831fe1d402ddf109314793964486d4017fadee.snapshot.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"snapshot","expires":"2100-01-01T00:00:00Z","meta":{"root.json":{"hashes":{"sha512":"3501a1e50ea2045abb29c5b4accc1fe95d10c574e2797d0391fb701f4f2d1cb8f343b301bfed5fff0817afeed491e058dfb5ba01e00c916fc81d2e22b7dbde84"},"length":1704,"version":1},"targets.json":{"hashes":{"sha512":"077b1bccf9b08d011e5ed54338408b90cd089ba6bf2f57b9f65eaedb5245ab58a2b2cadbb7c9fe21c4c5935dce4f325e07d732296e2d01af32fe1ae5fa4c4094"},"length":505,"version":1}},"spec_version":"1.0","version":1},"signatures":[{"keyid":"0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7","sig":"8a8d8f27a7b46a41a50c8fb5f9f9a355f1dd9538e29505f2b13c4ae2598084b4d87d1600485eeca23237e70a6ff5f6df1cee42542c929cd3129a00df0f6fc409"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/1/repository/root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/1/repository/root.json
index f2c637d..7c2571f 100644
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/1/repository/root.json
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/1/repository/root.json
@@ -1 +1,87 @@
-{"signed":{"_type":"root","consistent_snapshot":true,"expires":"2100-01-01T00:00:00Z","keys":{"0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"9d0a51a3b2c40f8bfb6a989787eebfd0b7af521f85ecfa74ce6a3036239b7518"},"scheme":"ed25519"},"c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"03f9d7cb27b94b914fda338371cc525afefddf2075a179dc7927d17b79b453ef"},"scheme":"ed25519"},"c9e06997f3e77a1c999ed35b41899790214e9669b3a5c900238b8ed7260b375b":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"0b4fd984ce719448735d51496f20bfeba6ce076efd3311f828baca405827a680"},"scheme":"ed25519"},"cf0618db7ba21084b308c7a3a46219aff05e2ec39d48d55baac5e0c9ae5f9a47":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"814f81f40a031f2543a29860dc1c3666416dbc424ae7c8dd79d3af3c61577e61"},"scheme":"ed25519"}},"roles":{"root":{"keyids":["c9e06997f3e77a1c999ed35b41899790214e9669b3a5c900238b8ed7260b375b"],"threshold":1},"snapshot":{"keyids":["0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7"],"threshold":1},"targets":{"keyids":["c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e"],"threshold":1},"timestamp":{"keyids":["cf0618db7ba21084b308c7a3a46219aff05e2ec39d48d55baac5e0c9ae5f9a47"],"threshold":1}},"spec_version":"1.0","version":2},"signatures":[{"keyid":"c9e06997f3e77a1c999ed35b41899790214e9669b3a5c900238b8ed7260b375b","sig":"55463ef12660d470109117b2873e1c018aaf606b9b7918ec6362929db5312665a8697c83510212bac5ef236284342922a96a4ce88122470851a7b7cb7536a107"}]}
\ No newline at end of file
+{
+	"signatures": [
+		{
+			"keyid": "160f5ae5e7017bc783bbbe26c5419bbeeeb87f507b140ef474da0517d56549f7",
+			"sig": "2c7952346c8f899b15f33048bfc22db078a2ee5df5ae4dfc1c7e4eb303ee5dd99b6957d8bddd39ddddbc2e49b0abd76e27c0b0439984ae36e23db5bafb51d104"
+		},
+		{
+			"keyid": "4c663b6d0b9f2c74a19b6791c1417c8d1916e2d84461be1a8148e4386c89582d",
+			"sig": "a9ae363c57c79235e0fb646f364a747e88d61a25eef9e92e44f13f6849bb62ee1a91db6ba021cbef330e9a5b3e2131a45b5922bbd1a30596a11973743aedc404"
+		}
+	],
+	"signed": {
+		"_type": "root",
+		"consistent_snapshot": false,
+		"expires": "2100-01-01T00:00:00Z",
+		"keys": {
+			"4c663b6d0b9f2c74a19b6791c1417c8d1916e2d84461be1a8148e4386c89582d": {
+				"keyid_hash_algorithms": [
+					"sha256"
+				],
+				"keytype": "ed25519",
+				"keyval": {
+					"public": "153986a7370e002f377dd68797e7466c421180c1571e233de2f8ab41c8af4f54"
+				},
+				"scheme": "ed25519"
+			},
+			"b1eb1d74c0e65524c85f96f9badf09a4d2ed1259fb427fc689fc2279ebb4d867": {
+				"keyid_hash_algorithms": [
+					"sha256"
+				],
+				"keytype": "ed25519",
+				"keyval": {
+					"public": "62f71f99c788f16bcdc8bb252455e3a690350e4ddea5a6aab1f9a3aaabcf369a"
+				},
+				"scheme": "ed25519"
+			},
+			"b59406a55fbe2492022f2951dacd01fc7b400b7b41ec4028b8356161a5a71a33": {
+				"keyid_hash_algorithms": [
+					"sha256"
+				],
+				"keytype": "ed25519",
+				"keyval": {
+					"public": "8656ad20568cd3534c405e4d9a84b0c6e6163f7f66434df77416502835b9b160"
+				},
+				"scheme": "ed25519"
+			},
+			"d792ff8cf3c5d9a8fe0fdfa585b25028fa9f49aa29c62a658140d4b98cc2c917": {
+				"keyid_hash_algorithms": [
+					"sha256"
+				],
+				"keytype": "ed25519",
+				"keyval": {
+					"public": "d482fa4805a50870aa1356ace6b764f7ab47ed4dc38f49b1a189afa25f179e94"
+				},
+				"scheme": "ed25519"
+			}
+		},
+		"roles": {
+			"root": {
+				"keyids": [
+					"4c663b6d0b9f2c74a19b6791c1417c8d1916e2d84461be1a8148e4386c89582d"
+				],
+				"threshold": 1
+			},
+			"snapshot": {
+				"keyids": [
+					"d792ff8cf3c5d9a8fe0fdfa585b25028fa9f49aa29c62a658140d4b98cc2c917"
+				],
+				"threshold": 1
+			},
+			"targets": {
+				"keyids": [
+					"b1eb1d74c0e65524c85f96f9badf09a4d2ed1259fb427fc689fc2279ebb4d867"
+				],
+				"threshold": 1
+			},
+			"timestamp": {
+				"keyids": [
+					"b59406a55fbe2492022f2951dacd01fc7b400b7b41ec4028b8356161a5a71a33"
+				],
+				"threshold": 1
+			}
+		},
+		"spec_version": "1.0",
+		"version": 2
+	}
+}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/1/repository/snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/1/repository/snapshot.json
index 453e1ac..aee62e6 100644
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/1/repository/snapshot.json
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/1/repository/snapshot.json
@@ -1 +1,30 @@
-{"signed":{"_type":"snapshot","expires":"2100-01-01T00:00:00Z","meta":{"root.json":{"hashes":{"sha512":"9b995f439e9d7d53faa975ee5715d3a9f32cdd4b83a72314a3cdbe0e823faae6bd424a4a961b9fff225e59d7b6d1ee4b08fad1e289b280a2c2e13f384ec2eb8c"},"length":1704,"version":2},"targets.json":{"hashes":{"sha512":"c944d09e8c5efda309e1a4498277af737b97dc8823a659ed3a60c4d011dcdc729797fd1a6f6d963b93bc2a30414be3f88481837c2b17d14f072b39f2191866a2"},"length":673,"version":2}},"spec_version":"1.0","version":2},"signatures":[{"keyid":"0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7","sig":"f6e31e7bb5789f7c18fcaadbe6cca65c9b874fe67255291bcf56641a11a7b764939602b31aa928b2e02a87fcefbc8ef91d8de19ebd61007818eebafa76c6b701"}]}
\ No newline at end of file
+{
+	"signatures": [
+		{
+			"keyid": "d792ff8cf3c5d9a8fe0fdfa585b25028fa9f49aa29c62a658140d4b98cc2c917",
+			"sig": "3b170ced5f99155d617d933721eb8b1bc37d53bacd13787495f5b65f8e217898b0432391ddc76ddf350d367a590f39c44ef89350c67119d7c3cf869375da6004"
+		}
+	],
+	"signed": {
+		"_type": "snapshot",
+		"expires": "2100-01-01T00:00:00Z",
+		"meta": {
+			"root.json": {
+				"hashes": {
+					"sha512": "fac18f6f1804305c960c48700111947a77b6249659a43ebc1caffb701784a16a3967bb640b7ad612235f6b5078b9c9f178b0cb5acaf9d2a49cabd4bd8ec418de"
+				},
+				"length": 2348,
+				"version": 2
+			},
+			"targets.json": {
+				"hashes": {
+					"sha512": "0fa0d9f7f64ffaf2a52bda808851c71ae87c7c47aaec4ce2ba28c19123a0d4394156dce76012a5253c1c02ccdf88843cdb980042eab746e1a93ce2541f89d91c"
+				},
+				"length": 789,
+				"version": 2
+			}
+		},
+		"spec_version": "1.0",
+		"version": 2
+	}
+}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/1/repository/targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/1/repository/targets.json
index e82b814..eb11538 100644
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/1/repository/targets.json
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/1/repository/targets.json
@@ -1 +1,28 @@
-{"signed":{"_type":"targets","expires":"2100-01-01T00:00:00Z","spec_version":"1.0","targets":{"0":{"hashes":{"sha512":"31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"},"length":1},"1":{"hashes":{"sha512":"4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a"},"length":1}},"version":2},"signatures":[{"keyid":"c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e","sig":"e50e81453ed9416a8877fa83a7e8dcc8d2ce73b38808986d420fc940ba6fa43c60b53d1a00caba2ae5a06ff8421472c9c4a09efee56cbe63a683b01f15f4e10a"}]}
\ No newline at end of file
+{
+	"signatures": [
+		{
+			"keyid": "b1eb1d74c0e65524c85f96f9badf09a4d2ed1259fb427fc689fc2279ebb4d867",
+			"sig": "81bcf5921834a20b8b0946815ad4316f43ffce20b3793e6653dc5fd4b98f1c6318ce2243948574e82414a102717a6f2d731250b3191c54abc8391fd867503e0b"
+		}
+	],
+	"signed": {
+		"_type": "targets",
+		"expires": "2100-01-01T00:00:00Z",
+		"spec_version": "1.0",
+		"targets": {
+			"0": {
+				"hashes": {
+					"sha512": "31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"
+				},
+				"length": 1
+			},
+			"1": {
+				"hashes": {
+					"sha512": "4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a"
+				},
+				"length": 1
+			}
+		},
+		"version": 2
+	}
+}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/1/repository/targets/0 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/1/repository/targets/0
new file mode 120000
index 0000000..aced687
--- /dev/null
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/1/repository/targets/0
@@ -0,0 +1 @@
+../../../0/repository/targets/0
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/1/repository/targets/0.0 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/1/repository/targets/0.0
deleted file mode 100644
index c227083..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/1/repository/targets/0.0
+++ /dev/null
@@ -1 +0,0 @@
-0
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/1/repository/targets/0.1 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/1/repository/targets/1
similarity index 100%
rename from client/testdata/go-tuf-transition-M4/consistent-snapshot-false/1/repository/targets/0.1
rename to client/testdata/go-tuf-transition-M4/consistent-snapshot-false/1/repository/targets/1
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/1/repository/targets/31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99.0 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/1/repository/targets/31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99.0
deleted file mode 100644
index c227083..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/1/repository/targets/31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99.0
+++ /dev/null
@@ -1 +0,0 @@
-0
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/1/repository/targets/4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a.1 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/1/repository/targets/4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a.1
deleted file mode 100644
index 56a6051..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/1/repository/targets/4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a.1
+++ /dev/null
@@ -1 +0,0 @@
-1
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/1/repository/timestamp.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/1/repository/timestamp.json
index 30ed1ba..e359652 100644
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/1/repository/timestamp.json
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/1/repository/timestamp.json
@@ -1 +1,23 @@
-{"signed":{"_type":"timestamp","expires":"2100-01-01T00:00:00Z","meta":{"snapshot.json":{"hashes":{"sha512":"17957fb35719cdf1b42f9a82e53981433c76be22ceefe0c1f27c23345d99491daecc0b3979bb963c716aaeb6c52502f5e4d5bd63a3406352a0d39f2b1fe90472"},"length":719,"version":2}},"spec_version":"1.0","version":2},"signatures":[{"keyid":"cf0618db7ba21084b308c7a3a46219aff05e2ec39d48d55baac5e0c9ae5f9a47","sig":"245186eb1568ca8122f54b8a5e020b5ff364127ee43016b388624cfa6d8bda123713fc32e062a68ab82041b0554690c06b1460e0cd462cdb249b75d14f557805"}]}
\ No newline at end of file
+{
+	"signatures": [
+		{
+			"keyid": "b59406a55fbe2492022f2951dacd01fc7b400b7b41ec4028b8356161a5a71a33",
+			"sig": "df50c702b51dec901cd5d6f548b4c551ab578aaf8e791d7d3fc85697f291e6102c64e9d758fb4291d09dd28bcfd442cdb7598167821b7b50247b4af3f763780c"
+		}
+	],
+	"signed": {
+		"_type": "timestamp",
+		"expires": "2100-01-01T00:00:00Z",
+		"meta": {
+			"snapshot.json": {
+				"hashes": {
+					"sha512": "c150afd2864d6b6f0f14e4549c592418abf4b390ca6c88f0a50c4e615f54cc449cd9cf9dfbc227bea900fd3007921fb64ff6fd30bf5cfa2877682af66368a2f6"
+				},
+				"length": 847,
+				"version": 2
+			}
+		},
+		"spec_version": "1.0",
+		"version": 2
+	}
+}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/keys/root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/keys/root.json
deleted file mode 100644
index 5ad0b04..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/keys/root.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
-	"encrypted": false,
-	"data": [
-		{
-			"keytype": "ed25519",
-			"scheme": "ed25519",
-			"keyid_hash_algorithms": [
-				"sha512"
-			],
-			"keyval": {
-				"public": "0b4fd984ce719448735d51496f20bfeba6ce076efd3311f828baca405827a680",
-				"private": "32fc6316916958d56498d557c855bc2d012ea847175ffe03807d06ad401602da0b4fd984ce719448735d51496f20bfeba6ce076efd3311f828baca405827a680"
-			}
-		}
-	]
-}
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/keys/snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/keys/snapshot.json
deleted file mode 100644
index f0c7638..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/keys/snapshot.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
-	"encrypted": false,
-	"data": [
-		{
-			"keytype": "ed25519",
-			"scheme": "ed25519",
-			"keyid_hash_algorithms": [
-				"sha512"
-			],
-			"keyval": {
-				"public": "9d0a51a3b2c40f8bfb6a989787eebfd0b7af521f85ecfa74ce6a3036239b7518",
-				"private": "6a96f1a4d2193a181511ac4ba1b3ae8e92de8b9f14d76ed10139d705d2d57e5b9d0a51a3b2c40f8bfb6a989787eebfd0b7af521f85ecfa74ce6a3036239b7518"
-			}
-		}
-	]
-}
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/keys/targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/keys/targets.json
deleted file mode 100644
index ea04176..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/keys/targets.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
-	"encrypted": false,
-	"data": [
-		{
-			"keytype": "ed25519",
-			"scheme": "ed25519",
-			"keyid_hash_algorithms": [
-				"sha512"
-			],
-			"keyval": {
-				"public": "03f9d7cb27b94b914fda338371cc525afefddf2075a179dc7927d17b79b453ef",
-				"private": "30d93aa3b83a5672dabfe4e8a0175491ae5051d02d6e049952c065169fe04b6c03f9d7cb27b94b914fda338371cc525afefddf2075a179dc7927d17b79b453ef"
-			}
-		}
-	]
-}
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/keys/timestamp.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/keys/timestamp.json
deleted file mode 100644
index 339e796..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/keys/timestamp.json
+++ /dev/null
@@ -1 +0,0 @@
-{"encrypted":false,"data":[{"keytype":"ed25519","scheme":"ed25519","keyid_hash_algorithms":["sha512"],"keyval":{"public":"814f81f40a031f2543a29860dc1c3666416dbc424ae7c8dd79d3af3c61577e61","private":"58b4c4368feeaa3c217caa454deee36f44edaf44f92fa15c22ed8156edc9bd29814f81f40a031f2543a29860dc1c3666416dbc424ae7c8dd79d3af3c61577e61"}}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/repository/077b1bccf9b08d011e5ed54338408b90cd089ba6bf2f57b9f65eaedb5245ab58a2b2cadbb7c9fe21c4c5935dce4f325e07d732296e2d01af32fe1ae5fa4c4094.targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/repository/077b1bccf9b08d011e5ed54338408b90cd089ba6bf2f57b9f65eaedb5245ab58a2b2cadbb7c9fe21c4c5935dce4f325e07d732296e2d01af32fe1ae5fa4c4094.targets.json
deleted file mode 100644
index 54af415..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/repository/077b1bccf9b08d011e5ed54338408b90cd089ba6bf2f57b9f65eaedb5245ab58a2b2cadbb7c9fe21c4c5935dce4f325e07d732296e2d01af32fe1ae5fa4c4094.targets.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"targets","expires":"2100-01-01T00:00:00Z","spec_version":"1.0","targets":{"0":{"hashes":{"sha512":"31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"},"length":1}},"version":1},"signatures":[{"keyid":"c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e","sig":"4fbdc8c6e31f63ed182694ae82081e52a68ea563d8e6339e7c247531538af6cfa3e19f7cbcf9d790c6daa57460a60ea74b75eacd1b320d86193be7d36dae3a07"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/repository/1.root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/repository/1.root.json
deleted file mode 100644
index faa92c6..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/repository/1.root.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"root","consistent_snapshot":true,"expires":"2100-01-01T00:00:00Z","keys":{"0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"9d0a51a3b2c40f8bfb6a989787eebfd0b7af521f85ecfa74ce6a3036239b7518"},"scheme":"ed25519"},"4f6cbf068b19f3f876f0919eafb43f65e4899504fc18b822c6e6078b798c986b":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"bca92195f8fb4fe781e59614f819ee983d7398deea249cb93e4517e5a7b285f7"},"scheme":"ed25519"},"c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"03f9d7cb27b94b914fda338371cc525afefddf2075a179dc7927d17b79b453ef"},"scheme":"ed25519"},"c9e06997f3e77a1c999ed35b41899790214e9669b3a5c900238b8ed7260b375b":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"0b4fd984ce719448735d51496f20bfeba6ce076efd3311f828baca405827a680"},"scheme":"ed25519"}},"roles":{"root":{"keyids":["c9e06997f3e77a1c999ed35b41899790214e9669b3a5c900238b8ed7260b375b"],"threshold":1},"snapshot":{"keyids":["0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7"],"threshold":1},"targets":{"keyids":["c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e"],"threshold":1},"timestamp":{"keyids":["4f6cbf068b19f3f876f0919eafb43f65e4899504fc18b822c6e6078b798c986b"],"threshold":1}},"spec_version":"1.0","version":1},"signatures":[{"keyid":"c9e06997f3e77a1c999ed35b41899790214e9669b3a5c900238b8ed7260b375b","sig":"83803c5ce5acb02df6bd8287b16f356b9139f0c9e2696731875361ab422849d7683a0543ba83e55eea15ed77a84f654196e68337c6d2db31ec95d6a8ac7aa10f"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/repository/1.root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/repository/1.root.json
new file mode 120000
index 0000000..cd73051
--- /dev/null
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/repository/1.root.json
@@ -0,0 +1 @@
+../../1/repository/1.root.json
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/repository/1.snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/repository/1.snapshot.json
deleted file mode 100644
index ca3b1f0..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/repository/1.snapshot.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"snapshot","expires":"2100-01-01T00:00:00Z","meta":{"root.json":{"hashes":{"sha512":"3501a1e50ea2045abb29c5b4accc1fe95d10c574e2797d0391fb701f4f2d1cb8f343b301bfed5fff0817afeed491e058dfb5ba01e00c916fc81d2e22b7dbde84"},"length":1704,"version":1},"targets.json":{"hashes":{"sha512":"077b1bccf9b08d011e5ed54338408b90cd089ba6bf2f57b9f65eaedb5245ab58a2b2cadbb7c9fe21c4c5935dce4f325e07d732296e2d01af32fe1ae5fa4c4094"},"length":505,"version":1}},"spec_version":"1.0","version":1},"signatures":[{"keyid":"0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7","sig":"8a8d8f27a7b46a41a50c8fb5f9f9a355f1dd9538e29505f2b13c4ae2598084b4d87d1600485eeca23237e70a6ff5f6df1cee42542c929cd3129a00df0f6fc409"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/repository/1.targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/repository/1.targets.json
deleted file mode 100644
index 54af415..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/repository/1.targets.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"targets","expires":"2100-01-01T00:00:00Z","spec_version":"1.0","targets":{"0":{"hashes":{"sha512":"31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"},"length":1}},"version":1},"signatures":[{"keyid":"c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e","sig":"4fbdc8c6e31f63ed182694ae82081e52a68ea563d8e6339e7c247531538af6cfa3e19f7cbcf9d790c6daa57460a60ea74b75eacd1b320d86193be7d36dae3a07"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/repository/17957fb35719cdf1b42f9a82e53981433c76be22ceefe0c1f27c23345d99491daecc0b3979bb963c716aaeb6c52502f5e4d5bd63a3406352a0d39f2b1fe90472.snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/repository/17957fb35719cdf1b42f9a82e53981433c76be22ceefe0c1f27c23345d99491daecc0b3979bb963c716aaeb6c52502f5e4d5bd63a3406352a0d39f2b1fe90472.snapshot.json
deleted file mode 100644
index 453e1ac..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/repository/17957fb35719cdf1b42f9a82e53981433c76be22ceefe0c1f27c23345d99491daecc0b3979bb963c716aaeb6c52502f5e4d5bd63a3406352a0d39f2b1fe90472.snapshot.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"snapshot","expires":"2100-01-01T00:00:00Z","meta":{"root.json":{"hashes":{"sha512":"9b995f439e9d7d53faa975ee5715d3a9f32cdd4b83a72314a3cdbe0e823faae6bd424a4a961b9fff225e59d7b6d1ee4b08fad1e289b280a2c2e13f384ec2eb8c"},"length":1704,"version":2},"targets.json":{"hashes":{"sha512":"c944d09e8c5efda309e1a4498277af737b97dc8823a659ed3a60c4d011dcdc729797fd1a6f6d963b93bc2a30414be3f88481837c2b17d14f072b39f2191866a2"},"length":673,"version":2}},"spec_version":"1.0","version":2},"signatures":[{"keyid":"0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7","sig":"f6e31e7bb5789f7c18fcaadbe6cca65c9b874fe67255291bcf56641a11a7b764939602b31aa928b2e02a87fcefbc8ef91d8de19ebd61007818eebafa76c6b701"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/repository/2.root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/repository/2.root.json
deleted file mode 100644
index f2c637d..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/repository/2.root.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"root","consistent_snapshot":true,"expires":"2100-01-01T00:00:00Z","keys":{"0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"9d0a51a3b2c40f8bfb6a989787eebfd0b7af521f85ecfa74ce6a3036239b7518"},"scheme":"ed25519"},"c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"03f9d7cb27b94b914fda338371cc525afefddf2075a179dc7927d17b79b453ef"},"scheme":"ed25519"},"c9e06997f3e77a1c999ed35b41899790214e9669b3a5c900238b8ed7260b375b":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"0b4fd984ce719448735d51496f20bfeba6ce076efd3311f828baca405827a680"},"scheme":"ed25519"},"cf0618db7ba21084b308c7a3a46219aff05e2ec39d48d55baac5e0c9ae5f9a47":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"814f81f40a031f2543a29860dc1c3666416dbc424ae7c8dd79d3af3c61577e61"},"scheme":"ed25519"}},"roles":{"root":{"keyids":["c9e06997f3e77a1c999ed35b41899790214e9669b3a5c900238b8ed7260b375b"],"threshold":1},"snapshot":{"keyids":["0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7"],"threshold":1},"targets":{"keyids":["c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e"],"threshold":1},"timestamp":{"keyids":["cf0618db7ba21084b308c7a3a46219aff05e2ec39d48d55baac5e0c9ae5f9a47"],"threshold":1}},"spec_version":"1.0","version":2},"signatures":[{"keyid":"c9e06997f3e77a1c999ed35b41899790214e9669b3a5c900238b8ed7260b375b","sig":"55463ef12660d470109117b2873e1c018aaf606b9b7918ec6362929db5312665a8697c83510212bac5ef236284342922a96a4ce88122470851a7b7cb7536a107"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/repository/2.root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/repository/2.root.json
new file mode 120000
index 0000000..bbdcb12
--- /dev/null
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/repository/2.root.json
@@ -0,0 +1 @@
+../../1/repository/2.root.json
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/repository/2.snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/repository/2.snapshot.json
deleted file mode 100644
index 453e1ac..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/repository/2.snapshot.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"snapshot","expires":"2100-01-01T00:00:00Z","meta":{"root.json":{"hashes":{"sha512":"9b995f439e9d7d53faa975ee5715d3a9f32cdd4b83a72314a3cdbe0e823faae6bd424a4a961b9fff225e59d7b6d1ee4b08fad1e289b280a2c2e13f384ec2eb8c"},"length":1704,"version":2},"targets.json":{"hashes":{"sha512":"c944d09e8c5efda309e1a4498277af737b97dc8823a659ed3a60c4d011dcdc729797fd1a6f6d963b93bc2a30414be3f88481837c2b17d14f072b39f2191866a2"},"length":673,"version":2}},"spec_version":"1.0","version":2},"signatures":[{"keyid":"0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7","sig":"f6e31e7bb5789f7c18fcaadbe6cca65c9b874fe67255291bcf56641a11a7b764939602b31aa928b2e02a87fcefbc8ef91d8de19ebd61007818eebafa76c6b701"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/repository/2.targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/repository/2.targets.json
deleted file mode 100644
index e82b814..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/repository/2.targets.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"targets","expires":"2100-01-01T00:00:00Z","spec_version":"1.0","targets":{"0":{"hashes":{"sha512":"31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"},"length":1},"1":{"hashes":{"sha512":"4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a"},"length":1}},"version":2},"signatures":[{"keyid":"c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e","sig":"e50e81453ed9416a8877fa83a7e8dcc8d2ce73b38808986d420fc940ba6fa43c60b53d1a00caba2ae5a06ff8421472c9c4a09efee56cbe63a683b01f15f4e10a"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/repository/28c33847af0916c8bd7231f6610911bf977b677bbcc2904dd86c6d294fb807b837146a8e9b36ea563f9cf95261e7ba261f6337b2925f595ba8b46baa9ca58699.snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/repository/28c33847af0916c8bd7231f6610911bf977b677bbcc2904dd86c6d294fb807b837146a8e9b36ea563f9cf95261e7ba261f6337b2925f595ba8b46baa9ca58699.snapshot.json
deleted file mode 100644
index 0a49263..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/repository/28c33847af0916c8bd7231f6610911bf977b677bbcc2904dd86c6d294fb807b837146a8e9b36ea563f9cf95261e7ba261f6337b2925f595ba8b46baa9ca58699.snapshot.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"snapshot","expires":"2100-01-01T00:00:00Z","meta":{"root.json":{"hashes":{"sha512":"9b995f439e9d7d53faa975ee5715d3a9f32cdd4b83a72314a3cdbe0e823faae6bd424a4a961b9fff225e59d7b6d1ee4b08fad1e289b280a2c2e13f384ec2eb8c"},"length":1704,"version":2},"targets.json":{"hashes":{"sha512":"544d56373898163c901da99746d89fc84b03ba37691cc37b14c6f3e6372510ea5a63023eb16e42151ee188cd5b1da589ecc323f2dca49b554479595d19595bb7"},"length":841,"version":3}},"spec_version":"1.0","version":3},"signatures":[{"keyid":"0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7","sig":"b47e6d8d242a8c8965d3a3e0aaf1787ccd3e4c99b10648c2573241915d35dfa130170ee729503a57c543b5828d029626e4f7caa5414c971b4c35c443e0ed6d05"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/repository/3.root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/repository/3.root.json
new file mode 100644
index 0000000..923eafc
--- /dev/null
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/repository/3.root.json
@@ -0,0 +1,83 @@
+{
+	"signatures": [
+		{
+			"keyid": "4c663b6d0b9f2c74a19b6791c1417c8d1916e2d84461be1a8148e4386c89582d",
+			"sig": "ea2529b895eeabd2aaf00c06d5789fc3152aab134d8f1265954304c89f4a6eeca4e7f0be6620c8fce14caf4c447b8c472483438d74273d2a50ea86f5de59aa06"
+		}
+	],
+	"signed": {
+		"_type": "root",
+		"consistent_snapshot": false,
+		"expires": "2100-01-01T00:00:00Z",
+		"keys": {
+			"4c663b6d0b9f2c74a19b6791c1417c8d1916e2d84461be1a8148e4386c89582d": {
+				"keyid_hash_algorithms": [
+					"sha256"
+				],
+				"keytype": "ed25519",
+				"keyval": {
+					"public": "153986a7370e002f377dd68797e7466c421180c1571e233de2f8ab41c8af4f54"
+				},
+				"scheme": "ed25519"
+			},
+			"a3eba2113e37b749b908101bdb7b856a44f2853641830c0f939730aca3e30360": {
+				"keyid_hash_algorithms": [
+					"sha256"
+				],
+				"keytype": "ed25519",
+				"keyval": {
+					"public": "aee574e56780ea1709a8b56e02d4ffdd9a3a1deaed61e2eb0701f376a4422e42"
+				},
+				"scheme": "ed25519"
+			},
+			"b59406a55fbe2492022f2951dacd01fc7b400b7b41ec4028b8356161a5a71a33": {
+				"keyid_hash_algorithms": [
+					"sha256"
+				],
+				"keytype": "ed25519",
+				"keyval": {
+					"public": "8656ad20568cd3534c405e4d9a84b0c6e6163f7f66434df77416502835b9b160"
+				},
+				"scheme": "ed25519"
+			},
+			"d792ff8cf3c5d9a8fe0fdfa585b25028fa9f49aa29c62a658140d4b98cc2c917": {
+				"keyid_hash_algorithms": [
+					"sha256"
+				],
+				"keytype": "ed25519",
+				"keyval": {
+					"public": "d482fa4805a50870aa1356ace6b764f7ab47ed4dc38f49b1a189afa25f179e94"
+				},
+				"scheme": "ed25519"
+			}
+		},
+		"roles": {
+			"root": {
+				"keyids": [
+					"4c663b6d0b9f2c74a19b6791c1417c8d1916e2d84461be1a8148e4386c89582d"
+				],
+				"threshold": 1
+			},
+			"snapshot": {
+				"keyids": [
+					"d792ff8cf3c5d9a8fe0fdfa585b25028fa9f49aa29c62a658140d4b98cc2c917"
+				],
+				"threshold": 1
+			},
+			"targets": {
+				"keyids": [
+					"a3eba2113e37b749b908101bdb7b856a44f2853641830c0f939730aca3e30360"
+				],
+				"threshold": 1
+			},
+			"timestamp": {
+				"keyids": [
+					"b59406a55fbe2492022f2951dacd01fc7b400b7b41ec4028b8356161a5a71a33"
+				],
+				"threshold": 1
+			}
+		},
+		"spec_version": "1.0",
+		"version": 3
+	}
+}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/repository/3.snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/repository/3.snapshot.json
deleted file mode 100644
index 0a49263..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/repository/3.snapshot.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"snapshot","expires":"2100-01-01T00:00:00Z","meta":{"root.json":{"hashes":{"sha512":"9b995f439e9d7d53faa975ee5715d3a9f32cdd4b83a72314a3cdbe0e823faae6bd424a4a961b9fff225e59d7b6d1ee4b08fad1e289b280a2c2e13f384ec2eb8c"},"length":1704,"version":2},"targets.json":{"hashes":{"sha512":"544d56373898163c901da99746d89fc84b03ba37691cc37b14c6f3e6372510ea5a63023eb16e42151ee188cd5b1da589ecc323f2dca49b554479595d19595bb7"},"length":841,"version":3}},"spec_version":"1.0","version":3},"signatures":[{"keyid":"0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7","sig":"b47e6d8d242a8c8965d3a3e0aaf1787ccd3e4c99b10648c2573241915d35dfa130170ee729503a57c543b5828d029626e4f7caa5414c971b4c35c443e0ed6d05"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/repository/3.targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/repository/3.targets.json
deleted file mode 100644
index 4ec4a91..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/repository/3.targets.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"targets","expires":"2100-01-01T00:00:00Z","spec_version":"1.0","targets":{"0":{"hashes":{"sha512":"31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"},"length":1},"1":{"hashes":{"sha512":"4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a"},"length":1},"2":{"hashes":{"sha512":"40b244112641dd78dd4f93b6c9190dd46e0099194d5a44257b7efad6ef9ff4683da1eda0244448cb343aa688f5d3efd7314dafe580ac0bcbf115aeca9e8dc114"},"length":1}},"version":3},"signatures":[{"keyid":"c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e","sig":"c899a41e9dd4ec3d5c68d86924b535bcfce246448c4ad0f4622a0c0eb2ebde0704916e949357e4e256c3628ab7d31ae2133ab340ba68f5d91a7a03faed0d3906"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/repository/3501a1e50ea2045abb29c5b4accc1fe95d10c574e2797d0391fb701f4f2d1cb8f343b301bfed5fff0817afeed491e058dfb5ba01e00c916fc81d2e22b7dbde84.root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/repository/3501a1e50ea2045abb29c5b4accc1fe95d10c574e2797d0391fb701f4f2d1cb8f343b301bfed5fff0817afeed491e058dfb5ba01e00c916fc81d2e22b7dbde84.root.json
deleted file mode 100644
index faa92c6..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/repository/3501a1e50ea2045abb29c5b4accc1fe95d10c574e2797d0391fb701f4f2d1cb8f343b301bfed5fff0817afeed491e058dfb5ba01e00c916fc81d2e22b7dbde84.root.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"root","consistent_snapshot":true,"expires":"2100-01-01T00:00:00Z","keys":{"0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"9d0a51a3b2c40f8bfb6a989787eebfd0b7af521f85ecfa74ce6a3036239b7518"},"scheme":"ed25519"},"4f6cbf068b19f3f876f0919eafb43f65e4899504fc18b822c6e6078b798c986b":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"bca92195f8fb4fe781e59614f819ee983d7398deea249cb93e4517e5a7b285f7"},"scheme":"ed25519"},"c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"03f9d7cb27b94b914fda338371cc525afefddf2075a179dc7927d17b79b453ef"},"scheme":"ed25519"},"c9e06997f3e77a1c999ed35b41899790214e9669b3a5c900238b8ed7260b375b":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"0b4fd984ce719448735d51496f20bfeba6ce076efd3311f828baca405827a680"},"scheme":"ed25519"}},"roles":{"root":{"keyids":["c9e06997f3e77a1c999ed35b41899790214e9669b3a5c900238b8ed7260b375b"],"threshold":1},"snapshot":{"keyids":["0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7"],"threshold":1},"targets":{"keyids":["c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e"],"threshold":1},"timestamp":{"keyids":["4f6cbf068b19f3f876f0919eafb43f65e4899504fc18b822c6e6078b798c986b"],"threshold":1}},"spec_version":"1.0","version":1},"signatures":[{"keyid":"c9e06997f3e77a1c999ed35b41899790214e9669b3a5c900238b8ed7260b375b","sig":"83803c5ce5acb02df6bd8287b16f356b9139f0c9e2696731875361ab422849d7683a0543ba83e55eea15ed77a84f654196e68337c6d2db31ec95d6a8ac7aa10f"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/repository/544d56373898163c901da99746d89fc84b03ba37691cc37b14c6f3e6372510ea5a63023eb16e42151ee188cd5b1da589ecc323f2dca49b554479595d19595bb7.targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/repository/544d56373898163c901da99746d89fc84b03ba37691cc37b14c6f3e6372510ea5a63023eb16e42151ee188cd5b1da589ecc323f2dca49b554479595d19595bb7.targets.json
deleted file mode 100644
index 4ec4a91..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/repository/544d56373898163c901da99746d89fc84b03ba37691cc37b14c6f3e6372510ea5a63023eb16e42151ee188cd5b1da589ecc323f2dca49b554479595d19595bb7.targets.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"targets","expires":"2100-01-01T00:00:00Z","spec_version":"1.0","targets":{"0":{"hashes":{"sha512":"31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"},"length":1},"1":{"hashes":{"sha512":"4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a"},"length":1},"2":{"hashes":{"sha512":"40b244112641dd78dd4f93b6c9190dd46e0099194d5a44257b7efad6ef9ff4683da1eda0244448cb343aa688f5d3efd7314dafe580ac0bcbf115aeca9e8dc114"},"length":1}},"version":3},"signatures":[{"keyid":"c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e","sig":"c899a41e9dd4ec3d5c68d86924b535bcfce246448c4ad0f4622a0c0eb2ebde0704916e949357e4e256c3628ab7d31ae2133ab340ba68f5d91a7a03faed0d3906"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/repository/9b995f439e9d7d53faa975ee5715d3a9f32cdd4b83a72314a3cdbe0e823faae6bd424a4a961b9fff225e59d7b6d1ee4b08fad1e289b280a2c2e13f384ec2eb8c.root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/repository/9b995f439e9d7d53faa975ee5715d3a9f32cdd4b83a72314a3cdbe0e823faae6bd424a4a961b9fff225e59d7b6d1ee4b08fad1e289b280a2c2e13f384ec2eb8c.root.json
deleted file mode 100644
index f2c637d..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/repository/9b995f439e9d7d53faa975ee5715d3a9f32cdd4b83a72314a3cdbe0e823faae6bd424a4a961b9fff225e59d7b6d1ee4b08fad1e289b280a2c2e13f384ec2eb8c.root.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"root","consistent_snapshot":true,"expires":"2100-01-01T00:00:00Z","keys":{"0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"9d0a51a3b2c40f8bfb6a989787eebfd0b7af521f85ecfa74ce6a3036239b7518"},"scheme":"ed25519"},"c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"03f9d7cb27b94b914fda338371cc525afefddf2075a179dc7927d17b79b453ef"},"scheme":"ed25519"},"c9e06997f3e77a1c999ed35b41899790214e9669b3a5c900238b8ed7260b375b":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"0b4fd984ce719448735d51496f20bfeba6ce076efd3311f828baca405827a680"},"scheme":"ed25519"},"cf0618db7ba21084b308c7a3a46219aff05e2ec39d48d55baac5e0c9ae5f9a47":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"814f81f40a031f2543a29860dc1c3666416dbc424ae7c8dd79d3af3c61577e61"},"scheme":"ed25519"}},"roles":{"root":{"keyids":["c9e06997f3e77a1c999ed35b41899790214e9669b3a5c900238b8ed7260b375b"],"threshold":1},"snapshot":{"keyids":["0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7"],"threshold":1},"targets":{"keyids":["c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e"],"threshold":1},"timestamp":{"keyids":["cf0618db7ba21084b308c7a3a46219aff05e2ec39d48d55baac5e0c9ae5f9a47"],"threshold":1}},"spec_version":"1.0","version":2},"signatures":[{"keyid":"c9e06997f3e77a1c999ed35b41899790214e9669b3a5c900238b8ed7260b375b","sig":"55463ef12660d470109117b2873e1c018aaf606b9b7918ec6362929db5312665a8697c83510212bac5ef236284342922a96a4ce88122470851a7b7cb7536a107"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/repository/c944d09e8c5efda309e1a4498277af737b97dc8823a659ed3a60c4d011dcdc729797fd1a6f6d963b93bc2a30414be3f88481837c2b17d14f072b39f2191866a2.targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/repository/c944d09e8c5efda309e1a4498277af737b97dc8823a659ed3a60c4d011dcdc729797fd1a6f6d963b93bc2a30414be3f88481837c2b17d14f072b39f2191866a2.targets.json
deleted file mode 100644
index e82b814..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/repository/c944d09e8c5efda309e1a4498277af737b97dc8823a659ed3a60c4d011dcdc729797fd1a6f6d963b93bc2a30414be3f88481837c2b17d14f072b39f2191866a2.targets.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"targets","expires":"2100-01-01T00:00:00Z","spec_version":"1.0","targets":{"0":{"hashes":{"sha512":"31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"},"length":1},"1":{"hashes":{"sha512":"4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a"},"length":1}},"version":2},"signatures":[{"keyid":"c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e","sig":"e50e81453ed9416a8877fa83a7e8dcc8d2ce73b38808986d420fc940ba6fa43c60b53d1a00caba2ae5a06ff8421472c9c4a09efee56cbe63a683b01f15f4e10a"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/repository/e92754ae7309051b870ced601ab9bb9817b457a7c48f010f6060d32aba60afaa88ac4d79a78bf79a2fe4602c74831fe1d402ddf109314793964486d4017fadee.snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/repository/e92754ae7309051b870ced601ab9bb9817b457a7c48f010f6060d32aba60afaa88ac4d79a78bf79a2fe4602c74831fe1d402ddf109314793964486d4017fadee.snapshot.json
deleted file mode 100644
index ca3b1f0..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/repository/e92754ae7309051b870ced601ab9bb9817b457a7c48f010f6060d32aba60afaa88ac4d79a78bf79a2fe4602c74831fe1d402ddf109314793964486d4017fadee.snapshot.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"snapshot","expires":"2100-01-01T00:00:00Z","meta":{"root.json":{"hashes":{"sha512":"3501a1e50ea2045abb29c5b4accc1fe95d10c574e2797d0391fb701f4f2d1cb8f343b301bfed5fff0817afeed491e058dfb5ba01e00c916fc81d2e22b7dbde84"},"length":1704,"version":1},"targets.json":{"hashes":{"sha512":"077b1bccf9b08d011e5ed54338408b90cd089ba6bf2f57b9f65eaedb5245ab58a2b2cadbb7c9fe21c4c5935dce4f325e07d732296e2d01af32fe1ae5fa4c4094"},"length":505,"version":1}},"spec_version":"1.0","version":1},"signatures":[{"keyid":"0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7","sig":"8a8d8f27a7b46a41a50c8fb5f9f9a355f1dd9538e29505f2b13c4ae2598084b4d87d1600485eeca23237e70a6ff5f6df1cee42542c929cd3129a00df0f6fc409"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/repository/root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/repository/root.json
index f2c637d..923eafc 100644
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/repository/root.json
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/repository/root.json
@@ -1 +1,83 @@
-{"signed":{"_type":"root","consistent_snapshot":true,"expires":"2100-01-01T00:00:00Z","keys":{"0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"9d0a51a3b2c40f8bfb6a989787eebfd0b7af521f85ecfa74ce6a3036239b7518"},"scheme":"ed25519"},"c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"03f9d7cb27b94b914fda338371cc525afefddf2075a179dc7927d17b79b453ef"},"scheme":"ed25519"},"c9e06997f3e77a1c999ed35b41899790214e9669b3a5c900238b8ed7260b375b":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"0b4fd984ce719448735d51496f20bfeba6ce076efd3311f828baca405827a680"},"scheme":"ed25519"},"cf0618db7ba21084b308c7a3a46219aff05e2ec39d48d55baac5e0c9ae5f9a47":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"814f81f40a031f2543a29860dc1c3666416dbc424ae7c8dd79d3af3c61577e61"},"scheme":"ed25519"}},"roles":{"root":{"keyids":["c9e06997f3e77a1c999ed35b41899790214e9669b3a5c900238b8ed7260b375b"],"threshold":1},"snapshot":{"keyids":["0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7"],"threshold":1},"targets":{"keyids":["c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e"],"threshold":1},"timestamp":{"keyids":["cf0618db7ba21084b308c7a3a46219aff05e2ec39d48d55baac5e0c9ae5f9a47"],"threshold":1}},"spec_version":"1.0","version":2},"signatures":[{"keyid":"c9e06997f3e77a1c999ed35b41899790214e9669b3a5c900238b8ed7260b375b","sig":"55463ef12660d470109117b2873e1c018aaf606b9b7918ec6362929db5312665a8697c83510212bac5ef236284342922a96a4ce88122470851a7b7cb7536a107"}]}
\ No newline at end of file
+{
+	"signatures": [
+		{
+			"keyid": "4c663b6d0b9f2c74a19b6791c1417c8d1916e2d84461be1a8148e4386c89582d",
+			"sig": "ea2529b895eeabd2aaf00c06d5789fc3152aab134d8f1265954304c89f4a6eeca4e7f0be6620c8fce14caf4c447b8c472483438d74273d2a50ea86f5de59aa06"
+		}
+	],
+	"signed": {
+		"_type": "root",
+		"consistent_snapshot": false,
+		"expires": "2100-01-01T00:00:00Z",
+		"keys": {
+			"4c663b6d0b9f2c74a19b6791c1417c8d1916e2d84461be1a8148e4386c89582d": {
+				"keyid_hash_algorithms": [
+					"sha256"
+				],
+				"keytype": "ed25519",
+				"keyval": {
+					"public": "153986a7370e002f377dd68797e7466c421180c1571e233de2f8ab41c8af4f54"
+				},
+				"scheme": "ed25519"
+			},
+			"a3eba2113e37b749b908101bdb7b856a44f2853641830c0f939730aca3e30360": {
+				"keyid_hash_algorithms": [
+					"sha256"
+				],
+				"keytype": "ed25519",
+				"keyval": {
+					"public": "aee574e56780ea1709a8b56e02d4ffdd9a3a1deaed61e2eb0701f376a4422e42"
+				},
+				"scheme": "ed25519"
+			},
+			"b59406a55fbe2492022f2951dacd01fc7b400b7b41ec4028b8356161a5a71a33": {
+				"keyid_hash_algorithms": [
+					"sha256"
+				],
+				"keytype": "ed25519",
+				"keyval": {
+					"public": "8656ad20568cd3534c405e4d9a84b0c6e6163f7f66434df77416502835b9b160"
+				},
+				"scheme": "ed25519"
+			},
+			"d792ff8cf3c5d9a8fe0fdfa585b25028fa9f49aa29c62a658140d4b98cc2c917": {
+				"keyid_hash_algorithms": [
+					"sha256"
+				],
+				"keytype": "ed25519",
+				"keyval": {
+					"public": "d482fa4805a50870aa1356ace6b764f7ab47ed4dc38f49b1a189afa25f179e94"
+				},
+				"scheme": "ed25519"
+			}
+		},
+		"roles": {
+			"root": {
+				"keyids": [
+					"4c663b6d0b9f2c74a19b6791c1417c8d1916e2d84461be1a8148e4386c89582d"
+				],
+				"threshold": 1
+			},
+			"snapshot": {
+				"keyids": [
+					"d792ff8cf3c5d9a8fe0fdfa585b25028fa9f49aa29c62a658140d4b98cc2c917"
+				],
+				"threshold": 1
+			},
+			"targets": {
+				"keyids": [
+					"a3eba2113e37b749b908101bdb7b856a44f2853641830c0f939730aca3e30360"
+				],
+				"threshold": 1
+			},
+			"timestamp": {
+				"keyids": [
+					"b59406a55fbe2492022f2951dacd01fc7b400b7b41ec4028b8356161a5a71a33"
+				],
+				"threshold": 1
+			}
+		},
+		"spec_version": "1.0",
+		"version": 3
+	}
+}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/repository/snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/repository/snapshot.json
index 0a49263..f68be59 100644
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/repository/snapshot.json
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/repository/snapshot.json
@@ -1 +1,30 @@
-{"signed":{"_type":"snapshot","expires":"2100-01-01T00:00:00Z","meta":{"root.json":{"hashes":{"sha512":"9b995f439e9d7d53faa975ee5715d3a9f32cdd4b83a72314a3cdbe0e823faae6bd424a4a961b9fff225e59d7b6d1ee4b08fad1e289b280a2c2e13f384ec2eb8c"},"length":1704,"version":2},"targets.json":{"hashes":{"sha512":"544d56373898163c901da99746d89fc84b03ba37691cc37b14c6f3e6372510ea5a63023eb16e42151ee188cd5b1da589ecc323f2dca49b554479595d19595bb7"},"length":841,"version":3}},"spec_version":"1.0","version":3},"signatures":[{"keyid":"0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7","sig":"b47e6d8d242a8c8965d3a3e0aaf1787ccd3e4c99b10648c2573241915d35dfa130170ee729503a57c543b5828d029626e4f7caa5414c971b4c35c443e0ed6d05"}]}
\ No newline at end of file
+{
+	"signatures": [
+		{
+			"keyid": "d792ff8cf3c5d9a8fe0fdfa585b25028fa9f49aa29c62a658140d4b98cc2c917",
+			"sig": "e4a00bb62fb3c1efd1b949050d952d89023461ab6db280f2b5233bafd8b672abfc23b22453eb1becb5d850eb70c7e201ee6780555fabd5f6c4d68b69c82f1406"
+		}
+	],
+	"signed": {
+		"_type": "snapshot",
+		"expires": "2100-01-01T00:00:00Z",
+		"meta": {
+			"root.json": {
+				"hashes": {
+					"sha512": "cd1af4dae35649774a2090ea0471ccaf677dddd080973807faa37c0744649f316052603c43032fc308c85c60379bf5067201957622061ad91acd942a1b55b274"
+				},
+				"length": 2118,
+				"version": 3
+			},
+			"targets.json": {
+				"hashes": {
+					"sha512": "33835f152dcc9ab1396e0f44dff841eca2c747dfd8cccc079dd0f4a88e7920f29cfaa3d895618c39463bed3997d6ba83c7791749483f2df8f3589fff3f4c379d"
+				},
+				"length": 990,
+				"version": 3
+			}
+		},
+		"spec_version": "1.0",
+		"version": 3
+	}
+}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/repository/targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/repository/targets.json
index 4ec4a91..6c7e919 100644
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/repository/targets.json
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/repository/targets.json
@@ -1 +1,34 @@
-{"signed":{"_type":"targets","expires":"2100-01-01T00:00:00Z","spec_version":"1.0","targets":{"0":{"hashes":{"sha512":"31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"},"length":1},"1":{"hashes":{"sha512":"4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a"},"length":1},"2":{"hashes":{"sha512":"40b244112641dd78dd4f93b6c9190dd46e0099194d5a44257b7efad6ef9ff4683da1eda0244448cb343aa688f5d3efd7314dafe580ac0bcbf115aeca9e8dc114"},"length":1}},"version":3},"signatures":[{"keyid":"c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e","sig":"c899a41e9dd4ec3d5c68d86924b535bcfce246448c4ad0f4622a0c0eb2ebde0704916e949357e4e256c3628ab7d31ae2133ab340ba68f5d91a7a03faed0d3906"}]}
\ No newline at end of file
+{
+	"signatures": [
+		{
+			"keyid": "a3eba2113e37b749b908101bdb7b856a44f2853641830c0f939730aca3e30360",
+			"sig": "09593c7b47f4dbf1e8ac949fa010279ffbbd36070a54a89b689378441e8111602d4236fa2962063778c82027d4746a8973ba8fea86e9c105190da9fa362d8b0c"
+		}
+	],
+	"signed": {
+		"_type": "targets",
+		"expires": "2100-01-01T00:00:00Z",
+		"spec_version": "1.0",
+		"targets": {
+			"0": {
+				"hashes": {
+					"sha512": "31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"
+				},
+				"length": 1
+			},
+			"1": {
+				"hashes": {
+					"sha512": "4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a"
+				},
+				"length": 1
+			},
+			"2": {
+				"hashes": {
+					"sha512": "40b244112641dd78dd4f93b6c9190dd46e0099194d5a44257b7efad6ef9ff4683da1eda0244448cb343aa688f5d3efd7314dafe580ac0bcbf115aeca9e8dc114"
+				},
+				"length": 1
+			}
+		},
+		"version": 3
+	}
+}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/repository/targets/0 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/repository/targets/0
new file mode 120000
index 0000000..2ac1d8b
--- /dev/null
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/repository/targets/0
@@ -0,0 +1 @@
+../../../1/repository/targets/0
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/repository/targets/0.0 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/repository/targets/0.0
deleted file mode 100644
index c227083..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/repository/targets/0.0
+++ /dev/null
@@ -1 +0,0 @@
-0
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/repository/targets/0.1 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/repository/targets/0.1
deleted file mode 100644
index 56a6051..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/repository/targets/0.1
+++ /dev/null
@@ -1 +0,0 @@
-1
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/repository/targets/1 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/repository/targets/1
new file mode 120000
index 0000000..8e78bc3
--- /dev/null
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/repository/targets/1
@@ -0,0 +1 @@
+../../../1/repository/targets/1
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/repository/targets/0.2 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/repository/targets/2
similarity index 100%
rename from client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/repository/targets/0.2
rename to client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/repository/targets/2
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/repository/targets/31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99.0 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/repository/targets/31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99.0
deleted file mode 100644
index c227083..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/repository/targets/31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99.0
+++ /dev/null
@@ -1 +0,0 @@
-0
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/repository/targets/40b244112641dd78dd4f93b6c9190dd46e0099194d5a44257b7efad6ef9ff4683da1eda0244448cb343aa688f5d3efd7314dafe580ac0bcbf115aeca9e8dc114.2 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/repository/targets/40b244112641dd78dd4f93b6c9190dd46e0099194d5a44257b7efad6ef9ff4683da1eda0244448cb343aa688f5d3efd7314dafe580ac0bcbf115aeca9e8dc114.2
deleted file mode 100644
index d8263ee..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/repository/targets/40b244112641dd78dd4f93b6c9190dd46e0099194d5a44257b7efad6ef9ff4683da1eda0244448cb343aa688f5d3efd7314dafe580ac0bcbf115aeca9e8dc114.2
+++ /dev/null
@@ -1 +0,0 @@
-2
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/repository/targets/4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a.1 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/repository/targets/4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a.1
deleted file mode 100644
index 56a6051..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/repository/targets/4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a.1
+++ /dev/null
@@ -1 +0,0 @@
-1
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/repository/timestamp.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/repository/timestamp.json
index f9dd8be..55ef71f 100644
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/repository/timestamp.json
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/2/repository/timestamp.json
@@ -1 +1,23 @@
-{"signed":{"_type":"timestamp","expires":"2100-01-01T00:00:00Z","meta":{"snapshot.json":{"hashes":{"sha512":"28c33847af0916c8bd7231f6610911bf977b677bbcc2904dd86c6d294fb807b837146a8e9b36ea563f9cf95261e7ba261f6337b2925f595ba8b46baa9ca58699"},"length":719,"version":3}},"spec_version":"1.0","version":3},"signatures":[{"keyid":"cf0618db7ba21084b308c7a3a46219aff05e2ec39d48d55baac5e0c9ae5f9a47","sig":"2c2b2f776c5f186feb4911efd21629eda61d7b2a1c996b96cc1f3ea6681f5f40e2273b64b5bcc419b474b3013deb9ab882b96337711df47d604e39afa1917f0a"}]}
\ No newline at end of file
+{
+	"signatures": [
+		{
+			"keyid": "b59406a55fbe2492022f2951dacd01fc7b400b7b41ec4028b8356161a5a71a33",
+			"sig": "3c11c4fea59b6433d678dfa7e6405182d7337f66bfcbe74c82602c689f2bfcca8cb5663ddf8d325fcc3e434c50bea08777e07d34ff439264f1e7cb688921ef00"
+		}
+	],
+	"signed": {
+		"_type": "timestamp",
+		"expires": "2100-01-01T00:00:00Z",
+		"meta": {
+			"snapshot.json": {
+				"hashes": {
+					"sha512": "0ab33430ecbe903acaafa3158ad1bfe2cfc22968b5966a6816c16d16a72bfa5da09426d98b547fc5c8784a6502972977c331956ed84c525f1e85fb385a36fb58"
+				},
+				"length": 847,
+				"version": 3
+			}
+		},
+		"spec_version": "1.0",
+		"version": 3
+	}
+}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/keys/root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/keys/root.json
deleted file mode 100644
index 1290433..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/keys/root.json
+++ /dev/null
@@ -1,27 +0,0 @@
-{
-	"encrypted": false,
-	"data": [
-		{
-			"keytype": "ed25519",
-			"scheme": "ed25519",
-			"keyid_hash_algorithms": [
-				"sha512"
-			],
-			"keyval": {
-				"public": "0b4fd984ce719448735d51496f20bfeba6ce076efd3311f828baca405827a680",
-				"private": "32fc6316916958d56498d557c855bc2d012ea847175ffe03807d06ad401602da0b4fd984ce719448735d51496f20bfeba6ce076efd3311f828baca405827a680"
-			}
-		},
-		{
-			"keytype": "ed25519",
-			"scheme": "ed25519",
-			"keyid_hash_algorithms": [
-				"sha512"
-			],
-			"keyval": {
-				"public": "6ba18d6ace9ad74126872cde0a033c1c23eafaf0b02c1a0be02046304f66f0de",
-				"private": "56554ce58246be71054dcf6dee10d8bc8d72a771b28a514c5c13fb285f243ee76ba18d6ace9ad74126872cde0a033c1c23eafaf0b02c1a0be02046304f66f0de"
-			}
-		}
-	]
-}
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/keys/snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/keys/snapshot.json
deleted file mode 100644
index f0c7638..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/keys/snapshot.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
-	"encrypted": false,
-	"data": [
-		{
-			"keytype": "ed25519",
-			"scheme": "ed25519",
-			"keyid_hash_algorithms": [
-				"sha512"
-			],
-			"keyval": {
-				"public": "9d0a51a3b2c40f8bfb6a989787eebfd0b7af521f85ecfa74ce6a3036239b7518",
-				"private": "6a96f1a4d2193a181511ac4ba1b3ae8e92de8b9f14d76ed10139d705d2d57e5b9d0a51a3b2c40f8bfb6a989787eebfd0b7af521f85ecfa74ce6a3036239b7518"
-			}
-		}
-	]
-}
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/keys/targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/keys/targets.json
deleted file mode 100644
index ea04176..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/keys/targets.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
-	"encrypted": false,
-	"data": [
-		{
-			"keytype": "ed25519",
-			"scheme": "ed25519",
-			"keyid_hash_algorithms": [
-				"sha512"
-			],
-			"keyval": {
-				"public": "03f9d7cb27b94b914fda338371cc525afefddf2075a179dc7927d17b79b453ef",
-				"private": "30d93aa3b83a5672dabfe4e8a0175491ae5051d02d6e049952c065169fe04b6c03f9d7cb27b94b914fda338371cc525afefddf2075a179dc7927d17b79b453ef"
-			}
-		}
-	]
-}
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/keys/timestamp.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/keys/timestamp.json
deleted file mode 100644
index 339e796..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/keys/timestamp.json
+++ /dev/null
@@ -1 +0,0 @@
-{"encrypted":false,"data":[{"keytype":"ed25519","scheme":"ed25519","keyid_hash_algorithms":["sha512"],"keyval":{"public":"814f81f40a031f2543a29860dc1c3666416dbc424ae7c8dd79d3af3c61577e61","private":"58b4c4368feeaa3c217caa454deee36f44edaf44f92fa15c22ed8156edc9bd29814f81f40a031f2543a29860dc1c3666416dbc424ae7c8dd79d3af3c61577e61"}}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/077b1bccf9b08d011e5ed54338408b90cd089ba6bf2f57b9f65eaedb5245ab58a2b2cadbb7c9fe21c4c5935dce4f325e07d732296e2d01af32fe1ae5fa4c4094.targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/077b1bccf9b08d011e5ed54338408b90cd089ba6bf2f57b9f65eaedb5245ab58a2b2cadbb7c9fe21c4c5935dce4f325e07d732296e2d01af32fe1ae5fa4c4094.targets.json
deleted file mode 100644
index 54af415..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/077b1bccf9b08d011e5ed54338408b90cd089ba6bf2f57b9f65eaedb5245ab58a2b2cadbb7c9fe21c4c5935dce4f325e07d732296e2d01af32fe1ae5fa4c4094.targets.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"targets","expires":"2100-01-01T00:00:00Z","spec_version":"1.0","targets":{"0":{"hashes":{"sha512":"31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"},"length":1}},"version":1},"signatures":[{"keyid":"c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e","sig":"4fbdc8c6e31f63ed182694ae82081e52a68ea563d8e6339e7c247531538af6cfa3e19f7cbcf9d790c6daa57460a60ea74b75eacd1b320d86193be7d36dae3a07"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/1.root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/1.root.json
deleted file mode 100644
index faa92c6..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/1.root.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"root","consistent_snapshot":true,"expires":"2100-01-01T00:00:00Z","keys":{"0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"9d0a51a3b2c40f8bfb6a989787eebfd0b7af521f85ecfa74ce6a3036239b7518"},"scheme":"ed25519"},"4f6cbf068b19f3f876f0919eafb43f65e4899504fc18b822c6e6078b798c986b":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"bca92195f8fb4fe781e59614f819ee983d7398deea249cb93e4517e5a7b285f7"},"scheme":"ed25519"},"c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"03f9d7cb27b94b914fda338371cc525afefddf2075a179dc7927d17b79b453ef"},"scheme":"ed25519"},"c9e06997f3e77a1c999ed35b41899790214e9669b3a5c900238b8ed7260b375b":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"0b4fd984ce719448735d51496f20bfeba6ce076efd3311f828baca405827a680"},"scheme":"ed25519"}},"roles":{"root":{"keyids":["c9e06997f3e77a1c999ed35b41899790214e9669b3a5c900238b8ed7260b375b"],"threshold":1},"snapshot":{"keyids":["0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7"],"threshold":1},"targets":{"keyids":["c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e"],"threshold":1},"timestamp":{"keyids":["4f6cbf068b19f3f876f0919eafb43f65e4899504fc18b822c6e6078b798c986b"],"threshold":1}},"spec_version":"1.0","version":1},"signatures":[{"keyid":"c9e06997f3e77a1c999ed35b41899790214e9669b3a5c900238b8ed7260b375b","sig":"83803c5ce5acb02df6bd8287b16f356b9139f0c9e2696731875361ab422849d7683a0543ba83e55eea15ed77a84f654196e68337c6d2db31ec95d6a8ac7aa10f"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/1.root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/1.root.json
new file mode 120000
index 0000000..fb4fe81
--- /dev/null
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/1.root.json
@@ -0,0 +1 @@
+../../2/repository/1.root.json
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/1.snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/1.snapshot.json
deleted file mode 100644
index ca3b1f0..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/1.snapshot.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"snapshot","expires":"2100-01-01T00:00:00Z","meta":{"root.json":{"hashes":{"sha512":"3501a1e50ea2045abb29c5b4accc1fe95d10c574e2797d0391fb701f4f2d1cb8f343b301bfed5fff0817afeed491e058dfb5ba01e00c916fc81d2e22b7dbde84"},"length":1704,"version":1},"targets.json":{"hashes":{"sha512":"077b1bccf9b08d011e5ed54338408b90cd089ba6bf2f57b9f65eaedb5245ab58a2b2cadbb7c9fe21c4c5935dce4f325e07d732296e2d01af32fe1ae5fa4c4094"},"length":505,"version":1}},"spec_version":"1.0","version":1},"signatures":[{"keyid":"0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7","sig":"8a8d8f27a7b46a41a50c8fb5f9f9a355f1dd9538e29505f2b13c4ae2598084b4d87d1600485eeca23237e70a6ff5f6df1cee42542c929cd3129a00df0f6fc409"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/1.targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/1.targets.json
deleted file mode 100644
index 54af415..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/1.targets.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"targets","expires":"2100-01-01T00:00:00Z","spec_version":"1.0","targets":{"0":{"hashes":{"sha512":"31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"},"length":1}},"version":1},"signatures":[{"keyid":"c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e","sig":"4fbdc8c6e31f63ed182694ae82081e52a68ea563d8e6339e7c247531538af6cfa3e19f7cbcf9d790c6daa57460a60ea74b75eacd1b320d86193be7d36dae3a07"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/17957fb35719cdf1b42f9a82e53981433c76be22ceefe0c1f27c23345d99491daecc0b3979bb963c716aaeb6c52502f5e4d5bd63a3406352a0d39f2b1fe90472.snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/17957fb35719cdf1b42f9a82e53981433c76be22ceefe0c1f27c23345d99491daecc0b3979bb963c716aaeb6c52502f5e4d5bd63a3406352a0d39f2b1fe90472.snapshot.json
deleted file mode 100644
index 453e1ac..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/17957fb35719cdf1b42f9a82e53981433c76be22ceefe0c1f27c23345d99491daecc0b3979bb963c716aaeb6c52502f5e4d5bd63a3406352a0d39f2b1fe90472.snapshot.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"snapshot","expires":"2100-01-01T00:00:00Z","meta":{"root.json":{"hashes":{"sha512":"9b995f439e9d7d53faa975ee5715d3a9f32cdd4b83a72314a3cdbe0e823faae6bd424a4a961b9fff225e59d7b6d1ee4b08fad1e289b280a2c2e13f384ec2eb8c"},"length":1704,"version":2},"targets.json":{"hashes":{"sha512":"c944d09e8c5efda309e1a4498277af737b97dc8823a659ed3a60c4d011dcdc729797fd1a6f6d963b93bc2a30414be3f88481837c2b17d14f072b39f2191866a2"},"length":673,"version":2}},"spec_version":"1.0","version":2},"signatures":[{"keyid":"0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7","sig":"f6e31e7bb5789f7c18fcaadbe6cca65c9b874fe67255291bcf56641a11a7b764939602b31aa928b2e02a87fcefbc8ef91d8de19ebd61007818eebafa76c6b701"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/2.root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/2.root.json
deleted file mode 100644
index f2c637d..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/2.root.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"root","consistent_snapshot":true,"expires":"2100-01-01T00:00:00Z","keys":{"0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"9d0a51a3b2c40f8bfb6a989787eebfd0b7af521f85ecfa74ce6a3036239b7518"},"scheme":"ed25519"},"c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"03f9d7cb27b94b914fda338371cc525afefddf2075a179dc7927d17b79b453ef"},"scheme":"ed25519"},"c9e06997f3e77a1c999ed35b41899790214e9669b3a5c900238b8ed7260b375b":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"0b4fd984ce719448735d51496f20bfeba6ce076efd3311f828baca405827a680"},"scheme":"ed25519"},"cf0618db7ba21084b308c7a3a46219aff05e2ec39d48d55baac5e0c9ae5f9a47":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"814f81f40a031f2543a29860dc1c3666416dbc424ae7c8dd79d3af3c61577e61"},"scheme":"ed25519"}},"roles":{"root":{"keyids":["c9e06997f3e77a1c999ed35b41899790214e9669b3a5c900238b8ed7260b375b"],"threshold":1},"snapshot":{"keyids":["0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7"],"threshold":1},"targets":{"keyids":["c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e"],"threshold":1},"timestamp":{"keyids":["cf0618db7ba21084b308c7a3a46219aff05e2ec39d48d55baac5e0c9ae5f9a47"],"threshold":1}},"spec_version":"1.0","version":2},"signatures":[{"keyid":"c9e06997f3e77a1c999ed35b41899790214e9669b3a5c900238b8ed7260b375b","sig":"55463ef12660d470109117b2873e1c018aaf606b9b7918ec6362929db5312665a8697c83510212bac5ef236284342922a96a4ce88122470851a7b7cb7536a107"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/2.root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/2.root.json
new file mode 120000
index 0000000..55f8b9d
--- /dev/null
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/2.root.json
@@ -0,0 +1 @@
+../../2/repository/2.root.json
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/2.snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/2.snapshot.json
deleted file mode 100644
index 453e1ac..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/2.snapshot.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"snapshot","expires":"2100-01-01T00:00:00Z","meta":{"root.json":{"hashes":{"sha512":"9b995f439e9d7d53faa975ee5715d3a9f32cdd4b83a72314a3cdbe0e823faae6bd424a4a961b9fff225e59d7b6d1ee4b08fad1e289b280a2c2e13f384ec2eb8c"},"length":1704,"version":2},"targets.json":{"hashes":{"sha512":"c944d09e8c5efda309e1a4498277af737b97dc8823a659ed3a60c4d011dcdc729797fd1a6f6d963b93bc2a30414be3f88481837c2b17d14f072b39f2191866a2"},"length":673,"version":2}},"spec_version":"1.0","version":2},"signatures":[{"keyid":"0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7","sig":"f6e31e7bb5789f7c18fcaadbe6cca65c9b874fe67255291bcf56641a11a7b764939602b31aa928b2e02a87fcefbc8ef91d8de19ebd61007818eebafa76c6b701"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/2.targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/2.targets.json
deleted file mode 100644
index e82b814..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/2.targets.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"targets","expires":"2100-01-01T00:00:00Z","spec_version":"1.0","targets":{"0":{"hashes":{"sha512":"31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"},"length":1},"1":{"hashes":{"sha512":"4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a"},"length":1}},"version":2},"signatures":[{"keyid":"c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e","sig":"e50e81453ed9416a8877fa83a7e8dcc8d2ce73b38808986d420fc940ba6fa43c60b53d1a00caba2ae5a06ff8421472c9c4a09efee56cbe63a683b01f15f4e10a"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/28c33847af0916c8bd7231f6610911bf977b677bbcc2904dd86c6d294fb807b837146a8e9b36ea563f9cf95261e7ba261f6337b2925f595ba8b46baa9ca58699.snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/28c33847af0916c8bd7231f6610911bf977b677bbcc2904dd86c6d294fb807b837146a8e9b36ea563f9cf95261e7ba261f6337b2925f595ba8b46baa9ca58699.snapshot.json
deleted file mode 100644
index 0a49263..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/28c33847af0916c8bd7231f6610911bf977b677bbcc2904dd86c6d294fb807b837146a8e9b36ea563f9cf95261e7ba261f6337b2925f595ba8b46baa9ca58699.snapshot.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"snapshot","expires":"2100-01-01T00:00:00Z","meta":{"root.json":{"hashes":{"sha512":"9b995f439e9d7d53faa975ee5715d3a9f32cdd4b83a72314a3cdbe0e823faae6bd424a4a961b9fff225e59d7b6d1ee4b08fad1e289b280a2c2e13f384ec2eb8c"},"length":1704,"version":2},"targets.json":{"hashes":{"sha512":"544d56373898163c901da99746d89fc84b03ba37691cc37b14c6f3e6372510ea5a63023eb16e42151ee188cd5b1da589ecc323f2dca49b554479595d19595bb7"},"length":841,"version":3}},"spec_version":"1.0","version":3},"signatures":[{"keyid":"0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7","sig":"b47e6d8d242a8c8965d3a3e0aaf1787ccd3e4c99b10648c2573241915d35dfa130170ee729503a57c543b5828d029626e4f7caa5414c971b4c35c443e0ed6d05"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/3.root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/3.root.json
deleted file mode 100644
index 1029d48..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/3.root.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"root","consistent_snapshot":true,"expires":"2100-01-01T00:00:00Z","keys":{"0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"9d0a51a3b2c40f8bfb6a989787eebfd0b7af521f85ecfa74ce6a3036239b7518"},"scheme":"ed25519"},"99bc60ecc428001eb80f5f5b65f19856c7cecee35c3fc52e8aaaa3adc14baf5a":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"6ba18d6ace9ad74126872cde0a033c1c23eafaf0b02c1a0be02046304f66f0de"},"scheme":"ed25519"},"c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"03f9d7cb27b94b914fda338371cc525afefddf2075a179dc7927d17b79b453ef"},"scheme":"ed25519"},"cf0618db7ba21084b308c7a3a46219aff05e2ec39d48d55baac5e0c9ae5f9a47":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"814f81f40a031f2543a29860dc1c3666416dbc424ae7c8dd79d3af3c61577e61"},"scheme":"ed25519"}},"roles":{"root":{"keyids":["99bc60ecc428001eb80f5f5b65f19856c7cecee35c3fc52e8aaaa3adc14baf5a"],"threshold":1},"snapshot":{"keyids":["0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7"],"threshold":1},"targets":{"keyids":["c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e"],"threshold":1},"timestamp":{"keyids":["cf0618db7ba21084b308c7a3a46219aff05e2ec39d48d55baac5e0c9ae5f9a47"],"threshold":1}},"spec_version":"1.0","version":3},"signatures":[{"keyid":"c9e06997f3e77a1c999ed35b41899790214e9669b3a5c900238b8ed7260b375b","sig":"bad607ef21e7cb5bf6edc24e2e0dbf584037a8aeb823ad10fdab88e972c151ed1733cb3f1675544750ff9dc84c0a254ed1f55c53016620939555ee1aa6f46707"},{"keyid":"99bc60ecc428001eb80f5f5b65f19856c7cecee35c3fc52e8aaaa3adc14baf5a","sig":"56fdb408f68f6167e42d5f172c78d7354ff6b92329846242c528d3c17c55f43cf482fa61696efd0ced19fe047bbf82f9cabfc9c4ed5f759c9844ac018aa69b09"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/3.root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/3.root.json
new file mode 120000
index 0000000..b4564b7
--- /dev/null
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/3.root.json
@@ -0,0 +1 @@
+../../2/repository/3.root.json
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/3.snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/3.snapshot.json
deleted file mode 100644
index 0a49263..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/3.snapshot.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"snapshot","expires":"2100-01-01T00:00:00Z","meta":{"root.json":{"hashes":{"sha512":"9b995f439e9d7d53faa975ee5715d3a9f32cdd4b83a72314a3cdbe0e823faae6bd424a4a961b9fff225e59d7b6d1ee4b08fad1e289b280a2c2e13f384ec2eb8c"},"length":1704,"version":2},"targets.json":{"hashes":{"sha512":"544d56373898163c901da99746d89fc84b03ba37691cc37b14c6f3e6372510ea5a63023eb16e42151ee188cd5b1da589ecc323f2dca49b554479595d19595bb7"},"length":841,"version":3}},"spec_version":"1.0","version":3},"signatures":[{"keyid":"0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7","sig":"b47e6d8d242a8c8965d3a3e0aaf1787ccd3e4c99b10648c2573241915d35dfa130170ee729503a57c543b5828d029626e4f7caa5414c971b4c35c443e0ed6d05"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/3.targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/3.targets.json
deleted file mode 100644
index 4ec4a91..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/3.targets.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"targets","expires":"2100-01-01T00:00:00Z","spec_version":"1.0","targets":{"0":{"hashes":{"sha512":"31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"},"length":1},"1":{"hashes":{"sha512":"4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a"},"length":1},"2":{"hashes":{"sha512":"40b244112641dd78dd4f93b6c9190dd46e0099194d5a44257b7efad6ef9ff4683da1eda0244448cb343aa688f5d3efd7314dafe580ac0bcbf115aeca9e8dc114"},"length":1}},"version":3},"signatures":[{"keyid":"c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e","sig":"c899a41e9dd4ec3d5c68d86924b535bcfce246448c4ad0f4622a0c0eb2ebde0704916e949357e4e256c3628ab7d31ae2133ab340ba68f5d91a7a03faed0d3906"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/3501a1e50ea2045abb29c5b4accc1fe95d10c574e2797d0391fb701f4f2d1cb8f343b301bfed5fff0817afeed491e058dfb5ba01e00c916fc81d2e22b7dbde84.root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/3501a1e50ea2045abb29c5b4accc1fe95d10c574e2797d0391fb701f4f2d1cb8f343b301bfed5fff0817afeed491e058dfb5ba01e00c916fc81d2e22b7dbde84.root.json
deleted file mode 100644
index faa92c6..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/3501a1e50ea2045abb29c5b4accc1fe95d10c574e2797d0391fb701f4f2d1cb8f343b301bfed5fff0817afeed491e058dfb5ba01e00c916fc81d2e22b7dbde84.root.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"root","consistent_snapshot":true,"expires":"2100-01-01T00:00:00Z","keys":{"0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"9d0a51a3b2c40f8bfb6a989787eebfd0b7af521f85ecfa74ce6a3036239b7518"},"scheme":"ed25519"},"4f6cbf068b19f3f876f0919eafb43f65e4899504fc18b822c6e6078b798c986b":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"bca92195f8fb4fe781e59614f819ee983d7398deea249cb93e4517e5a7b285f7"},"scheme":"ed25519"},"c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"03f9d7cb27b94b914fda338371cc525afefddf2075a179dc7927d17b79b453ef"},"scheme":"ed25519"},"c9e06997f3e77a1c999ed35b41899790214e9669b3a5c900238b8ed7260b375b":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"0b4fd984ce719448735d51496f20bfeba6ce076efd3311f828baca405827a680"},"scheme":"ed25519"}},"roles":{"root":{"keyids":["c9e06997f3e77a1c999ed35b41899790214e9669b3a5c900238b8ed7260b375b"],"threshold":1},"snapshot":{"keyids":["0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7"],"threshold":1},"targets":{"keyids":["c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e"],"threshold":1},"timestamp":{"keyids":["4f6cbf068b19f3f876f0919eafb43f65e4899504fc18b822c6e6078b798c986b"],"threshold":1}},"spec_version":"1.0","version":1},"signatures":[{"keyid":"c9e06997f3e77a1c999ed35b41899790214e9669b3a5c900238b8ed7260b375b","sig":"83803c5ce5acb02df6bd8287b16f356b9139f0c9e2696731875361ab422849d7683a0543ba83e55eea15ed77a84f654196e68337c6d2db31ec95d6a8ac7aa10f"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/4.root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/4.root.json
new file mode 100644
index 0000000..c71e3b7
--- /dev/null
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/4.root.json
@@ -0,0 +1,83 @@
+{
+	"signatures": [
+		{
+			"keyid": "4c663b6d0b9f2c74a19b6791c1417c8d1916e2d84461be1a8148e4386c89582d",
+			"sig": "ec7e22d27d5b5c43d350ae7b6345fd0acc37b7106063081f637f49fe09cc8f4c6db664f2198d53f930dc061c1ab25d1b015336a12085ee582e823eaf309b1202"
+		}
+	],
+	"signed": {
+		"_type": "root",
+		"consistent_snapshot": false,
+		"expires": "2100-01-01T00:00:00Z",
+		"keys": {
+			"4c663b6d0b9f2c74a19b6791c1417c8d1916e2d84461be1a8148e4386c89582d": {
+				"keyid_hash_algorithms": [
+					"sha256"
+				],
+				"keytype": "ed25519",
+				"keyval": {
+					"public": "153986a7370e002f377dd68797e7466c421180c1571e233de2f8ab41c8af4f54"
+				},
+				"scheme": "ed25519"
+			},
+			"a3eba2113e37b749b908101bdb7b856a44f2853641830c0f939730aca3e30360": {
+				"keyid_hash_algorithms": [
+					"sha256"
+				],
+				"keytype": "ed25519",
+				"keyval": {
+					"public": "aee574e56780ea1709a8b56e02d4ffdd9a3a1deaed61e2eb0701f376a4422e42"
+				},
+				"scheme": "ed25519"
+			},
+			"b59406a55fbe2492022f2951dacd01fc7b400b7b41ec4028b8356161a5a71a33": {
+				"keyid_hash_algorithms": [
+					"sha256"
+				],
+				"keytype": "ed25519",
+				"keyval": {
+					"public": "8656ad20568cd3534c405e4d9a84b0c6e6163f7f66434df77416502835b9b160"
+				},
+				"scheme": "ed25519"
+			},
+			"bed15bf57ba4deb4e09667099d45d119504420983d16fd0927ebfb0c25184e7f": {
+				"keyid_hash_algorithms": [
+					"sha256"
+				],
+				"keytype": "ed25519",
+				"keyval": {
+					"public": "722dbc861813bb5b568524d62083e875c08e66fed1694d9161d253fa163dd86f"
+				},
+				"scheme": "ed25519"
+			}
+		},
+		"roles": {
+			"root": {
+				"keyids": [
+					"4c663b6d0b9f2c74a19b6791c1417c8d1916e2d84461be1a8148e4386c89582d"
+				],
+				"threshold": 1
+			},
+			"snapshot": {
+				"keyids": [
+					"bed15bf57ba4deb4e09667099d45d119504420983d16fd0927ebfb0c25184e7f"
+				],
+				"threshold": 1
+			},
+			"targets": {
+				"keyids": [
+					"a3eba2113e37b749b908101bdb7b856a44f2853641830c0f939730aca3e30360"
+				],
+				"threshold": 1
+			},
+			"timestamp": {
+				"keyids": [
+					"b59406a55fbe2492022f2951dacd01fc7b400b7b41ec4028b8356161a5a71a33"
+				],
+				"threshold": 1
+			}
+		},
+		"spec_version": "1.0",
+		"version": 4
+	}
+}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/4.snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/4.snapshot.json
deleted file mode 100644
index 6316dfe..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/4.snapshot.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"snapshot","expires":"2100-01-01T00:00:00Z","meta":{"root.json":{"hashes":{"sha512":"58236babe5fae9454fb0f8d3150b10cbbe65fff7efc32850fafd2a203b52a00a21819b2bacec8b2aadac0a8a662da4259727544a0b01bbc76f534c4ce3048230"},"length":1918,"version":3},"targets.json":{"hashes":{"sha512":"71408991e0b5359d1a6f2ce0716b515f209821660a965f76d0c0df1cf6667aa7749518c45d4346de444f6a0a5b7864c1c11fae44010c7497d213392964847406"},"length":1009,"version":4}},"spec_version":"1.0","version":4},"signatures":[{"keyid":"0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7","sig":"fd9e7c74b682fd0010beb790632a56224dc6ae5030652f57a2bfe4b0ca0e4e7cc6ef30655bfdc76ce24bac6822a16a98db6689c6131dbb65f20d3ebea5aeb304"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/4.targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/4.targets.json
deleted file mode 100644
index 0a2635d..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/4.targets.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"targets","expires":"2100-01-01T00:00:00Z","spec_version":"1.0","targets":{"0":{"hashes":{"sha512":"31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"},"length":1},"1":{"hashes":{"sha512":"4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a"},"length":1},"2":{"hashes":{"sha512":"40b244112641dd78dd4f93b6c9190dd46e0099194d5a44257b7efad6ef9ff4683da1eda0244448cb343aa688f5d3efd7314dafe580ac0bcbf115aeca9e8dc114"},"length":1},"3":{"hashes":{"sha512":"3bafbf08882a2d10133093a1b8433f50563b93c14acd05b79028eb1d12799027241450980651994501423a66c276ae26c43b739bc65c4e16b10c3af6c202aebb"},"length":1}},"version":4},"signatures":[{"keyid":"c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e","sig":"d6e0604d6aa9680fc11fd7bf9004e1d2203fa89af8dce1d0cd91fdfa0a56f24c4e990ce5f17b4f838edc50c1be3009115556417c5ce338be12be28ba67d48005"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/544d56373898163c901da99746d89fc84b03ba37691cc37b14c6f3e6372510ea5a63023eb16e42151ee188cd5b1da589ecc323f2dca49b554479595d19595bb7.targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/544d56373898163c901da99746d89fc84b03ba37691cc37b14c6f3e6372510ea5a63023eb16e42151ee188cd5b1da589ecc323f2dca49b554479595d19595bb7.targets.json
deleted file mode 100644
index 4ec4a91..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/544d56373898163c901da99746d89fc84b03ba37691cc37b14c6f3e6372510ea5a63023eb16e42151ee188cd5b1da589ecc323f2dca49b554479595d19595bb7.targets.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"targets","expires":"2100-01-01T00:00:00Z","spec_version":"1.0","targets":{"0":{"hashes":{"sha512":"31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"},"length":1},"1":{"hashes":{"sha512":"4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a"},"length":1},"2":{"hashes":{"sha512":"40b244112641dd78dd4f93b6c9190dd46e0099194d5a44257b7efad6ef9ff4683da1eda0244448cb343aa688f5d3efd7314dafe580ac0bcbf115aeca9e8dc114"},"length":1}},"version":3},"signatures":[{"keyid":"c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e","sig":"c899a41e9dd4ec3d5c68d86924b535bcfce246448c4ad0f4622a0c0eb2ebde0704916e949357e4e256c3628ab7d31ae2133ab340ba68f5d91a7a03faed0d3906"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/58236babe5fae9454fb0f8d3150b10cbbe65fff7efc32850fafd2a203b52a00a21819b2bacec8b2aadac0a8a662da4259727544a0b01bbc76f534c4ce3048230.root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/58236babe5fae9454fb0f8d3150b10cbbe65fff7efc32850fafd2a203b52a00a21819b2bacec8b2aadac0a8a662da4259727544a0b01bbc76f534c4ce3048230.root.json
deleted file mode 100644
index 1029d48..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/58236babe5fae9454fb0f8d3150b10cbbe65fff7efc32850fafd2a203b52a00a21819b2bacec8b2aadac0a8a662da4259727544a0b01bbc76f534c4ce3048230.root.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"root","consistent_snapshot":true,"expires":"2100-01-01T00:00:00Z","keys":{"0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"9d0a51a3b2c40f8bfb6a989787eebfd0b7af521f85ecfa74ce6a3036239b7518"},"scheme":"ed25519"},"99bc60ecc428001eb80f5f5b65f19856c7cecee35c3fc52e8aaaa3adc14baf5a":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"6ba18d6ace9ad74126872cde0a033c1c23eafaf0b02c1a0be02046304f66f0de"},"scheme":"ed25519"},"c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"03f9d7cb27b94b914fda338371cc525afefddf2075a179dc7927d17b79b453ef"},"scheme":"ed25519"},"cf0618db7ba21084b308c7a3a46219aff05e2ec39d48d55baac5e0c9ae5f9a47":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"814f81f40a031f2543a29860dc1c3666416dbc424ae7c8dd79d3af3c61577e61"},"scheme":"ed25519"}},"roles":{"root":{"keyids":["99bc60ecc428001eb80f5f5b65f19856c7cecee35c3fc52e8aaaa3adc14baf5a"],"threshold":1},"snapshot":{"keyids":["0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7"],"threshold":1},"targets":{"keyids":["c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e"],"threshold":1},"timestamp":{"keyids":["cf0618db7ba21084b308c7a3a46219aff05e2ec39d48d55baac5e0c9ae5f9a47"],"threshold":1}},"spec_version":"1.0","version":3},"signatures":[{"keyid":"c9e06997f3e77a1c999ed35b41899790214e9669b3a5c900238b8ed7260b375b","sig":"bad607ef21e7cb5bf6edc24e2e0dbf584037a8aeb823ad10fdab88e972c151ed1733cb3f1675544750ff9dc84c0a254ed1f55c53016620939555ee1aa6f46707"},{"keyid":"99bc60ecc428001eb80f5f5b65f19856c7cecee35c3fc52e8aaaa3adc14baf5a","sig":"56fdb408f68f6167e42d5f172c78d7354ff6b92329846242c528d3c17c55f43cf482fa61696efd0ced19fe047bbf82f9cabfc9c4ed5f759c9844ac018aa69b09"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/71408991e0b5359d1a6f2ce0716b515f209821660a965f76d0c0df1cf6667aa7749518c45d4346de444f6a0a5b7864c1c11fae44010c7497d213392964847406.targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/71408991e0b5359d1a6f2ce0716b515f209821660a965f76d0c0df1cf6667aa7749518c45d4346de444f6a0a5b7864c1c11fae44010c7497d213392964847406.targets.json
deleted file mode 100644
index 0a2635d..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/71408991e0b5359d1a6f2ce0716b515f209821660a965f76d0c0df1cf6667aa7749518c45d4346de444f6a0a5b7864c1c11fae44010c7497d213392964847406.targets.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"targets","expires":"2100-01-01T00:00:00Z","spec_version":"1.0","targets":{"0":{"hashes":{"sha512":"31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"},"length":1},"1":{"hashes":{"sha512":"4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a"},"length":1},"2":{"hashes":{"sha512":"40b244112641dd78dd4f93b6c9190dd46e0099194d5a44257b7efad6ef9ff4683da1eda0244448cb343aa688f5d3efd7314dafe580ac0bcbf115aeca9e8dc114"},"length":1},"3":{"hashes":{"sha512":"3bafbf08882a2d10133093a1b8433f50563b93c14acd05b79028eb1d12799027241450980651994501423a66c276ae26c43b739bc65c4e16b10c3af6c202aebb"},"length":1}},"version":4},"signatures":[{"keyid":"c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e","sig":"d6e0604d6aa9680fc11fd7bf9004e1d2203fa89af8dce1d0cd91fdfa0a56f24c4e990ce5f17b4f838edc50c1be3009115556417c5ce338be12be28ba67d48005"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/9b995f439e9d7d53faa975ee5715d3a9f32cdd4b83a72314a3cdbe0e823faae6bd424a4a961b9fff225e59d7b6d1ee4b08fad1e289b280a2c2e13f384ec2eb8c.root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/9b995f439e9d7d53faa975ee5715d3a9f32cdd4b83a72314a3cdbe0e823faae6bd424a4a961b9fff225e59d7b6d1ee4b08fad1e289b280a2c2e13f384ec2eb8c.root.json
deleted file mode 100644
index f2c637d..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/9b995f439e9d7d53faa975ee5715d3a9f32cdd4b83a72314a3cdbe0e823faae6bd424a4a961b9fff225e59d7b6d1ee4b08fad1e289b280a2c2e13f384ec2eb8c.root.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"root","consistent_snapshot":true,"expires":"2100-01-01T00:00:00Z","keys":{"0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"9d0a51a3b2c40f8bfb6a989787eebfd0b7af521f85ecfa74ce6a3036239b7518"},"scheme":"ed25519"},"c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"03f9d7cb27b94b914fda338371cc525afefddf2075a179dc7927d17b79b453ef"},"scheme":"ed25519"},"c9e06997f3e77a1c999ed35b41899790214e9669b3a5c900238b8ed7260b375b":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"0b4fd984ce719448735d51496f20bfeba6ce076efd3311f828baca405827a680"},"scheme":"ed25519"},"cf0618db7ba21084b308c7a3a46219aff05e2ec39d48d55baac5e0c9ae5f9a47":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"814f81f40a031f2543a29860dc1c3666416dbc424ae7c8dd79d3af3c61577e61"},"scheme":"ed25519"}},"roles":{"root":{"keyids":["c9e06997f3e77a1c999ed35b41899790214e9669b3a5c900238b8ed7260b375b"],"threshold":1},"snapshot":{"keyids":["0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7"],"threshold":1},"targets":{"keyids":["c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e"],"threshold":1},"timestamp":{"keyids":["cf0618db7ba21084b308c7a3a46219aff05e2ec39d48d55baac5e0c9ae5f9a47"],"threshold":1}},"spec_version":"1.0","version":2},"signatures":[{"keyid":"c9e06997f3e77a1c999ed35b41899790214e9669b3a5c900238b8ed7260b375b","sig":"55463ef12660d470109117b2873e1c018aaf606b9b7918ec6362929db5312665a8697c83510212bac5ef236284342922a96a4ce88122470851a7b7cb7536a107"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/c944d09e8c5efda309e1a4498277af737b97dc8823a659ed3a60c4d011dcdc729797fd1a6f6d963b93bc2a30414be3f88481837c2b17d14f072b39f2191866a2.targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/c944d09e8c5efda309e1a4498277af737b97dc8823a659ed3a60c4d011dcdc729797fd1a6f6d963b93bc2a30414be3f88481837c2b17d14f072b39f2191866a2.targets.json
deleted file mode 100644
index e82b814..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/c944d09e8c5efda309e1a4498277af737b97dc8823a659ed3a60c4d011dcdc729797fd1a6f6d963b93bc2a30414be3f88481837c2b17d14f072b39f2191866a2.targets.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"targets","expires":"2100-01-01T00:00:00Z","spec_version":"1.0","targets":{"0":{"hashes":{"sha512":"31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"},"length":1},"1":{"hashes":{"sha512":"4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a"},"length":1}},"version":2},"signatures":[{"keyid":"c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e","sig":"e50e81453ed9416a8877fa83a7e8dcc8d2ce73b38808986d420fc940ba6fa43c60b53d1a00caba2ae5a06ff8421472c9c4a09efee56cbe63a683b01f15f4e10a"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/cf876f96b3cf5a52a13628e981cb1118949b855c4d2e5a48149c1d588e134b389271065be52a1f861fd5e84ae025cb239b5110f5f25a3a983824d1e0a7633183.snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/cf876f96b3cf5a52a13628e981cb1118949b855c4d2e5a48149c1d588e134b389271065be52a1f861fd5e84ae025cb239b5110f5f25a3a983824d1e0a7633183.snapshot.json
deleted file mode 100644
index 6316dfe..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/cf876f96b3cf5a52a13628e981cb1118949b855c4d2e5a48149c1d588e134b389271065be52a1f861fd5e84ae025cb239b5110f5f25a3a983824d1e0a7633183.snapshot.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"snapshot","expires":"2100-01-01T00:00:00Z","meta":{"root.json":{"hashes":{"sha512":"58236babe5fae9454fb0f8d3150b10cbbe65fff7efc32850fafd2a203b52a00a21819b2bacec8b2aadac0a8a662da4259727544a0b01bbc76f534c4ce3048230"},"length":1918,"version":3},"targets.json":{"hashes":{"sha512":"71408991e0b5359d1a6f2ce0716b515f209821660a965f76d0c0df1cf6667aa7749518c45d4346de444f6a0a5b7864c1c11fae44010c7497d213392964847406"},"length":1009,"version":4}},"spec_version":"1.0","version":4},"signatures":[{"keyid":"0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7","sig":"fd9e7c74b682fd0010beb790632a56224dc6ae5030652f57a2bfe4b0ca0e4e7cc6ef30655bfdc76ce24bac6822a16a98db6689c6131dbb65f20d3ebea5aeb304"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/e92754ae7309051b870ced601ab9bb9817b457a7c48f010f6060d32aba60afaa88ac4d79a78bf79a2fe4602c74831fe1d402ddf109314793964486d4017fadee.snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/e92754ae7309051b870ced601ab9bb9817b457a7c48f010f6060d32aba60afaa88ac4d79a78bf79a2fe4602c74831fe1d402ddf109314793964486d4017fadee.snapshot.json
deleted file mode 100644
index ca3b1f0..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/e92754ae7309051b870ced601ab9bb9817b457a7c48f010f6060d32aba60afaa88ac4d79a78bf79a2fe4602c74831fe1d402ddf109314793964486d4017fadee.snapshot.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"snapshot","expires":"2100-01-01T00:00:00Z","meta":{"root.json":{"hashes":{"sha512":"3501a1e50ea2045abb29c5b4accc1fe95d10c574e2797d0391fb701f4f2d1cb8f343b301bfed5fff0817afeed491e058dfb5ba01e00c916fc81d2e22b7dbde84"},"length":1704,"version":1},"targets.json":{"hashes":{"sha512":"077b1bccf9b08d011e5ed54338408b90cd089ba6bf2f57b9f65eaedb5245ab58a2b2cadbb7c9fe21c4c5935dce4f325e07d732296e2d01af32fe1ae5fa4c4094"},"length":505,"version":1}},"spec_version":"1.0","version":1},"signatures":[{"keyid":"0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7","sig":"8a8d8f27a7b46a41a50c8fb5f9f9a355f1dd9538e29505f2b13c4ae2598084b4d87d1600485eeca23237e70a6ff5f6df1cee42542c929cd3129a00df0f6fc409"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/root.json
index 1029d48..c71e3b7 100644
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/root.json
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/root.json
@@ -1 +1,83 @@
-{"signed":{"_type":"root","consistent_snapshot":true,"expires":"2100-01-01T00:00:00Z","keys":{"0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"9d0a51a3b2c40f8bfb6a989787eebfd0b7af521f85ecfa74ce6a3036239b7518"},"scheme":"ed25519"},"99bc60ecc428001eb80f5f5b65f19856c7cecee35c3fc52e8aaaa3adc14baf5a":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"6ba18d6ace9ad74126872cde0a033c1c23eafaf0b02c1a0be02046304f66f0de"},"scheme":"ed25519"},"c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"03f9d7cb27b94b914fda338371cc525afefddf2075a179dc7927d17b79b453ef"},"scheme":"ed25519"},"cf0618db7ba21084b308c7a3a46219aff05e2ec39d48d55baac5e0c9ae5f9a47":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"814f81f40a031f2543a29860dc1c3666416dbc424ae7c8dd79d3af3c61577e61"},"scheme":"ed25519"}},"roles":{"root":{"keyids":["99bc60ecc428001eb80f5f5b65f19856c7cecee35c3fc52e8aaaa3adc14baf5a"],"threshold":1},"snapshot":{"keyids":["0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7"],"threshold":1},"targets":{"keyids":["c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e"],"threshold":1},"timestamp":{"keyids":["cf0618db7ba21084b308c7a3a46219aff05e2ec39d48d55baac5e0c9ae5f9a47"],"threshold":1}},"spec_version":"1.0","version":3},"signatures":[{"keyid":"c9e06997f3e77a1c999ed35b41899790214e9669b3a5c900238b8ed7260b375b","sig":"bad607ef21e7cb5bf6edc24e2e0dbf584037a8aeb823ad10fdab88e972c151ed1733cb3f1675544750ff9dc84c0a254ed1f55c53016620939555ee1aa6f46707"},{"keyid":"99bc60ecc428001eb80f5f5b65f19856c7cecee35c3fc52e8aaaa3adc14baf5a","sig":"56fdb408f68f6167e42d5f172c78d7354ff6b92329846242c528d3c17c55f43cf482fa61696efd0ced19fe047bbf82f9cabfc9c4ed5f759c9844ac018aa69b09"}]}
\ No newline at end of file
+{
+	"signatures": [
+		{
+			"keyid": "4c663b6d0b9f2c74a19b6791c1417c8d1916e2d84461be1a8148e4386c89582d",
+			"sig": "ec7e22d27d5b5c43d350ae7b6345fd0acc37b7106063081f637f49fe09cc8f4c6db664f2198d53f930dc061c1ab25d1b015336a12085ee582e823eaf309b1202"
+		}
+	],
+	"signed": {
+		"_type": "root",
+		"consistent_snapshot": false,
+		"expires": "2100-01-01T00:00:00Z",
+		"keys": {
+			"4c663b6d0b9f2c74a19b6791c1417c8d1916e2d84461be1a8148e4386c89582d": {
+				"keyid_hash_algorithms": [
+					"sha256"
+				],
+				"keytype": "ed25519",
+				"keyval": {
+					"public": "153986a7370e002f377dd68797e7466c421180c1571e233de2f8ab41c8af4f54"
+				},
+				"scheme": "ed25519"
+			},
+			"a3eba2113e37b749b908101bdb7b856a44f2853641830c0f939730aca3e30360": {
+				"keyid_hash_algorithms": [
+					"sha256"
+				],
+				"keytype": "ed25519",
+				"keyval": {
+					"public": "aee574e56780ea1709a8b56e02d4ffdd9a3a1deaed61e2eb0701f376a4422e42"
+				},
+				"scheme": "ed25519"
+			},
+			"b59406a55fbe2492022f2951dacd01fc7b400b7b41ec4028b8356161a5a71a33": {
+				"keyid_hash_algorithms": [
+					"sha256"
+				],
+				"keytype": "ed25519",
+				"keyval": {
+					"public": "8656ad20568cd3534c405e4d9a84b0c6e6163f7f66434df77416502835b9b160"
+				},
+				"scheme": "ed25519"
+			},
+			"bed15bf57ba4deb4e09667099d45d119504420983d16fd0927ebfb0c25184e7f": {
+				"keyid_hash_algorithms": [
+					"sha256"
+				],
+				"keytype": "ed25519",
+				"keyval": {
+					"public": "722dbc861813bb5b568524d62083e875c08e66fed1694d9161d253fa163dd86f"
+				},
+				"scheme": "ed25519"
+			}
+		},
+		"roles": {
+			"root": {
+				"keyids": [
+					"4c663b6d0b9f2c74a19b6791c1417c8d1916e2d84461be1a8148e4386c89582d"
+				],
+				"threshold": 1
+			},
+			"snapshot": {
+				"keyids": [
+					"bed15bf57ba4deb4e09667099d45d119504420983d16fd0927ebfb0c25184e7f"
+				],
+				"threshold": 1
+			},
+			"targets": {
+				"keyids": [
+					"a3eba2113e37b749b908101bdb7b856a44f2853641830c0f939730aca3e30360"
+				],
+				"threshold": 1
+			},
+			"timestamp": {
+				"keyids": [
+					"b59406a55fbe2492022f2951dacd01fc7b400b7b41ec4028b8356161a5a71a33"
+				],
+				"threshold": 1
+			}
+		},
+		"spec_version": "1.0",
+		"version": 4
+	}
+}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/snapshot.json
index 6316dfe..e67fb80 100644
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/snapshot.json
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/snapshot.json
@@ -1 +1,30 @@
-{"signed":{"_type":"snapshot","expires":"2100-01-01T00:00:00Z","meta":{"root.json":{"hashes":{"sha512":"58236babe5fae9454fb0f8d3150b10cbbe65fff7efc32850fafd2a203b52a00a21819b2bacec8b2aadac0a8a662da4259727544a0b01bbc76f534c4ce3048230"},"length":1918,"version":3},"targets.json":{"hashes":{"sha512":"71408991e0b5359d1a6f2ce0716b515f209821660a965f76d0c0df1cf6667aa7749518c45d4346de444f6a0a5b7864c1c11fae44010c7497d213392964847406"},"length":1009,"version":4}},"spec_version":"1.0","version":4},"signatures":[{"keyid":"0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7","sig":"fd9e7c74b682fd0010beb790632a56224dc6ae5030652f57a2bfe4b0ca0e4e7cc6ef30655bfdc76ce24bac6822a16a98db6689c6131dbb65f20d3ebea5aeb304"}]}
\ No newline at end of file
+{
+	"signatures": [
+		{
+			"keyid": "bed15bf57ba4deb4e09667099d45d119504420983d16fd0927ebfb0c25184e7f",
+			"sig": "fb791108edb246566da93f43af287fc8bb7ac03d6a7c615b4c14622a95a9f029fe1b1ad97c14554bc5fa681d39df2b67858a3b63e5d49578c87f1a1a134bdb0e"
+		}
+	],
+	"signed": {
+		"_type": "snapshot",
+		"expires": "2100-01-01T00:00:00Z",
+		"meta": {
+			"root.json": {
+				"hashes": {
+					"sha512": "52f836fc2bdeec872c621b84a87a1ab9e2d46763d640bbb775f862306b060ba51370ff838b9589a732f86938509c3a55731d2e3e6f1601d14c42c47efe990ddc"
+				},
+				"length": 2118,
+				"version": 4
+			},
+			"targets.json": {
+				"hashes": {
+					"sha512": "518518c1f03d874f9832390dea5bc12ab0061400bd0b3b8b44e4a353087d802accde1ec3dc94e0be4931f572960a0192bd84e667c02e6ac99d0a3bf28f5f9802"
+				},
+				"length": 1191,
+				"version": 4
+			}
+		},
+		"spec_version": "1.0",
+		"version": 4
+	}
+}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/targets.json
index 0a2635d..4ed9d72 100644
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/targets.json
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/targets.json
@@ -1 +1,40 @@
-{"signed":{"_type":"targets","expires":"2100-01-01T00:00:00Z","spec_version":"1.0","targets":{"0":{"hashes":{"sha512":"31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"},"length":1},"1":{"hashes":{"sha512":"4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a"},"length":1},"2":{"hashes":{"sha512":"40b244112641dd78dd4f93b6c9190dd46e0099194d5a44257b7efad6ef9ff4683da1eda0244448cb343aa688f5d3efd7314dafe580ac0bcbf115aeca9e8dc114"},"length":1},"3":{"hashes":{"sha512":"3bafbf08882a2d10133093a1b8433f50563b93c14acd05b79028eb1d12799027241450980651994501423a66c276ae26c43b739bc65c4e16b10c3af6c202aebb"},"length":1}},"version":4},"signatures":[{"keyid":"c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e","sig":"d6e0604d6aa9680fc11fd7bf9004e1d2203fa89af8dce1d0cd91fdfa0a56f24c4e990ce5f17b4f838edc50c1be3009115556417c5ce338be12be28ba67d48005"}]}
\ No newline at end of file
+{
+	"signatures": [
+		{
+			"keyid": "a3eba2113e37b749b908101bdb7b856a44f2853641830c0f939730aca3e30360",
+			"sig": "7bfe0a63ee324034807b5341336d9d2d64e9ef3936086577b5bbcc6d021b4656bd6bf14d817bbb3908e4dcb05391d1b4031b527c14d942c2d1e38275d5ff1308"
+		}
+	],
+	"signed": {
+		"_type": "targets",
+		"expires": "2100-01-01T00:00:00Z",
+		"spec_version": "1.0",
+		"targets": {
+			"0": {
+				"hashes": {
+					"sha512": "31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"
+				},
+				"length": 1
+			},
+			"1": {
+				"hashes": {
+					"sha512": "4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a"
+				},
+				"length": 1
+			},
+			"2": {
+				"hashes": {
+					"sha512": "40b244112641dd78dd4f93b6c9190dd46e0099194d5a44257b7efad6ef9ff4683da1eda0244448cb343aa688f5d3efd7314dafe580ac0bcbf115aeca9e8dc114"
+				},
+				"length": 1
+			},
+			"3": {
+				"hashes": {
+					"sha512": "3bafbf08882a2d10133093a1b8433f50563b93c14acd05b79028eb1d12799027241450980651994501423a66c276ae26c43b739bc65c4e16b10c3af6c202aebb"
+				},
+				"length": 1
+			}
+		},
+		"version": 4
+	}
+}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/targets/0 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/targets/0
new file mode 120000
index 0000000..2e6dba0
--- /dev/null
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/targets/0
@@ -0,0 +1 @@
+../../../2/repository/targets/0
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/targets/0.0 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/targets/0.0
deleted file mode 100644
index c227083..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/targets/0.0
+++ /dev/null
@@ -1 +0,0 @@
-0
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/targets/0.1 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/targets/0.1
deleted file mode 100644
index 56a6051..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/targets/0.1
+++ /dev/null
@@ -1 +0,0 @@
-1
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/targets/0.2 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/targets/0.2
deleted file mode 100644
index d8263ee..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/targets/0.2
+++ /dev/null
@@ -1 +0,0 @@
-2
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/targets/1 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/targets/1
new file mode 120000
index 0000000..14fee5d
--- /dev/null
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/targets/1
@@ -0,0 +1 @@
+../../../2/repository/targets/1
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/targets/2 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/targets/2
new file mode 120000
index 0000000..dcd19e0
--- /dev/null
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/targets/2
@@ -0,0 +1 @@
+../../../2/repository/targets/2
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/targets/0.3 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/targets/3
similarity index 100%
rename from client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/targets/0.3
rename to client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/targets/3
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/targets/31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99.0 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/targets/31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99.0
deleted file mode 100644
index c227083..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/targets/31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99.0
+++ /dev/null
@@ -1 +0,0 @@
-0
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/targets/3bafbf08882a2d10133093a1b8433f50563b93c14acd05b79028eb1d12799027241450980651994501423a66c276ae26c43b739bc65c4e16b10c3af6c202aebb.3 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/targets/3bafbf08882a2d10133093a1b8433f50563b93c14acd05b79028eb1d12799027241450980651994501423a66c276ae26c43b739bc65c4e16b10c3af6c202aebb.3
deleted file mode 100644
index e440e5c..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/targets/3bafbf08882a2d10133093a1b8433f50563b93c14acd05b79028eb1d12799027241450980651994501423a66c276ae26c43b739bc65c4e16b10c3af6c202aebb.3
+++ /dev/null
@@ -1 +0,0 @@
-3
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/targets/40b244112641dd78dd4f93b6c9190dd46e0099194d5a44257b7efad6ef9ff4683da1eda0244448cb343aa688f5d3efd7314dafe580ac0bcbf115aeca9e8dc114.2 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/targets/40b244112641dd78dd4f93b6c9190dd46e0099194d5a44257b7efad6ef9ff4683da1eda0244448cb343aa688f5d3efd7314dafe580ac0bcbf115aeca9e8dc114.2
deleted file mode 100644
index d8263ee..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/targets/40b244112641dd78dd4f93b6c9190dd46e0099194d5a44257b7efad6ef9ff4683da1eda0244448cb343aa688f5d3efd7314dafe580ac0bcbf115aeca9e8dc114.2
+++ /dev/null
@@ -1 +0,0 @@
-2
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/targets/4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a.1 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/targets/4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a.1
deleted file mode 100644
index 56a6051..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/targets/4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a.1
+++ /dev/null
@@ -1 +0,0 @@
-1
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/timestamp.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/timestamp.json
index 00a80f4..d6a3549 100644
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/timestamp.json
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/3/repository/timestamp.json
@@ -1 +1,23 @@
-{"signed":{"_type":"timestamp","expires":"2100-01-01T00:00:00Z","meta":{"snapshot.json":{"hashes":{"sha512":"cf876f96b3cf5a52a13628e981cb1118949b855c4d2e5a48149c1d588e134b389271065be52a1f861fd5e84ae025cb239b5110f5f25a3a983824d1e0a7633183"},"length":720,"version":4}},"spec_version":"1.0","version":4},"signatures":[{"keyid":"cf0618db7ba21084b308c7a3a46219aff05e2ec39d48d55baac5e0c9ae5f9a47","sig":"ee8ba3f97f104f1fc8bd9220a899a8b9f041802f9e1094860c36e7be04a0be2fe9e1f6e55e7be2d1b5a5f23448a51617b4b90c8f43d4305bb93b9190fd74510c"}]}
\ No newline at end of file
+{
+	"signatures": [
+		{
+			"keyid": "b59406a55fbe2492022f2951dacd01fc7b400b7b41ec4028b8356161a5a71a33",
+			"sig": "f93295631c148c1f4949c44cb07e1daca4b0cf587e5d3b999740b3e012e0dd2780803b3aec44c9fa1f27d0f5fa28136073331c41d81de5e4b82a7d7df5591509"
+		}
+	],
+	"signed": {
+		"_type": "timestamp",
+		"expires": "2100-01-01T00:00:00Z",
+		"meta": {
+			"snapshot.json": {
+				"hashes": {
+					"sha512": "6455d62f5676402784607019dbb9a23ab31ee61b47a67a4fcd2a69bf3a3b5ec60b602b42112626f17ef2ec0177c4392e61d587637c06f636831ff63c3317827d"
+				},
+				"length": 848,
+				"version": 4
+			}
+		},
+		"spec_version": "1.0",
+		"version": 4
+	}
+}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/keys/root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/keys/root.json
deleted file mode 100644
index 65d46fc..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/keys/root.json
+++ /dev/null
@@ -1 +0,0 @@
-{"encrypted":false,"data":[{"keytype":"ed25519","scheme":"ed25519","keyid_hash_algorithms":["sha512"],"keyval":{"public":"6ba18d6ace9ad74126872cde0a033c1c23eafaf0b02c1a0be02046304f66f0de","private":"56554ce58246be71054dcf6dee10d8bc8d72a771b28a514c5c13fb285f243ee76ba18d6ace9ad74126872cde0a033c1c23eafaf0b02c1a0be02046304f66f0de"}}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/keys/snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/keys/snapshot.json
deleted file mode 100644
index 26c0b06..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/keys/snapshot.json
+++ /dev/null
@@ -1,27 +0,0 @@
-{
-	"encrypted": false,
-	"data": [
-		{
-			"keytype": "ed25519",
-			"scheme": "ed25519",
-			"keyid_hash_algorithms": [
-				"sha512"
-			],
-			"keyval": {
-				"public": "9d0a51a3b2c40f8bfb6a989787eebfd0b7af521f85ecfa74ce6a3036239b7518",
-				"private": "6a96f1a4d2193a181511ac4ba1b3ae8e92de8b9f14d76ed10139d705d2d57e5b9d0a51a3b2c40f8bfb6a989787eebfd0b7af521f85ecfa74ce6a3036239b7518"
-			}
-		},
-		{
-			"keytype": "ed25519",
-			"scheme": "ed25519",
-			"keyid_hash_algorithms": [
-				"sha512"
-			],
-			"keyval": {
-				"public": "e4540436c0448f7f7200ef504b2f3f79abd21b670e2e91008ed85d07bb29a4f1",
-				"private": "29d98a556c5fc04036bb7abbc18d4fe7652f9023ebf2068ca199809120a5b0b1e4540436c0448f7f7200ef504b2f3f79abd21b670e2e91008ed85d07bb29a4f1"
-			}
-		}
-	]
-}
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/keys/targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/keys/targets.json
deleted file mode 100644
index ea04176..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/keys/targets.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
-	"encrypted": false,
-	"data": [
-		{
-			"keytype": "ed25519",
-			"scheme": "ed25519",
-			"keyid_hash_algorithms": [
-				"sha512"
-			],
-			"keyval": {
-				"public": "03f9d7cb27b94b914fda338371cc525afefddf2075a179dc7927d17b79b453ef",
-				"private": "30d93aa3b83a5672dabfe4e8a0175491ae5051d02d6e049952c065169fe04b6c03f9d7cb27b94b914fda338371cc525afefddf2075a179dc7927d17b79b453ef"
-			}
-		}
-	]
-}
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/keys/timestamp.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/keys/timestamp.json
deleted file mode 100644
index 339e796..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/keys/timestamp.json
+++ /dev/null
@@ -1 +0,0 @@
-{"encrypted":false,"data":[{"keytype":"ed25519","scheme":"ed25519","keyid_hash_algorithms":["sha512"],"keyval":{"public":"814f81f40a031f2543a29860dc1c3666416dbc424ae7c8dd79d3af3c61577e61","private":"58b4c4368feeaa3c217caa454deee36f44edaf44f92fa15c22ed8156edc9bd29814f81f40a031f2543a29860dc1c3666416dbc424ae7c8dd79d3af3c61577e61"}}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/077b1bccf9b08d011e5ed54338408b90cd089ba6bf2f57b9f65eaedb5245ab58a2b2cadbb7c9fe21c4c5935dce4f325e07d732296e2d01af32fe1ae5fa4c4094.targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/077b1bccf9b08d011e5ed54338408b90cd089ba6bf2f57b9f65eaedb5245ab58a2b2cadbb7c9fe21c4c5935dce4f325e07d732296e2d01af32fe1ae5fa4c4094.targets.json
deleted file mode 100644
index 54af415..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/077b1bccf9b08d011e5ed54338408b90cd089ba6bf2f57b9f65eaedb5245ab58a2b2cadbb7c9fe21c4c5935dce4f325e07d732296e2d01af32fe1ae5fa4c4094.targets.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"targets","expires":"2100-01-01T00:00:00Z","spec_version":"1.0","targets":{"0":{"hashes":{"sha512":"31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"},"length":1}},"version":1},"signatures":[{"keyid":"c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e","sig":"4fbdc8c6e31f63ed182694ae82081e52a68ea563d8e6339e7c247531538af6cfa3e19f7cbcf9d790c6daa57460a60ea74b75eacd1b320d86193be7d36dae3a07"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/1.root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/1.root.json
deleted file mode 100644
index faa92c6..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/1.root.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"root","consistent_snapshot":true,"expires":"2100-01-01T00:00:00Z","keys":{"0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"9d0a51a3b2c40f8bfb6a989787eebfd0b7af521f85ecfa74ce6a3036239b7518"},"scheme":"ed25519"},"4f6cbf068b19f3f876f0919eafb43f65e4899504fc18b822c6e6078b798c986b":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"bca92195f8fb4fe781e59614f819ee983d7398deea249cb93e4517e5a7b285f7"},"scheme":"ed25519"},"c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"03f9d7cb27b94b914fda338371cc525afefddf2075a179dc7927d17b79b453ef"},"scheme":"ed25519"},"c9e06997f3e77a1c999ed35b41899790214e9669b3a5c900238b8ed7260b375b":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"0b4fd984ce719448735d51496f20bfeba6ce076efd3311f828baca405827a680"},"scheme":"ed25519"}},"roles":{"root":{"keyids":["c9e06997f3e77a1c999ed35b41899790214e9669b3a5c900238b8ed7260b375b"],"threshold":1},"snapshot":{"keyids":["0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7"],"threshold":1},"targets":{"keyids":["c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e"],"threshold":1},"timestamp":{"keyids":["4f6cbf068b19f3f876f0919eafb43f65e4899504fc18b822c6e6078b798c986b"],"threshold":1}},"spec_version":"1.0","version":1},"signatures":[{"keyid":"c9e06997f3e77a1c999ed35b41899790214e9669b3a5c900238b8ed7260b375b","sig":"83803c5ce5acb02df6bd8287b16f356b9139f0c9e2696731875361ab422849d7683a0543ba83e55eea15ed77a84f654196e68337c6d2db31ec95d6a8ac7aa10f"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/1.root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/1.root.json
new file mode 120000
index 0000000..741d218
--- /dev/null
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/1.root.json
@@ -0,0 +1 @@
+../../3/repository/1.root.json
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/1.snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/1.snapshot.json
deleted file mode 100644
index ca3b1f0..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/1.snapshot.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"snapshot","expires":"2100-01-01T00:00:00Z","meta":{"root.json":{"hashes":{"sha512":"3501a1e50ea2045abb29c5b4accc1fe95d10c574e2797d0391fb701f4f2d1cb8f343b301bfed5fff0817afeed491e058dfb5ba01e00c916fc81d2e22b7dbde84"},"length":1704,"version":1},"targets.json":{"hashes":{"sha512":"077b1bccf9b08d011e5ed54338408b90cd089ba6bf2f57b9f65eaedb5245ab58a2b2cadbb7c9fe21c4c5935dce4f325e07d732296e2d01af32fe1ae5fa4c4094"},"length":505,"version":1}},"spec_version":"1.0","version":1},"signatures":[{"keyid":"0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7","sig":"8a8d8f27a7b46a41a50c8fb5f9f9a355f1dd9538e29505f2b13c4ae2598084b4d87d1600485eeca23237e70a6ff5f6df1cee42542c929cd3129a00df0f6fc409"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/1.targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/1.targets.json
deleted file mode 100644
index 54af415..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/1.targets.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"targets","expires":"2100-01-01T00:00:00Z","spec_version":"1.0","targets":{"0":{"hashes":{"sha512":"31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"},"length":1}},"version":1},"signatures":[{"keyid":"c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e","sig":"4fbdc8c6e31f63ed182694ae82081e52a68ea563d8e6339e7c247531538af6cfa3e19f7cbcf9d790c6daa57460a60ea74b75eacd1b320d86193be7d36dae3a07"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/17957fb35719cdf1b42f9a82e53981433c76be22ceefe0c1f27c23345d99491daecc0b3979bb963c716aaeb6c52502f5e4d5bd63a3406352a0d39f2b1fe90472.snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/17957fb35719cdf1b42f9a82e53981433c76be22ceefe0c1f27c23345d99491daecc0b3979bb963c716aaeb6c52502f5e4d5bd63a3406352a0d39f2b1fe90472.snapshot.json
deleted file mode 100644
index 453e1ac..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/17957fb35719cdf1b42f9a82e53981433c76be22ceefe0c1f27c23345d99491daecc0b3979bb963c716aaeb6c52502f5e4d5bd63a3406352a0d39f2b1fe90472.snapshot.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"snapshot","expires":"2100-01-01T00:00:00Z","meta":{"root.json":{"hashes":{"sha512":"9b995f439e9d7d53faa975ee5715d3a9f32cdd4b83a72314a3cdbe0e823faae6bd424a4a961b9fff225e59d7b6d1ee4b08fad1e289b280a2c2e13f384ec2eb8c"},"length":1704,"version":2},"targets.json":{"hashes":{"sha512":"c944d09e8c5efda309e1a4498277af737b97dc8823a659ed3a60c4d011dcdc729797fd1a6f6d963b93bc2a30414be3f88481837c2b17d14f072b39f2191866a2"},"length":673,"version":2}},"spec_version":"1.0","version":2},"signatures":[{"keyid":"0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7","sig":"f6e31e7bb5789f7c18fcaadbe6cca65c9b874fe67255291bcf56641a11a7b764939602b31aa928b2e02a87fcefbc8ef91d8de19ebd61007818eebafa76c6b701"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/2.root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/2.root.json
deleted file mode 100644
index f2c637d..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/2.root.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"root","consistent_snapshot":true,"expires":"2100-01-01T00:00:00Z","keys":{"0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"9d0a51a3b2c40f8bfb6a989787eebfd0b7af521f85ecfa74ce6a3036239b7518"},"scheme":"ed25519"},"c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"03f9d7cb27b94b914fda338371cc525afefddf2075a179dc7927d17b79b453ef"},"scheme":"ed25519"},"c9e06997f3e77a1c999ed35b41899790214e9669b3a5c900238b8ed7260b375b":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"0b4fd984ce719448735d51496f20bfeba6ce076efd3311f828baca405827a680"},"scheme":"ed25519"},"cf0618db7ba21084b308c7a3a46219aff05e2ec39d48d55baac5e0c9ae5f9a47":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"814f81f40a031f2543a29860dc1c3666416dbc424ae7c8dd79d3af3c61577e61"},"scheme":"ed25519"}},"roles":{"root":{"keyids":["c9e06997f3e77a1c999ed35b41899790214e9669b3a5c900238b8ed7260b375b"],"threshold":1},"snapshot":{"keyids":["0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7"],"threshold":1},"targets":{"keyids":["c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e"],"threshold":1},"timestamp":{"keyids":["cf0618db7ba21084b308c7a3a46219aff05e2ec39d48d55baac5e0c9ae5f9a47"],"threshold":1}},"spec_version":"1.0","version":2},"signatures":[{"keyid":"c9e06997f3e77a1c999ed35b41899790214e9669b3a5c900238b8ed7260b375b","sig":"55463ef12660d470109117b2873e1c018aaf606b9b7918ec6362929db5312665a8697c83510212bac5ef236284342922a96a4ce88122470851a7b7cb7536a107"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/2.root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/2.root.json
new file mode 120000
index 0000000..fb9b350
--- /dev/null
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/2.root.json
@@ -0,0 +1 @@
+../../3/repository/2.root.json
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/2.snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/2.snapshot.json
deleted file mode 100644
index 453e1ac..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/2.snapshot.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"snapshot","expires":"2100-01-01T00:00:00Z","meta":{"root.json":{"hashes":{"sha512":"9b995f439e9d7d53faa975ee5715d3a9f32cdd4b83a72314a3cdbe0e823faae6bd424a4a961b9fff225e59d7b6d1ee4b08fad1e289b280a2c2e13f384ec2eb8c"},"length":1704,"version":2},"targets.json":{"hashes":{"sha512":"c944d09e8c5efda309e1a4498277af737b97dc8823a659ed3a60c4d011dcdc729797fd1a6f6d963b93bc2a30414be3f88481837c2b17d14f072b39f2191866a2"},"length":673,"version":2}},"spec_version":"1.0","version":2},"signatures":[{"keyid":"0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7","sig":"f6e31e7bb5789f7c18fcaadbe6cca65c9b874fe67255291bcf56641a11a7b764939602b31aa928b2e02a87fcefbc8ef91d8de19ebd61007818eebafa76c6b701"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/2.targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/2.targets.json
deleted file mode 100644
index e82b814..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/2.targets.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"targets","expires":"2100-01-01T00:00:00Z","spec_version":"1.0","targets":{"0":{"hashes":{"sha512":"31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"},"length":1},"1":{"hashes":{"sha512":"4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a"},"length":1}},"version":2},"signatures":[{"keyid":"c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e","sig":"e50e81453ed9416a8877fa83a7e8dcc8d2ce73b38808986d420fc940ba6fa43c60b53d1a00caba2ae5a06ff8421472c9c4a09efee56cbe63a683b01f15f4e10a"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/28c33847af0916c8bd7231f6610911bf977b677bbcc2904dd86c6d294fb807b837146a8e9b36ea563f9cf95261e7ba261f6337b2925f595ba8b46baa9ca58699.snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/28c33847af0916c8bd7231f6610911bf977b677bbcc2904dd86c6d294fb807b837146a8e9b36ea563f9cf95261e7ba261f6337b2925f595ba8b46baa9ca58699.snapshot.json
deleted file mode 100644
index 0a49263..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/28c33847af0916c8bd7231f6610911bf977b677bbcc2904dd86c6d294fb807b837146a8e9b36ea563f9cf95261e7ba261f6337b2925f595ba8b46baa9ca58699.snapshot.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"snapshot","expires":"2100-01-01T00:00:00Z","meta":{"root.json":{"hashes":{"sha512":"9b995f439e9d7d53faa975ee5715d3a9f32cdd4b83a72314a3cdbe0e823faae6bd424a4a961b9fff225e59d7b6d1ee4b08fad1e289b280a2c2e13f384ec2eb8c"},"length":1704,"version":2},"targets.json":{"hashes":{"sha512":"544d56373898163c901da99746d89fc84b03ba37691cc37b14c6f3e6372510ea5a63023eb16e42151ee188cd5b1da589ecc323f2dca49b554479595d19595bb7"},"length":841,"version":3}},"spec_version":"1.0","version":3},"signatures":[{"keyid":"0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7","sig":"b47e6d8d242a8c8965d3a3e0aaf1787ccd3e4c99b10648c2573241915d35dfa130170ee729503a57c543b5828d029626e4f7caa5414c971b4c35c443e0ed6d05"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/3.root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/3.root.json
deleted file mode 100644
index 1029d48..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/3.root.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"root","consistent_snapshot":true,"expires":"2100-01-01T00:00:00Z","keys":{"0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"9d0a51a3b2c40f8bfb6a989787eebfd0b7af521f85ecfa74ce6a3036239b7518"},"scheme":"ed25519"},"99bc60ecc428001eb80f5f5b65f19856c7cecee35c3fc52e8aaaa3adc14baf5a":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"6ba18d6ace9ad74126872cde0a033c1c23eafaf0b02c1a0be02046304f66f0de"},"scheme":"ed25519"},"c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"03f9d7cb27b94b914fda338371cc525afefddf2075a179dc7927d17b79b453ef"},"scheme":"ed25519"},"cf0618db7ba21084b308c7a3a46219aff05e2ec39d48d55baac5e0c9ae5f9a47":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"814f81f40a031f2543a29860dc1c3666416dbc424ae7c8dd79d3af3c61577e61"},"scheme":"ed25519"}},"roles":{"root":{"keyids":["99bc60ecc428001eb80f5f5b65f19856c7cecee35c3fc52e8aaaa3adc14baf5a"],"threshold":1},"snapshot":{"keyids":["0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7"],"threshold":1},"targets":{"keyids":["c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e"],"threshold":1},"timestamp":{"keyids":["cf0618db7ba21084b308c7a3a46219aff05e2ec39d48d55baac5e0c9ae5f9a47"],"threshold":1}},"spec_version":"1.0","version":3},"signatures":[{"keyid":"c9e06997f3e77a1c999ed35b41899790214e9669b3a5c900238b8ed7260b375b","sig":"bad607ef21e7cb5bf6edc24e2e0dbf584037a8aeb823ad10fdab88e972c151ed1733cb3f1675544750ff9dc84c0a254ed1f55c53016620939555ee1aa6f46707"},{"keyid":"99bc60ecc428001eb80f5f5b65f19856c7cecee35c3fc52e8aaaa3adc14baf5a","sig":"56fdb408f68f6167e42d5f172c78d7354ff6b92329846242c528d3c17c55f43cf482fa61696efd0ced19fe047bbf82f9cabfc9c4ed5f759c9844ac018aa69b09"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/3.root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/3.root.json
new file mode 120000
index 0000000..65e6c5b
--- /dev/null
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/3.root.json
@@ -0,0 +1 @@
+../../3/repository/3.root.json
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/3.snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/3.snapshot.json
deleted file mode 100644
index 0a49263..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/3.snapshot.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"snapshot","expires":"2100-01-01T00:00:00Z","meta":{"root.json":{"hashes":{"sha512":"9b995f439e9d7d53faa975ee5715d3a9f32cdd4b83a72314a3cdbe0e823faae6bd424a4a961b9fff225e59d7b6d1ee4b08fad1e289b280a2c2e13f384ec2eb8c"},"length":1704,"version":2},"targets.json":{"hashes":{"sha512":"544d56373898163c901da99746d89fc84b03ba37691cc37b14c6f3e6372510ea5a63023eb16e42151ee188cd5b1da589ecc323f2dca49b554479595d19595bb7"},"length":841,"version":3}},"spec_version":"1.0","version":3},"signatures":[{"keyid":"0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7","sig":"b47e6d8d242a8c8965d3a3e0aaf1787ccd3e4c99b10648c2573241915d35dfa130170ee729503a57c543b5828d029626e4f7caa5414c971b4c35c443e0ed6d05"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/3.targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/3.targets.json
deleted file mode 100644
index 4ec4a91..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/3.targets.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"targets","expires":"2100-01-01T00:00:00Z","spec_version":"1.0","targets":{"0":{"hashes":{"sha512":"31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"},"length":1},"1":{"hashes":{"sha512":"4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a"},"length":1},"2":{"hashes":{"sha512":"40b244112641dd78dd4f93b6c9190dd46e0099194d5a44257b7efad6ef9ff4683da1eda0244448cb343aa688f5d3efd7314dafe580ac0bcbf115aeca9e8dc114"},"length":1}},"version":3},"signatures":[{"keyid":"c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e","sig":"c899a41e9dd4ec3d5c68d86924b535bcfce246448c4ad0f4622a0c0eb2ebde0704916e949357e4e256c3628ab7d31ae2133ab340ba68f5d91a7a03faed0d3906"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/3501a1e50ea2045abb29c5b4accc1fe95d10c574e2797d0391fb701f4f2d1cb8f343b301bfed5fff0817afeed491e058dfb5ba01e00c916fc81d2e22b7dbde84.root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/3501a1e50ea2045abb29c5b4accc1fe95d10c574e2797d0391fb701f4f2d1cb8f343b301bfed5fff0817afeed491e058dfb5ba01e00c916fc81d2e22b7dbde84.root.json
deleted file mode 100644
index faa92c6..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/3501a1e50ea2045abb29c5b4accc1fe95d10c574e2797d0391fb701f4f2d1cb8f343b301bfed5fff0817afeed491e058dfb5ba01e00c916fc81d2e22b7dbde84.root.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"root","consistent_snapshot":true,"expires":"2100-01-01T00:00:00Z","keys":{"0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"9d0a51a3b2c40f8bfb6a989787eebfd0b7af521f85ecfa74ce6a3036239b7518"},"scheme":"ed25519"},"4f6cbf068b19f3f876f0919eafb43f65e4899504fc18b822c6e6078b798c986b":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"bca92195f8fb4fe781e59614f819ee983d7398deea249cb93e4517e5a7b285f7"},"scheme":"ed25519"},"c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"03f9d7cb27b94b914fda338371cc525afefddf2075a179dc7927d17b79b453ef"},"scheme":"ed25519"},"c9e06997f3e77a1c999ed35b41899790214e9669b3a5c900238b8ed7260b375b":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"0b4fd984ce719448735d51496f20bfeba6ce076efd3311f828baca405827a680"},"scheme":"ed25519"}},"roles":{"root":{"keyids":["c9e06997f3e77a1c999ed35b41899790214e9669b3a5c900238b8ed7260b375b"],"threshold":1},"snapshot":{"keyids":["0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7"],"threshold":1},"targets":{"keyids":["c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e"],"threshold":1},"timestamp":{"keyids":["4f6cbf068b19f3f876f0919eafb43f65e4899504fc18b822c6e6078b798c986b"],"threshold":1}},"spec_version":"1.0","version":1},"signatures":[{"keyid":"c9e06997f3e77a1c999ed35b41899790214e9669b3a5c900238b8ed7260b375b","sig":"83803c5ce5acb02df6bd8287b16f356b9139f0c9e2696731875361ab422849d7683a0543ba83e55eea15ed77a84f654196e68337c6d2db31ec95d6a8ac7aa10f"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/3e53aea729691ddff5e63e5f5677ebbe00d208927fb96f7cfb2e154a8ea1cc31b1ed31a04487091056da428ddb2c34581c0a203b4a5898c40a1e6e20be52f829.targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/3e53aea729691ddff5e63e5f5677ebbe00d208927fb96f7cfb2e154a8ea1cc31b1ed31a04487091056da428ddb2c34581c0a203b4a5898c40a1e6e20be52f829.targets.json
deleted file mode 100644
index bee7e44..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/3e53aea729691ddff5e63e5f5677ebbe00d208927fb96f7cfb2e154a8ea1cc31b1ed31a04487091056da428ddb2c34581c0a203b4a5898c40a1e6e20be52f829.targets.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"targets","expires":"2100-01-01T00:00:00Z","spec_version":"1.0","targets":{"0":{"hashes":{"sha512":"31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"},"length":1},"1":{"hashes":{"sha512":"4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a"},"length":1},"2":{"hashes":{"sha512":"40b244112641dd78dd4f93b6c9190dd46e0099194d5a44257b7efad6ef9ff4683da1eda0244448cb343aa688f5d3efd7314dafe580ac0bcbf115aeca9e8dc114"},"length":1},"3":{"hashes":{"sha512":"3bafbf08882a2d10133093a1b8433f50563b93c14acd05b79028eb1d12799027241450980651994501423a66c276ae26c43b739bc65c4e16b10c3af6c202aebb"},"length":1},"4":{"hashes":{"sha512":"a321d8b405e3ef2604959847b36d171eebebc4a8941dc70a4784935a4fca5d5813de84dfa049f06549aa61b20848c1633ce81b675286ea8fb53db240d831c568"},"length":1}},"version":5},"signatures":[{"keyid":"c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e","sig":"38264cbbbaa1872344af739aa870c65240e1171b9b31ef39198affe8e94fdd0ef76b28b2a28b3e89ffe590afe56b91216d2469c11da05a540a8ba8674b368402"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/4.root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/4.root.json
deleted file mode 100644
index f574e5f..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/4.root.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"root","consistent_snapshot":true,"expires":"2100-01-01T00:00:00Z","keys":{"0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"9d0a51a3b2c40f8bfb6a989787eebfd0b7af521f85ecfa74ce6a3036239b7518"},"scheme":"ed25519"},"99bc60ecc428001eb80f5f5b65f19856c7cecee35c3fc52e8aaaa3adc14baf5a":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"6ba18d6ace9ad74126872cde0a033c1c23eafaf0b02c1a0be02046304f66f0de"},"scheme":"ed25519"},"c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"03f9d7cb27b94b914fda338371cc525afefddf2075a179dc7927d17b79b453ef"},"scheme":"ed25519"},"cf0618db7ba21084b308c7a3a46219aff05e2ec39d48d55baac5e0c9ae5f9a47":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"814f81f40a031f2543a29860dc1c3666416dbc424ae7c8dd79d3af3c61577e61"},"scheme":"ed25519"}},"roles":{"root":{"keyids":["99bc60ecc428001eb80f5f5b65f19856c7cecee35c3fc52e8aaaa3adc14baf5a"],"threshold":1},"snapshot":{"keyids":["0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7"],"threshold":1},"targets":{"keyids":["c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e"],"threshold":1},"timestamp":{"keyids":["cf0618db7ba21084b308c7a3a46219aff05e2ec39d48d55baac5e0c9ae5f9a47"],"threshold":1}},"spec_version":"1.0","version":4},"signatures":[{"keyid":"99bc60ecc428001eb80f5f5b65f19856c7cecee35c3fc52e8aaaa3adc14baf5a","sig":"eda75221a94275f8dadcc582abd4e62fb83de04589e94f14bf2b4ec5398756d3d11bc32cf378049efe7cdd4e4c3818e7590775084bd09e4f428e5bda76bcc906"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/4.root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/4.root.json
new file mode 120000
index 0000000..c3662ce
--- /dev/null
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/4.root.json
@@ -0,0 +1 @@
+../../3/repository/4.root.json
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/4.snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/4.snapshot.json
deleted file mode 100644
index 6316dfe..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/4.snapshot.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"snapshot","expires":"2100-01-01T00:00:00Z","meta":{"root.json":{"hashes":{"sha512":"58236babe5fae9454fb0f8d3150b10cbbe65fff7efc32850fafd2a203b52a00a21819b2bacec8b2aadac0a8a662da4259727544a0b01bbc76f534c4ce3048230"},"length":1918,"version":3},"targets.json":{"hashes":{"sha512":"71408991e0b5359d1a6f2ce0716b515f209821660a965f76d0c0df1cf6667aa7749518c45d4346de444f6a0a5b7864c1c11fae44010c7497d213392964847406"},"length":1009,"version":4}},"spec_version":"1.0","version":4},"signatures":[{"keyid":"0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7","sig":"fd9e7c74b682fd0010beb790632a56224dc6ae5030652f57a2bfe4b0ca0e4e7cc6ef30655bfdc76ce24bac6822a16a98db6689c6131dbb65f20d3ebea5aeb304"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/4.targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/4.targets.json
deleted file mode 100644
index 0a2635d..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/4.targets.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"targets","expires":"2100-01-01T00:00:00Z","spec_version":"1.0","targets":{"0":{"hashes":{"sha512":"31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"},"length":1},"1":{"hashes":{"sha512":"4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a"},"length":1},"2":{"hashes":{"sha512":"40b244112641dd78dd4f93b6c9190dd46e0099194d5a44257b7efad6ef9ff4683da1eda0244448cb343aa688f5d3efd7314dafe580ac0bcbf115aeca9e8dc114"},"length":1},"3":{"hashes":{"sha512":"3bafbf08882a2d10133093a1b8433f50563b93c14acd05b79028eb1d12799027241450980651994501423a66c276ae26c43b739bc65c4e16b10c3af6c202aebb"},"length":1}},"version":4},"signatures":[{"keyid":"c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e","sig":"d6e0604d6aa9680fc11fd7bf9004e1d2203fa89af8dce1d0cd91fdfa0a56f24c4e990ce5f17b4f838edc50c1be3009115556417c5ce338be12be28ba67d48005"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/5.root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/5.root.json
new file mode 100644
index 0000000..d112eae
--- /dev/null
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/5.root.json
@@ -0,0 +1,83 @@
+{
+	"signatures": [
+		{
+			"keyid": "4c663b6d0b9f2c74a19b6791c1417c8d1916e2d84461be1a8148e4386c89582d",
+			"sig": "fc0f92883c9c89135505c1ae59ec11bf4bbd82ead0dca1d719eda4251345830514f0bd1b264d36d26b971ab58d7ee3f10110190cadee753b24fc98eaa61d2004"
+		}
+	],
+	"signed": {
+		"_type": "root",
+		"consistent_snapshot": false,
+		"expires": "2100-01-01T00:00:00Z",
+		"keys": {
+			"4c663b6d0b9f2c74a19b6791c1417c8d1916e2d84461be1a8148e4386c89582d": {
+				"keyid_hash_algorithms": [
+					"sha256"
+				],
+				"keytype": "ed25519",
+				"keyval": {
+					"public": "153986a7370e002f377dd68797e7466c421180c1571e233de2f8ab41c8af4f54"
+				},
+				"scheme": "ed25519"
+			},
+			"79b5760e4c96b6becc12bec4260c9c1d533b9b70628ade2b229ef02b772b10b0": {
+				"keyid_hash_algorithms": [
+					"sha256"
+				],
+				"keytype": "ed25519",
+				"keyval": {
+					"public": "3ab34b0c2d4eadccaa0f0cf22ced07b552394063a9de2806993d022360dffc76"
+				},
+				"scheme": "ed25519"
+			},
+			"a3eba2113e37b749b908101bdb7b856a44f2853641830c0f939730aca3e30360": {
+				"keyid_hash_algorithms": [
+					"sha256"
+				],
+				"keytype": "ed25519",
+				"keyval": {
+					"public": "aee574e56780ea1709a8b56e02d4ffdd9a3a1deaed61e2eb0701f376a4422e42"
+				},
+				"scheme": "ed25519"
+			},
+			"bed15bf57ba4deb4e09667099d45d119504420983d16fd0927ebfb0c25184e7f": {
+				"keyid_hash_algorithms": [
+					"sha256"
+				],
+				"keytype": "ed25519",
+				"keyval": {
+					"public": "722dbc861813bb5b568524d62083e875c08e66fed1694d9161d253fa163dd86f"
+				},
+				"scheme": "ed25519"
+			}
+		},
+		"roles": {
+			"root": {
+				"keyids": [
+					"4c663b6d0b9f2c74a19b6791c1417c8d1916e2d84461be1a8148e4386c89582d"
+				],
+				"threshold": 1
+			},
+			"snapshot": {
+				"keyids": [
+					"bed15bf57ba4deb4e09667099d45d119504420983d16fd0927ebfb0c25184e7f"
+				],
+				"threshold": 1
+			},
+			"targets": {
+				"keyids": [
+					"a3eba2113e37b749b908101bdb7b856a44f2853641830c0f939730aca3e30360"
+				],
+				"threshold": 1
+			},
+			"timestamp": {
+				"keyids": [
+					"79b5760e4c96b6becc12bec4260c9c1d533b9b70628ade2b229ef02b772b10b0"
+				],
+				"threshold": 1
+			}
+		},
+		"spec_version": "1.0",
+		"version": 5
+	}
+}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/5.snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/5.snapshot.json
deleted file mode 100644
index ed153cc..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/5.snapshot.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"snapshot","expires":"2100-01-01T00:00:00Z","meta":{"root.json":{"hashes":{"sha512":"667fad6a776ed8622e2de7cdb559e9287f5bc0c03f4f75f5ae826645175897a1e86ddc0e76e529b2d6ab1798b1dd23b432d46fa39fdc73b7c0e4d3f633f4446a"},"length":1704,"version":4},"targets.json":{"hashes":{"sha512":"3e53aea729691ddff5e63e5f5677ebbe00d208927fb96f7cfb2e154a8ea1cc31b1ed31a04487091056da428ddb2c34581c0a203b4a5898c40a1e6e20be52f829"},"length":1177,"version":5}},"spec_version":"1.0","version":5},"signatures":[{"keyid":"0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7","sig":"e33eb006c7486d241776b900a73fd6b41522d8f633854193aaae9bb01d567d1d310a1098edf46d7ad9e9e34b8af768fee4c6c290a39e093df15124f58a54a803"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/5.targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/5.targets.json
deleted file mode 100644
index bee7e44..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/5.targets.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"targets","expires":"2100-01-01T00:00:00Z","spec_version":"1.0","targets":{"0":{"hashes":{"sha512":"31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"},"length":1},"1":{"hashes":{"sha512":"4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a"},"length":1},"2":{"hashes":{"sha512":"40b244112641dd78dd4f93b6c9190dd46e0099194d5a44257b7efad6ef9ff4683da1eda0244448cb343aa688f5d3efd7314dafe580ac0bcbf115aeca9e8dc114"},"length":1},"3":{"hashes":{"sha512":"3bafbf08882a2d10133093a1b8433f50563b93c14acd05b79028eb1d12799027241450980651994501423a66c276ae26c43b739bc65c4e16b10c3af6c202aebb"},"length":1},"4":{"hashes":{"sha512":"a321d8b405e3ef2604959847b36d171eebebc4a8941dc70a4784935a4fca5d5813de84dfa049f06549aa61b20848c1633ce81b675286ea8fb53db240d831c568"},"length":1}},"version":5},"signatures":[{"keyid":"c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e","sig":"38264cbbbaa1872344af739aa870c65240e1171b9b31ef39198affe8e94fdd0ef76b28b2a28b3e89ffe590afe56b91216d2469c11da05a540a8ba8674b368402"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/544d56373898163c901da99746d89fc84b03ba37691cc37b14c6f3e6372510ea5a63023eb16e42151ee188cd5b1da589ecc323f2dca49b554479595d19595bb7.targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/544d56373898163c901da99746d89fc84b03ba37691cc37b14c6f3e6372510ea5a63023eb16e42151ee188cd5b1da589ecc323f2dca49b554479595d19595bb7.targets.json
deleted file mode 100644
index 4ec4a91..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/544d56373898163c901da99746d89fc84b03ba37691cc37b14c6f3e6372510ea5a63023eb16e42151ee188cd5b1da589ecc323f2dca49b554479595d19595bb7.targets.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"targets","expires":"2100-01-01T00:00:00Z","spec_version":"1.0","targets":{"0":{"hashes":{"sha512":"31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"},"length":1},"1":{"hashes":{"sha512":"4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a"},"length":1},"2":{"hashes":{"sha512":"40b244112641dd78dd4f93b6c9190dd46e0099194d5a44257b7efad6ef9ff4683da1eda0244448cb343aa688f5d3efd7314dafe580ac0bcbf115aeca9e8dc114"},"length":1}},"version":3},"signatures":[{"keyid":"c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e","sig":"c899a41e9dd4ec3d5c68d86924b535bcfce246448c4ad0f4622a0c0eb2ebde0704916e949357e4e256c3628ab7d31ae2133ab340ba68f5d91a7a03faed0d3906"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/58236babe5fae9454fb0f8d3150b10cbbe65fff7efc32850fafd2a203b52a00a21819b2bacec8b2aadac0a8a662da4259727544a0b01bbc76f534c4ce3048230.root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/58236babe5fae9454fb0f8d3150b10cbbe65fff7efc32850fafd2a203b52a00a21819b2bacec8b2aadac0a8a662da4259727544a0b01bbc76f534c4ce3048230.root.json
deleted file mode 100644
index 1029d48..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/58236babe5fae9454fb0f8d3150b10cbbe65fff7efc32850fafd2a203b52a00a21819b2bacec8b2aadac0a8a662da4259727544a0b01bbc76f534c4ce3048230.root.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"root","consistent_snapshot":true,"expires":"2100-01-01T00:00:00Z","keys":{"0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"9d0a51a3b2c40f8bfb6a989787eebfd0b7af521f85ecfa74ce6a3036239b7518"},"scheme":"ed25519"},"99bc60ecc428001eb80f5f5b65f19856c7cecee35c3fc52e8aaaa3adc14baf5a":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"6ba18d6ace9ad74126872cde0a033c1c23eafaf0b02c1a0be02046304f66f0de"},"scheme":"ed25519"},"c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"03f9d7cb27b94b914fda338371cc525afefddf2075a179dc7927d17b79b453ef"},"scheme":"ed25519"},"cf0618db7ba21084b308c7a3a46219aff05e2ec39d48d55baac5e0c9ae5f9a47":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"814f81f40a031f2543a29860dc1c3666416dbc424ae7c8dd79d3af3c61577e61"},"scheme":"ed25519"}},"roles":{"root":{"keyids":["99bc60ecc428001eb80f5f5b65f19856c7cecee35c3fc52e8aaaa3adc14baf5a"],"threshold":1},"snapshot":{"keyids":["0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7"],"threshold":1},"targets":{"keyids":["c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e"],"threshold":1},"timestamp":{"keyids":["cf0618db7ba21084b308c7a3a46219aff05e2ec39d48d55baac5e0c9ae5f9a47"],"threshold":1}},"spec_version":"1.0","version":3},"signatures":[{"keyid":"c9e06997f3e77a1c999ed35b41899790214e9669b3a5c900238b8ed7260b375b","sig":"bad607ef21e7cb5bf6edc24e2e0dbf584037a8aeb823ad10fdab88e972c151ed1733cb3f1675544750ff9dc84c0a254ed1f55c53016620939555ee1aa6f46707"},{"keyid":"99bc60ecc428001eb80f5f5b65f19856c7cecee35c3fc52e8aaaa3adc14baf5a","sig":"56fdb408f68f6167e42d5f172c78d7354ff6b92329846242c528d3c17c55f43cf482fa61696efd0ced19fe047bbf82f9cabfc9c4ed5f759c9844ac018aa69b09"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/667fad6a776ed8622e2de7cdb559e9287f5bc0c03f4f75f5ae826645175897a1e86ddc0e76e529b2d6ab1798b1dd23b432d46fa39fdc73b7c0e4d3f633f4446a.root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/667fad6a776ed8622e2de7cdb559e9287f5bc0c03f4f75f5ae826645175897a1e86ddc0e76e529b2d6ab1798b1dd23b432d46fa39fdc73b7c0e4d3f633f4446a.root.json
deleted file mode 100644
index f574e5f..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/667fad6a776ed8622e2de7cdb559e9287f5bc0c03f4f75f5ae826645175897a1e86ddc0e76e529b2d6ab1798b1dd23b432d46fa39fdc73b7c0e4d3f633f4446a.root.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"root","consistent_snapshot":true,"expires":"2100-01-01T00:00:00Z","keys":{"0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"9d0a51a3b2c40f8bfb6a989787eebfd0b7af521f85ecfa74ce6a3036239b7518"},"scheme":"ed25519"},"99bc60ecc428001eb80f5f5b65f19856c7cecee35c3fc52e8aaaa3adc14baf5a":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"6ba18d6ace9ad74126872cde0a033c1c23eafaf0b02c1a0be02046304f66f0de"},"scheme":"ed25519"},"c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"03f9d7cb27b94b914fda338371cc525afefddf2075a179dc7927d17b79b453ef"},"scheme":"ed25519"},"cf0618db7ba21084b308c7a3a46219aff05e2ec39d48d55baac5e0c9ae5f9a47":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"814f81f40a031f2543a29860dc1c3666416dbc424ae7c8dd79d3af3c61577e61"},"scheme":"ed25519"}},"roles":{"root":{"keyids":["99bc60ecc428001eb80f5f5b65f19856c7cecee35c3fc52e8aaaa3adc14baf5a"],"threshold":1},"snapshot":{"keyids":["0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7"],"threshold":1},"targets":{"keyids":["c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e"],"threshold":1},"timestamp":{"keyids":["cf0618db7ba21084b308c7a3a46219aff05e2ec39d48d55baac5e0c9ae5f9a47"],"threshold":1}},"spec_version":"1.0","version":4},"signatures":[{"keyid":"99bc60ecc428001eb80f5f5b65f19856c7cecee35c3fc52e8aaaa3adc14baf5a","sig":"eda75221a94275f8dadcc582abd4e62fb83de04589e94f14bf2b4ec5398756d3d11bc32cf378049efe7cdd4e4c3818e7590775084bd09e4f428e5bda76bcc906"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/71408991e0b5359d1a6f2ce0716b515f209821660a965f76d0c0df1cf6667aa7749518c45d4346de444f6a0a5b7864c1c11fae44010c7497d213392964847406.targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/71408991e0b5359d1a6f2ce0716b515f209821660a965f76d0c0df1cf6667aa7749518c45d4346de444f6a0a5b7864c1c11fae44010c7497d213392964847406.targets.json
deleted file mode 100644
index 0a2635d..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/71408991e0b5359d1a6f2ce0716b515f209821660a965f76d0c0df1cf6667aa7749518c45d4346de444f6a0a5b7864c1c11fae44010c7497d213392964847406.targets.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"targets","expires":"2100-01-01T00:00:00Z","spec_version":"1.0","targets":{"0":{"hashes":{"sha512":"31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"},"length":1},"1":{"hashes":{"sha512":"4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a"},"length":1},"2":{"hashes":{"sha512":"40b244112641dd78dd4f93b6c9190dd46e0099194d5a44257b7efad6ef9ff4683da1eda0244448cb343aa688f5d3efd7314dafe580ac0bcbf115aeca9e8dc114"},"length":1},"3":{"hashes":{"sha512":"3bafbf08882a2d10133093a1b8433f50563b93c14acd05b79028eb1d12799027241450980651994501423a66c276ae26c43b739bc65c4e16b10c3af6c202aebb"},"length":1}},"version":4},"signatures":[{"keyid":"c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e","sig":"d6e0604d6aa9680fc11fd7bf9004e1d2203fa89af8dce1d0cd91fdfa0a56f24c4e990ce5f17b4f838edc50c1be3009115556417c5ce338be12be28ba67d48005"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/9b995f439e9d7d53faa975ee5715d3a9f32cdd4b83a72314a3cdbe0e823faae6bd424a4a961b9fff225e59d7b6d1ee4b08fad1e289b280a2c2e13f384ec2eb8c.root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/9b995f439e9d7d53faa975ee5715d3a9f32cdd4b83a72314a3cdbe0e823faae6bd424a4a961b9fff225e59d7b6d1ee4b08fad1e289b280a2c2e13f384ec2eb8c.root.json
deleted file mode 100644
index f2c637d..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/9b995f439e9d7d53faa975ee5715d3a9f32cdd4b83a72314a3cdbe0e823faae6bd424a4a961b9fff225e59d7b6d1ee4b08fad1e289b280a2c2e13f384ec2eb8c.root.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"root","consistent_snapshot":true,"expires":"2100-01-01T00:00:00Z","keys":{"0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"9d0a51a3b2c40f8bfb6a989787eebfd0b7af521f85ecfa74ce6a3036239b7518"},"scheme":"ed25519"},"c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"03f9d7cb27b94b914fda338371cc525afefddf2075a179dc7927d17b79b453ef"},"scheme":"ed25519"},"c9e06997f3e77a1c999ed35b41899790214e9669b3a5c900238b8ed7260b375b":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"0b4fd984ce719448735d51496f20bfeba6ce076efd3311f828baca405827a680"},"scheme":"ed25519"},"cf0618db7ba21084b308c7a3a46219aff05e2ec39d48d55baac5e0c9ae5f9a47":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"814f81f40a031f2543a29860dc1c3666416dbc424ae7c8dd79d3af3c61577e61"},"scheme":"ed25519"}},"roles":{"root":{"keyids":["c9e06997f3e77a1c999ed35b41899790214e9669b3a5c900238b8ed7260b375b"],"threshold":1},"snapshot":{"keyids":["0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7"],"threshold":1},"targets":{"keyids":["c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e"],"threshold":1},"timestamp":{"keyids":["cf0618db7ba21084b308c7a3a46219aff05e2ec39d48d55baac5e0c9ae5f9a47"],"threshold":1}},"spec_version":"1.0","version":2},"signatures":[{"keyid":"c9e06997f3e77a1c999ed35b41899790214e9669b3a5c900238b8ed7260b375b","sig":"55463ef12660d470109117b2873e1c018aaf606b9b7918ec6362929db5312665a8697c83510212bac5ef236284342922a96a4ce88122470851a7b7cb7536a107"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/c934a3344ca1f03f63c021b959b2baf31fa45c85ff7cc1ef2b7616036891a8668953d20bb24e99a846f2a261b31f01077751d16e3b11838352f4a1643a28fdc3.snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/c934a3344ca1f03f63c021b959b2baf31fa45c85ff7cc1ef2b7616036891a8668953d20bb24e99a846f2a261b31f01077751d16e3b11838352f4a1643a28fdc3.snapshot.json
deleted file mode 100644
index ed153cc..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/c934a3344ca1f03f63c021b959b2baf31fa45c85ff7cc1ef2b7616036891a8668953d20bb24e99a846f2a261b31f01077751d16e3b11838352f4a1643a28fdc3.snapshot.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"snapshot","expires":"2100-01-01T00:00:00Z","meta":{"root.json":{"hashes":{"sha512":"667fad6a776ed8622e2de7cdb559e9287f5bc0c03f4f75f5ae826645175897a1e86ddc0e76e529b2d6ab1798b1dd23b432d46fa39fdc73b7c0e4d3f633f4446a"},"length":1704,"version":4},"targets.json":{"hashes":{"sha512":"3e53aea729691ddff5e63e5f5677ebbe00d208927fb96f7cfb2e154a8ea1cc31b1ed31a04487091056da428ddb2c34581c0a203b4a5898c40a1e6e20be52f829"},"length":1177,"version":5}},"spec_version":"1.0","version":5},"signatures":[{"keyid":"0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7","sig":"e33eb006c7486d241776b900a73fd6b41522d8f633854193aaae9bb01d567d1d310a1098edf46d7ad9e9e34b8af768fee4c6c290a39e093df15124f58a54a803"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/c944d09e8c5efda309e1a4498277af737b97dc8823a659ed3a60c4d011dcdc729797fd1a6f6d963b93bc2a30414be3f88481837c2b17d14f072b39f2191866a2.targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/c944d09e8c5efda309e1a4498277af737b97dc8823a659ed3a60c4d011dcdc729797fd1a6f6d963b93bc2a30414be3f88481837c2b17d14f072b39f2191866a2.targets.json
deleted file mode 100644
index e82b814..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/c944d09e8c5efda309e1a4498277af737b97dc8823a659ed3a60c4d011dcdc729797fd1a6f6d963b93bc2a30414be3f88481837c2b17d14f072b39f2191866a2.targets.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"targets","expires":"2100-01-01T00:00:00Z","spec_version":"1.0","targets":{"0":{"hashes":{"sha512":"31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"},"length":1},"1":{"hashes":{"sha512":"4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a"},"length":1}},"version":2},"signatures":[{"keyid":"c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e","sig":"e50e81453ed9416a8877fa83a7e8dcc8d2ce73b38808986d420fc940ba6fa43c60b53d1a00caba2ae5a06ff8421472c9c4a09efee56cbe63a683b01f15f4e10a"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/cf876f96b3cf5a52a13628e981cb1118949b855c4d2e5a48149c1d588e134b389271065be52a1f861fd5e84ae025cb239b5110f5f25a3a983824d1e0a7633183.snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/cf876f96b3cf5a52a13628e981cb1118949b855c4d2e5a48149c1d588e134b389271065be52a1f861fd5e84ae025cb239b5110f5f25a3a983824d1e0a7633183.snapshot.json
deleted file mode 100644
index 6316dfe..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/cf876f96b3cf5a52a13628e981cb1118949b855c4d2e5a48149c1d588e134b389271065be52a1f861fd5e84ae025cb239b5110f5f25a3a983824d1e0a7633183.snapshot.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"snapshot","expires":"2100-01-01T00:00:00Z","meta":{"root.json":{"hashes":{"sha512":"58236babe5fae9454fb0f8d3150b10cbbe65fff7efc32850fafd2a203b52a00a21819b2bacec8b2aadac0a8a662da4259727544a0b01bbc76f534c4ce3048230"},"length":1918,"version":3},"targets.json":{"hashes":{"sha512":"71408991e0b5359d1a6f2ce0716b515f209821660a965f76d0c0df1cf6667aa7749518c45d4346de444f6a0a5b7864c1c11fae44010c7497d213392964847406"},"length":1009,"version":4}},"spec_version":"1.0","version":4},"signatures":[{"keyid":"0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7","sig":"fd9e7c74b682fd0010beb790632a56224dc6ae5030652f57a2bfe4b0ca0e4e7cc6ef30655bfdc76ce24bac6822a16a98db6689c6131dbb65f20d3ebea5aeb304"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/e92754ae7309051b870ced601ab9bb9817b457a7c48f010f6060d32aba60afaa88ac4d79a78bf79a2fe4602c74831fe1d402ddf109314793964486d4017fadee.snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/e92754ae7309051b870ced601ab9bb9817b457a7c48f010f6060d32aba60afaa88ac4d79a78bf79a2fe4602c74831fe1d402ddf109314793964486d4017fadee.snapshot.json
deleted file mode 100644
index ca3b1f0..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/e92754ae7309051b870ced601ab9bb9817b457a7c48f010f6060d32aba60afaa88ac4d79a78bf79a2fe4602c74831fe1d402ddf109314793964486d4017fadee.snapshot.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"snapshot","expires":"2100-01-01T00:00:00Z","meta":{"root.json":{"hashes":{"sha512":"3501a1e50ea2045abb29c5b4accc1fe95d10c574e2797d0391fb701f4f2d1cb8f343b301bfed5fff0817afeed491e058dfb5ba01e00c916fc81d2e22b7dbde84"},"length":1704,"version":1},"targets.json":{"hashes":{"sha512":"077b1bccf9b08d011e5ed54338408b90cd089ba6bf2f57b9f65eaedb5245ab58a2b2cadbb7c9fe21c4c5935dce4f325e07d732296e2d01af32fe1ae5fa4c4094"},"length":505,"version":1}},"spec_version":"1.0","version":1},"signatures":[{"keyid":"0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7","sig":"8a8d8f27a7b46a41a50c8fb5f9f9a355f1dd9538e29505f2b13c4ae2598084b4d87d1600485eeca23237e70a6ff5f6df1cee42542c929cd3129a00df0f6fc409"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/root.json
index f574e5f..d112eae 100644
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/root.json
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/root.json
@@ -1 +1,83 @@
-{"signed":{"_type":"root","consistent_snapshot":true,"expires":"2100-01-01T00:00:00Z","keys":{"0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"9d0a51a3b2c40f8bfb6a989787eebfd0b7af521f85ecfa74ce6a3036239b7518"},"scheme":"ed25519"},"99bc60ecc428001eb80f5f5b65f19856c7cecee35c3fc52e8aaaa3adc14baf5a":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"6ba18d6ace9ad74126872cde0a033c1c23eafaf0b02c1a0be02046304f66f0de"},"scheme":"ed25519"},"c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"03f9d7cb27b94b914fda338371cc525afefddf2075a179dc7927d17b79b453ef"},"scheme":"ed25519"},"cf0618db7ba21084b308c7a3a46219aff05e2ec39d48d55baac5e0c9ae5f9a47":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"814f81f40a031f2543a29860dc1c3666416dbc424ae7c8dd79d3af3c61577e61"},"scheme":"ed25519"}},"roles":{"root":{"keyids":["99bc60ecc428001eb80f5f5b65f19856c7cecee35c3fc52e8aaaa3adc14baf5a"],"threshold":1},"snapshot":{"keyids":["0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7"],"threshold":1},"targets":{"keyids":["c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e"],"threshold":1},"timestamp":{"keyids":["cf0618db7ba21084b308c7a3a46219aff05e2ec39d48d55baac5e0c9ae5f9a47"],"threshold":1}},"spec_version":"1.0","version":4},"signatures":[{"keyid":"99bc60ecc428001eb80f5f5b65f19856c7cecee35c3fc52e8aaaa3adc14baf5a","sig":"eda75221a94275f8dadcc582abd4e62fb83de04589e94f14bf2b4ec5398756d3d11bc32cf378049efe7cdd4e4c3818e7590775084bd09e4f428e5bda76bcc906"}]}
\ No newline at end of file
+{
+	"signatures": [
+		{
+			"keyid": "4c663b6d0b9f2c74a19b6791c1417c8d1916e2d84461be1a8148e4386c89582d",
+			"sig": "fc0f92883c9c89135505c1ae59ec11bf4bbd82ead0dca1d719eda4251345830514f0bd1b264d36d26b971ab58d7ee3f10110190cadee753b24fc98eaa61d2004"
+		}
+	],
+	"signed": {
+		"_type": "root",
+		"consistent_snapshot": false,
+		"expires": "2100-01-01T00:00:00Z",
+		"keys": {
+			"4c663b6d0b9f2c74a19b6791c1417c8d1916e2d84461be1a8148e4386c89582d": {
+				"keyid_hash_algorithms": [
+					"sha256"
+				],
+				"keytype": "ed25519",
+				"keyval": {
+					"public": "153986a7370e002f377dd68797e7466c421180c1571e233de2f8ab41c8af4f54"
+				},
+				"scheme": "ed25519"
+			},
+			"79b5760e4c96b6becc12bec4260c9c1d533b9b70628ade2b229ef02b772b10b0": {
+				"keyid_hash_algorithms": [
+					"sha256"
+				],
+				"keytype": "ed25519",
+				"keyval": {
+					"public": "3ab34b0c2d4eadccaa0f0cf22ced07b552394063a9de2806993d022360dffc76"
+				},
+				"scheme": "ed25519"
+			},
+			"a3eba2113e37b749b908101bdb7b856a44f2853641830c0f939730aca3e30360": {
+				"keyid_hash_algorithms": [
+					"sha256"
+				],
+				"keytype": "ed25519",
+				"keyval": {
+					"public": "aee574e56780ea1709a8b56e02d4ffdd9a3a1deaed61e2eb0701f376a4422e42"
+				},
+				"scheme": "ed25519"
+			},
+			"bed15bf57ba4deb4e09667099d45d119504420983d16fd0927ebfb0c25184e7f": {
+				"keyid_hash_algorithms": [
+					"sha256"
+				],
+				"keytype": "ed25519",
+				"keyval": {
+					"public": "722dbc861813bb5b568524d62083e875c08e66fed1694d9161d253fa163dd86f"
+				},
+				"scheme": "ed25519"
+			}
+		},
+		"roles": {
+			"root": {
+				"keyids": [
+					"4c663b6d0b9f2c74a19b6791c1417c8d1916e2d84461be1a8148e4386c89582d"
+				],
+				"threshold": 1
+			},
+			"snapshot": {
+				"keyids": [
+					"bed15bf57ba4deb4e09667099d45d119504420983d16fd0927ebfb0c25184e7f"
+				],
+				"threshold": 1
+			},
+			"targets": {
+				"keyids": [
+					"a3eba2113e37b749b908101bdb7b856a44f2853641830c0f939730aca3e30360"
+				],
+				"threshold": 1
+			},
+			"timestamp": {
+				"keyids": [
+					"79b5760e4c96b6becc12bec4260c9c1d533b9b70628ade2b229ef02b772b10b0"
+				],
+				"threshold": 1
+			}
+		},
+		"spec_version": "1.0",
+		"version": 5
+	}
+}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/snapshot.json
index ed153cc..94ed0e9 100644
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/snapshot.json
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/snapshot.json
@@ -1 +1,30 @@
-{"signed":{"_type":"snapshot","expires":"2100-01-01T00:00:00Z","meta":{"root.json":{"hashes":{"sha512":"667fad6a776ed8622e2de7cdb559e9287f5bc0c03f4f75f5ae826645175897a1e86ddc0e76e529b2d6ab1798b1dd23b432d46fa39fdc73b7c0e4d3f633f4446a"},"length":1704,"version":4},"targets.json":{"hashes":{"sha512":"3e53aea729691ddff5e63e5f5677ebbe00d208927fb96f7cfb2e154a8ea1cc31b1ed31a04487091056da428ddb2c34581c0a203b4a5898c40a1e6e20be52f829"},"length":1177,"version":5}},"spec_version":"1.0","version":5},"signatures":[{"keyid":"0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7","sig":"e33eb006c7486d241776b900a73fd6b41522d8f633854193aaae9bb01d567d1d310a1098edf46d7ad9e9e34b8af768fee4c6c290a39e093df15124f58a54a803"}]}
\ No newline at end of file
+{
+	"signatures": [
+		{
+			"keyid": "bed15bf57ba4deb4e09667099d45d119504420983d16fd0927ebfb0c25184e7f",
+			"sig": "074a04f426d423f2675b58c8db38814bfe1bded4717c6c748ff2484cbc94fe2b67cb166cfe4550908565759018427042ebc59fc95005c105d12c1c0c1d779808"
+		}
+	],
+	"signed": {
+		"_type": "snapshot",
+		"expires": "2100-01-01T00:00:00Z",
+		"meta": {
+			"root.json": {
+				"hashes": {
+					"sha512": "6393ac77695995ad751bf33c885882088a4f5c3b1c58ed75433007a5c79aef45aeea10881094686254198e12fc78be781f777947f23ed5bef0bdb157ef55e74d"
+				},
+				"length": 2118,
+				"version": 5
+			},
+			"targets.json": {
+				"hashes": {
+					"sha512": "25ba8ef109680040b2e28dde51389397c51f4ba12acb1ea1b70dfc7e1bc5eceec71b1cbfb4747c47af8d9cdf76baa53ab5b2403eef226be1ae7a8d7794474ebf"
+				},
+				"length": 1392,
+				"version": 5
+			}
+		},
+		"spec_version": "1.0",
+		"version": 5
+	}
+}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/targets.json
index bee7e44..163e9e8 100644
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/targets.json
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/targets.json
@@ -1 +1,46 @@
-{"signed":{"_type":"targets","expires":"2100-01-01T00:00:00Z","spec_version":"1.0","targets":{"0":{"hashes":{"sha512":"31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"},"length":1},"1":{"hashes":{"sha512":"4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a"},"length":1},"2":{"hashes":{"sha512":"40b244112641dd78dd4f93b6c9190dd46e0099194d5a44257b7efad6ef9ff4683da1eda0244448cb343aa688f5d3efd7314dafe580ac0bcbf115aeca9e8dc114"},"length":1},"3":{"hashes":{"sha512":"3bafbf08882a2d10133093a1b8433f50563b93c14acd05b79028eb1d12799027241450980651994501423a66c276ae26c43b739bc65c4e16b10c3af6c202aebb"},"length":1},"4":{"hashes":{"sha512":"a321d8b405e3ef2604959847b36d171eebebc4a8941dc70a4784935a4fca5d5813de84dfa049f06549aa61b20848c1633ce81b675286ea8fb53db240d831c568"},"length":1}},"version":5},"signatures":[{"keyid":"c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e","sig":"38264cbbbaa1872344af739aa870c65240e1171b9b31ef39198affe8e94fdd0ef76b28b2a28b3e89ffe590afe56b91216d2469c11da05a540a8ba8674b368402"}]}
\ No newline at end of file
+{
+	"signatures": [
+		{
+			"keyid": "a3eba2113e37b749b908101bdb7b856a44f2853641830c0f939730aca3e30360",
+			"sig": "68f2346cdbe045e8558b2ccd86be66e15466955167557c704b51d7163838f670c53ab9247c16a4ed0cd4ecc981a7e2a04a350b01548f97654499d6f9c17c4202"
+		}
+	],
+	"signed": {
+		"_type": "targets",
+		"expires": "2100-01-01T00:00:00Z",
+		"spec_version": "1.0",
+		"targets": {
+			"0": {
+				"hashes": {
+					"sha512": "31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"
+				},
+				"length": 1
+			},
+			"1": {
+				"hashes": {
+					"sha512": "4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a"
+				},
+				"length": 1
+			},
+			"2": {
+				"hashes": {
+					"sha512": "40b244112641dd78dd4f93b6c9190dd46e0099194d5a44257b7efad6ef9ff4683da1eda0244448cb343aa688f5d3efd7314dafe580ac0bcbf115aeca9e8dc114"
+				},
+				"length": 1
+			},
+			"3": {
+				"hashes": {
+					"sha512": "3bafbf08882a2d10133093a1b8433f50563b93c14acd05b79028eb1d12799027241450980651994501423a66c276ae26c43b739bc65c4e16b10c3af6c202aebb"
+				},
+				"length": 1
+			},
+			"4": {
+				"hashes": {
+					"sha512": "a321d8b405e3ef2604959847b36d171eebebc4a8941dc70a4784935a4fca5d5813de84dfa049f06549aa61b20848c1633ce81b675286ea8fb53db240d831c568"
+				},
+				"length": 1
+			}
+		},
+		"version": 5
+	}
+}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/targets/0 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/targets/0
new file mode 120000
index 0000000..efe18e4
--- /dev/null
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/targets/0
@@ -0,0 +1 @@
+../../../3/repository/targets/0
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/targets/0.0 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/targets/0.0
deleted file mode 100644
index c227083..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/targets/0.0
+++ /dev/null
@@ -1 +0,0 @@
-0
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/targets/0.1 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/targets/0.1
deleted file mode 100644
index 56a6051..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/targets/0.1
+++ /dev/null
@@ -1 +0,0 @@
-1
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/targets/0.2 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/targets/0.2
deleted file mode 100644
index d8263ee..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/targets/0.2
+++ /dev/null
@@ -1 +0,0 @@
-2
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/targets/0.3 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/targets/0.3
deleted file mode 100644
index e440e5c..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/targets/0.3
+++ /dev/null
@@ -1 +0,0 @@
-3
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/targets/1 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/targets/1
new file mode 120000
index 0000000..b4a40c4
--- /dev/null
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/targets/1
@@ -0,0 +1 @@
+../../../3/repository/targets/1
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/targets/2 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/targets/2
new file mode 120000
index 0000000..1c68171
--- /dev/null
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/targets/2
@@ -0,0 +1 @@
+../../../3/repository/targets/2
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/targets/3 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/targets/3
new file mode 120000
index 0000000..1dc4d27
--- /dev/null
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/targets/3
@@ -0,0 +1 @@
+../../../3/repository/targets/3
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/targets/31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99.0 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/targets/31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99.0
deleted file mode 100644
index c227083..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/targets/31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99.0
+++ /dev/null
@@ -1 +0,0 @@
-0
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/targets/3bafbf08882a2d10133093a1b8433f50563b93c14acd05b79028eb1d12799027241450980651994501423a66c276ae26c43b739bc65c4e16b10c3af6c202aebb.3 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/targets/3bafbf08882a2d10133093a1b8433f50563b93c14acd05b79028eb1d12799027241450980651994501423a66c276ae26c43b739bc65c4e16b10c3af6c202aebb.3
deleted file mode 100644
index e440e5c..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/targets/3bafbf08882a2d10133093a1b8433f50563b93c14acd05b79028eb1d12799027241450980651994501423a66c276ae26c43b739bc65c4e16b10c3af6c202aebb.3
+++ /dev/null
@@ -1 +0,0 @@
-3
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/targets/0.4 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/targets/4
similarity index 100%
rename from client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/targets/0.4
rename to client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/targets/4
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/targets/40b244112641dd78dd4f93b6c9190dd46e0099194d5a44257b7efad6ef9ff4683da1eda0244448cb343aa688f5d3efd7314dafe580ac0bcbf115aeca9e8dc114.2 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/targets/40b244112641dd78dd4f93b6c9190dd46e0099194d5a44257b7efad6ef9ff4683da1eda0244448cb343aa688f5d3efd7314dafe580ac0bcbf115aeca9e8dc114.2
deleted file mode 100644
index d8263ee..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/targets/40b244112641dd78dd4f93b6c9190dd46e0099194d5a44257b7efad6ef9ff4683da1eda0244448cb343aa688f5d3efd7314dafe580ac0bcbf115aeca9e8dc114.2
+++ /dev/null
@@ -1 +0,0 @@
-2
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/targets/4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a.1 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/targets/4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a.1
deleted file mode 100644
index 56a6051..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/targets/4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a.1
+++ /dev/null
@@ -1 +0,0 @@
-1
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/targets/a321d8b405e3ef2604959847b36d171eebebc4a8941dc70a4784935a4fca5d5813de84dfa049f06549aa61b20848c1633ce81b675286ea8fb53db240d831c568.4 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/targets/a321d8b405e3ef2604959847b36d171eebebc4a8941dc70a4784935a4fca5d5813de84dfa049f06549aa61b20848c1633ce81b675286ea8fb53db240d831c568.4
deleted file mode 100644
index bf0d87a..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/targets/a321d8b405e3ef2604959847b36d171eebebc4a8941dc70a4784935a4fca5d5813de84dfa049f06549aa61b20848c1633ce81b675286ea8fb53db240d831c568.4
+++ /dev/null
@@ -1 +0,0 @@
-4
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/timestamp.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/timestamp.json
index f93eacc..f028ca8 100644
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/timestamp.json
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/4/repository/timestamp.json
@@ -1 +1,23 @@
-{"signed":{"_type":"timestamp","expires":"2100-01-01T00:00:00Z","meta":{"snapshot.json":{"hashes":{"sha512":"c934a3344ca1f03f63c021b959b2baf31fa45c85ff7cc1ef2b7616036891a8668953d20bb24e99a846f2a261b31f01077751d16e3b11838352f4a1643a28fdc3"},"length":720,"version":5}},"spec_version":"1.0","version":5},"signatures":[{"keyid":"cf0618db7ba21084b308c7a3a46219aff05e2ec39d48d55baac5e0c9ae5f9a47","sig":"ee1c781689cb1c8610c9e842f3efc236f02b558dd82dc6f5d0fd21246aaa12d25eadaa5724163f63f6bf8b9ccfa0ca980f941b426843c8bc56d2687431db810c"}]}
\ No newline at end of file
+{
+	"signatures": [
+		{
+			"keyid": "79b5760e4c96b6becc12bec4260c9c1d533b9b70628ade2b229ef02b772b10b0",
+			"sig": "5f5f3f30efa3531c4a8174283820a7c499b15c36f93e5f0e179b32be898e4a43810cc46e3bd06cda75b16237a258f909884ae3718189830f6e2991b5d4968b04"
+		}
+	],
+	"signed": {
+		"_type": "timestamp",
+		"expires": "2100-01-01T00:00:00Z",
+		"meta": {
+			"snapshot.json": {
+				"hashes": {
+					"sha512": "26e8fa7db5884e5b8c6868898d8ad2fa26d37da07255364b48d4e09560e83b25586767ee53e2c39eb372d6ef0db0c8d7ae72a50bfb0bdab57510439d5e3ceef8"
+				},
+				"length": 848,
+				"version": 5
+			}
+		},
+		"spec_version": "1.0",
+		"version": 5
+	}
+}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/keys/root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/keys/root.json
deleted file mode 100644
index 65d46fc..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/keys/root.json
+++ /dev/null
@@ -1 +0,0 @@
-{"encrypted":false,"data":[{"keytype":"ed25519","scheme":"ed25519","keyid_hash_algorithms":["sha512"],"keyval":{"public":"6ba18d6ace9ad74126872cde0a033c1c23eafaf0b02c1a0be02046304f66f0de","private":"56554ce58246be71054dcf6dee10d8bc8d72a771b28a514c5c13fb285f243ee76ba18d6ace9ad74126872cde0a033c1c23eafaf0b02c1a0be02046304f66f0de"}}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/keys/snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/keys/snapshot.json
deleted file mode 100644
index 26c0b06..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/keys/snapshot.json
+++ /dev/null
@@ -1,27 +0,0 @@
-{
-	"encrypted": false,
-	"data": [
-		{
-			"keytype": "ed25519",
-			"scheme": "ed25519",
-			"keyid_hash_algorithms": [
-				"sha512"
-			],
-			"keyval": {
-				"public": "9d0a51a3b2c40f8bfb6a989787eebfd0b7af521f85ecfa74ce6a3036239b7518",
-				"private": "6a96f1a4d2193a181511ac4ba1b3ae8e92de8b9f14d76ed10139d705d2d57e5b9d0a51a3b2c40f8bfb6a989787eebfd0b7af521f85ecfa74ce6a3036239b7518"
-			}
-		},
-		{
-			"keytype": "ed25519",
-			"scheme": "ed25519",
-			"keyid_hash_algorithms": [
-				"sha512"
-			],
-			"keyval": {
-				"public": "e4540436c0448f7f7200ef504b2f3f79abd21b670e2e91008ed85d07bb29a4f1",
-				"private": "29d98a556c5fc04036bb7abbc18d4fe7652f9023ebf2068ca199809120a5b0b1e4540436c0448f7f7200ef504b2f3f79abd21b670e2e91008ed85d07bb29a4f1"
-			}
-		}
-	]
-}
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/keys/targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/keys/targets.json
deleted file mode 100644
index ea04176..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/keys/targets.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
-	"encrypted": false,
-	"data": [
-		{
-			"keytype": "ed25519",
-			"scheme": "ed25519",
-			"keyid_hash_algorithms": [
-				"sha512"
-			],
-			"keyval": {
-				"public": "03f9d7cb27b94b914fda338371cc525afefddf2075a179dc7927d17b79b453ef",
-				"private": "30d93aa3b83a5672dabfe4e8a0175491ae5051d02d6e049952c065169fe04b6c03f9d7cb27b94b914fda338371cc525afefddf2075a179dc7927d17b79b453ef"
-			}
-		}
-	]
-}
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/keys/timestamp.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/keys/timestamp.json
deleted file mode 100644
index 339e796..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/keys/timestamp.json
+++ /dev/null
@@ -1 +0,0 @@
-{"encrypted":false,"data":[{"keytype":"ed25519","scheme":"ed25519","keyid_hash_algorithms":["sha512"],"keyval":{"public":"814f81f40a031f2543a29860dc1c3666416dbc424ae7c8dd79d3af3c61577e61","private":"58b4c4368feeaa3c217caa454deee36f44edaf44f92fa15c22ed8156edc9bd29814f81f40a031f2543a29860dc1c3666416dbc424ae7c8dd79d3af3c61577e61"}}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/077b1bccf9b08d011e5ed54338408b90cd089ba6bf2f57b9f65eaedb5245ab58a2b2cadbb7c9fe21c4c5935dce4f325e07d732296e2d01af32fe1ae5fa4c4094.targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/077b1bccf9b08d011e5ed54338408b90cd089ba6bf2f57b9f65eaedb5245ab58a2b2cadbb7c9fe21c4c5935dce4f325e07d732296e2d01af32fe1ae5fa4c4094.targets.json
deleted file mode 100644
index 54af415..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/077b1bccf9b08d011e5ed54338408b90cd089ba6bf2f57b9f65eaedb5245ab58a2b2cadbb7c9fe21c4c5935dce4f325e07d732296e2d01af32fe1ae5fa4c4094.targets.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"targets","expires":"2100-01-01T00:00:00Z","spec_version":"1.0","targets":{"0":{"hashes":{"sha512":"31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"},"length":1}},"version":1},"signatures":[{"keyid":"c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e","sig":"4fbdc8c6e31f63ed182694ae82081e52a68ea563d8e6339e7c247531538af6cfa3e19f7cbcf9d790c6daa57460a60ea74b75eacd1b320d86193be7d36dae3a07"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/1.root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/1.root.json
deleted file mode 100644
index faa92c6..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/1.root.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"root","consistent_snapshot":true,"expires":"2100-01-01T00:00:00Z","keys":{"0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"9d0a51a3b2c40f8bfb6a989787eebfd0b7af521f85ecfa74ce6a3036239b7518"},"scheme":"ed25519"},"4f6cbf068b19f3f876f0919eafb43f65e4899504fc18b822c6e6078b798c986b":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"bca92195f8fb4fe781e59614f819ee983d7398deea249cb93e4517e5a7b285f7"},"scheme":"ed25519"},"c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"03f9d7cb27b94b914fda338371cc525afefddf2075a179dc7927d17b79b453ef"},"scheme":"ed25519"},"c9e06997f3e77a1c999ed35b41899790214e9669b3a5c900238b8ed7260b375b":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"0b4fd984ce719448735d51496f20bfeba6ce076efd3311f828baca405827a680"},"scheme":"ed25519"}},"roles":{"root":{"keyids":["c9e06997f3e77a1c999ed35b41899790214e9669b3a5c900238b8ed7260b375b"],"threshold":1},"snapshot":{"keyids":["0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7"],"threshold":1},"targets":{"keyids":["c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e"],"threshold":1},"timestamp":{"keyids":["4f6cbf068b19f3f876f0919eafb43f65e4899504fc18b822c6e6078b798c986b"],"threshold":1}},"spec_version":"1.0","version":1},"signatures":[{"keyid":"c9e06997f3e77a1c999ed35b41899790214e9669b3a5c900238b8ed7260b375b","sig":"83803c5ce5acb02df6bd8287b16f356b9139f0c9e2696731875361ab422849d7683a0543ba83e55eea15ed77a84f654196e68337c6d2db31ec95d6a8ac7aa10f"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/1.root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/1.root.json
new file mode 120000
index 0000000..fb796e3
--- /dev/null
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/1.root.json
@@ -0,0 +1 @@
+../../4/repository/1.root.json
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/1.snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/1.snapshot.json
deleted file mode 100644
index ca3b1f0..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/1.snapshot.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"snapshot","expires":"2100-01-01T00:00:00Z","meta":{"root.json":{"hashes":{"sha512":"3501a1e50ea2045abb29c5b4accc1fe95d10c574e2797d0391fb701f4f2d1cb8f343b301bfed5fff0817afeed491e058dfb5ba01e00c916fc81d2e22b7dbde84"},"length":1704,"version":1},"targets.json":{"hashes":{"sha512":"077b1bccf9b08d011e5ed54338408b90cd089ba6bf2f57b9f65eaedb5245ab58a2b2cadbb7c9fe21c4c5935dce4f325e07d732296e2d01af32fe1ae5fa4c4094"},"length":505,"version":1}},"spec_version":"1.0","version":1},"signatures":[{"keyid":"0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7","sig":"8a8d8f27a7b46a41a50c8fb5f9f9a355f1dd9538e29505f2b13c4ae2598084b4d87d1600485eeca23237e70a6ff5f6df1cee42542c929cd3129a00df0f6fc409"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/1.targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/1.targets.json
deleted file mode 100644
index 54af415..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/1.targets.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"targets","expires":"2100-01-01T00:00:00Z","spec_version":"1.0","targets":{"0":{"hashes":{"sha512":"31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"},"length":1}},"version":1},"signatures":[{"keyid":"c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e","sig":"4fbdc8c6e31f63ed182694ae82081e52a68ea563d8e6339e7c247531538af6cfa3e19f7cbcf9d790c6daa57460a60ea74b75eacd1b320d86193be7d36dae3a07"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/17957fb35719cdf1b42f9a82e53981433c76be22ceefe0c1f27c23345d99491daecc0b3979bb963c716aaeb6c52502f5e4d5bd63a3406352a0d39f2b1fe90472.snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/17957fb35719cdf1b42f9a82e53981433c76be22ceefe0c1f27c23345d99491daecc0b3979bb963c716aaeb6c52502f5e4d5bd63a3406352a0d39f2b1fe90472.snapshot.json
deleted file mode 100644
index 453e1ac..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/17957fb35719cdf1b42f9a82e53981433c76be22ceefe0c1f27c23345d99491daecc0b3979bb963c716aaeb6c52502f5e4d5bd63a3406352a0d39f2b1fe90472.snapshot.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"snapshot","expires":"2100-01-01T00:00:00Z","meta":{"root.json":{"hashes":{"sha512":"9b995f439e9d7d53faa975ee5715d3a9f32cdd4b83a72314a3cdbe0e823faae6bd424a4a961b9fff225e59d7b6d1ee4b08fad1e289b280a2c2e13f384ec2eb8c"},"length":1704,"version":2},"targets.json":{"hashes":{"sha512":"c944d09e8c5efda309e1a4498277af737b97dc8823a659ed3a60c4d011dcdc729797fd1a6f6d963b93bc2a30414be3f88481837c2b17d14f072b39f2191866a2"},"length":673,"version":2}},"spec_version":"1.0","version":2},"signatures":[{"keyid":"0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7","sig":"f6e31e7bb5789f7c18fcaadbe6cca65c9b874fe67255291bcf56641a11a7b764939602b31aa928b2e02a87fcefbc8ef91d8de19ebd61007818eebafa76c6b701"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/2.root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/2.root.json
deleted file mode 100644
index f2c637d..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/2.root.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"root","consistent_snapshot":true,"expires":"2100-01-01T00:00:00Z","keys":{"0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"9d0a51a3b2c40f8bfb6a989787eebfd0b7af521f85ecfa74ce6a3036239b7518"},"scheme":"ed25519"},"c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"03f9d7cb27b94b914fda338371cc525afefddf2075a179dc7927d17b79b453ef"},"scheme":"ed25519"},"c9e06997f3e77a1c999ed35b41899790214e9669b3a5c900238b8ed7260b375b":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"0b4fd984ce719448735d51496f20bfeba6ce076efd3311f828baca405827a680"},"scheme":"ed25519"},"cf0618db7ba21084b308c7a3a46219aff05e2ec39d48d55baac5e0c9ae5f9a47":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"814f81f40a031f2543a29860dc1c3666416dbc424ae7c8dd79d3af3c61577e61"},"scheme":"ed25519"}},"roles":{"root":{"keyids":["c9e06997f3e77a1c999ed35b41899790214e9669b3a5c900238b8ed7260b375b"],"threshold":1},"snapshot":{"keyids":["0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7"],"threshold":1},"targets":{"keyids":["c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e"],"threshold":1},"timestamp":{"keyids":["cf0618db7ba21084b308c7a3a46219aff05e2ec39d48d55baac5e0c9ae5f9a47"],"threshold":1}},"spec_version":"1.0","version":2},"signatures":[{"keyid":"c9e06997f3e77a1c999ed35b41899790214e9669b3a5c900238b8ed7260b375b","sig":"55463ef12660d470109117b2873e1c018aaf606b9b7918ec6362929db5312665a8697c83510212bac5ef236284342922a96a4ce88122470851a7b7cb7536a107"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/2.root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/2.root.json
new file mode 120000
index 0000000..5a3e454
--- /dev/null
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/2.root.json
@@ -0,0 +1 @@
+../../4/repository/2.root.json
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/2.snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/2.snapshot.json
deleted file mode 100644
index 453e1ac..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/2.snapshot.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"snapshot","expires":"2100-01-01T00:00:00Z","meta":{"root.json":{"hashes":{"sha512":"9b995f439e9d7d53faa975ee5715d3a9f32cdd4b83a72314a3cdbe0e823faae6bd424a4a961b9fff225e59d7b6d1ee4b08fad1e289b280a2c2e13f384ec2eb8c"},"length":1704,"version":2},"targets.json":{"hashes":{"sha512":"c944d09e8c5efda309e1a4498277af737b97dc8823a659ed3a60c4d011dcdc729797fd1a6f6d963b93bc2a30414be3f88481837c2b17d14f072b39f2191866a2"},"length":673,"version":2}},"spec_version":"1.0","version":2},"signatures":[{"keyid":"0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7","sig":"f6e31e7bb5789f7c18fcaadbe6cca65c9b874fe67255291bcf56641a11a7b764939602b31aa928b2e02a87fcefbc8ef91d8de19ebd61007818eebafa76c6b701"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/2.targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/2.targets.json
deleted file mode 100644
index e82b814..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/2.targets.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"targets","expires":"2100-01-01T00:00:00Z","spec_version":"1.0","targets":{"0":{"hashes":{"sha512":"31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"},"length":1},"1":{"hashes":{"sha512":"4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a"},"length":1}},"version":2},"signatures":[{"keyid":"c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e","sig":"e50e81453ed9416a8877fa83a7e8dcc8d2ce73b38808986d420fc940ba6fa43c60b53d1a00caba2ae5a06ff8421472c9c4a09efee56cbe63a683b01f15f4e10a"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/28c33847af0916c8bd7231f6610911bf977b677bbcc2904dd86c6d294fb807b837146a8e9b36ea563f9cf95261e7ba261f6337b2925f595ba8b46baa9ca58699.snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/28c33847af0916c8bd7231f6610911bf977b677bbcc2904dd86c6d294fb807b837146a8e9b36ea563f9cf95261e7ba261f6337b2925f595ba8b46baa9ca58699.snapshot.json
deleted file mode 100644
index 0a49263..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/28c33847af0916c8bd7231f6610911bf977b677bbcc2904dd86c6d294fb807b837146a8e9b36ea563f9cf95261e7ba261f6337b2925f595ba8b46baa9ca58699.snapshot.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"snapshot","expires":"2100-01-01T00:00:00Z","meta":{"root.json":{"hashes":{"sha512":"9b995f439e9d7d53faa975ee5715d3a9f32cdd4b83a72314a3cdbe0e823faae6bd424a4a961b9fff225e59d7b6d1ee4b08fad1e289b280a2c2e13f384ec2eb8c"},"length":1704,"version":2},"targets.json":{"hashes":{"sha512":"544d56373898163c901da99746d89fc84b03ba37691cc37b14c6f3e6372510ea5a63023eb16e42151ee188cd5b1da589ecc323f2dca49b554479595d19595bb7"},"length":841,"version":3}},"spec_version":"1.0","version":3},"signatures":[{"keyid":"0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7","sig":"b47e6d8d242a8c8965d3a3e0aaf1787ccd3e4c99b10648c2573241915d35dfa130170ee729503a57c543b5828d029626e4f7caa5414c971b4c35c443e0ed6d05"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/3.root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/3.root.json
deleted file mode 100644
index 1029d48..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/3.root.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"root","consistent_snapshot":true,"expires":"2100-01-01T00:00:00Z","keys":{"0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"9d0a51a3b2c40f8bfb6a989787eebfd0b7af521f85ecfa74ce6a3036239b7518"},"scheme":"ed25519"},"99bc60ecc428001eb80f5f5b65f19856c7cecee35c3fc52e8aaaa3adc14baf5a":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"6ba18d6ace9ad74126872cde0a033c1c23eafaf0b02c1a0be02046304f66f0de"},"scheme":"ed25519"},"c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"03f9d7cb27b94b914fda338371cc525afefddf2075a179dc7927d17b79b453ef"},"scheme":"ed25519"},"cf0618db7ba21084b308c7a3a46219aff05e2ec39d48d55baac5e0c9ae5f9a47":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"814f81f40a031f2543a29860dc1c3666416dbc424ae7c8dd79d3af3c61577e61"},"scheme":"ed25519"}},"roles":{"root":{"keyids":["99bc60ecc428001eb80f5f5b65f19856c7cecee35c3fc52e8aaaa3adc14baf5a"],"threshold":1},"snapshot":{"keyids":["0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7"],"threshold":1},"targets":{"keyids":["c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e"],"threshold":1},"timestamp":{"keyids":["cf0618db7ba21084b308c7a3a46219aff05e2ec39d48d55baac5e0c9ae5f9a47"],"threshold":1}},"spec_version":"1.0","version":3},"signatures":[{"keyid":"c9e06997f3e77a1c999ed35b41899790214e9669b3a5c900238b8ed7260b375b","sig":"bad607ef21e7cb5bf6edc24e2e0dbf584037a8aeb823ad10fdab88e972c151ed1733cb3f1675544750ff9dc84c0a254ed1f55c53016620939555ee1aa6f46707"},{"keyid":"99bc60ecc428001eb80f5f5b65f19856c7cecee35c3fc52e8aaaa3adc14baf5a","sig":"56fdb408f68f6167e42d5f172c78d7354ff6b92329846242c528d3c17c55f43cf482fa61696efd0ced19fe047bbf82f9cabfc9c4ed5f759c9844ac018aa69b09"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/3.root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/3.root.json
new file mode 120000
index 0000000..d1cb251
--- /dev/null
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/3.root.json
@@ -0,0 +1 @@
+../../4/repository/3.root.json
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/3.snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/3.snapshot.json
deleted file mode 100644
index 0a49263..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/3.snapshot.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"snapshot","expires":"2100-01-01T00:00:00Z","meta":{"root.json":{"hashes":{"sha512":"9b995f439e9d7d53faa975ee5715d3a9f32cdd4b83a72314a3cdbe0e823faae6bd424a4a961b9fff225e59d7b6d1ee4b08fad1e289b280a2c2e13f384ec2eb8c"},"length":1704,"version":2},"targets.json":{"hashes":{"sha512":"544d56373898163c901da99746d89fc84b03ba37691cc37b14c6f3e6372510ea5a63023eb16e42151ee188cd5b1da589ecc323f2dca49b554479595d19595bb7"},"length":841,"version":3}},"spec_version":"1.0","version":3},"signatures":[{"keyid":"0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7","sig":"b47e6d8d242a8c8965d3a3e0aaf1787ccd3e4c99b10648c2573241915d35dfa130170ee729503a57c543b5828d029626e4f7caa5414c971b4c35c443e0ed6d05"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/3.targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/3.targets.json
deleted file mode 100644
index 4ec4a91..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/3.targets.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"targets","expires":"2100-01-01T00:00:00Z","spec_version":"1.0","targets":{"0":{"hashes":{"sha512":"31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"},"length":1},"1":{"hashes":{"sha512":"4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a"},"length":1},"2":{"hashes":{"sha512":"40b244112641dd78dd4f93b6c9190dd46e0099194d5a44257b7efad6ef9ff4683da1eda0244448cb343aa688f5d3efd7314dafe580ac0bcbf115aeca9e8dc114"},"length":1}},"version":3},"signatures":[{"keyid":"c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e","sig":"c899a41e9dd4ec3d5c68d86924b535bcfce246448c4ad0f4622a0c0eb2ebde0704916e949357e4e256c3628ab7d31ae2133ab340ba68f5d91a7a03faed0d3906"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/3501a1e50ea2045abb29c5b4accc1fe95d10c574e2797d0391fb701f4f2d1cb8f343b301bfed5fff0817afeed491e058dfb5ba01e00c916fc81d2e22b7dbde84.root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/3501a1e50ea2045abb29c5b4accc1fe95d10c574e2797d0391fb701f4f2d1cb8f343b301bfed5fff0817afeed491e058dfb5ba01e00c916fc81d2e22b7dbde84.root.json
deleted file mode 100644
index faa92c6..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/3501a1e50ea2045abb29c5b4accc1fe95d10c574e2797d0391fb701f4f2d1cb8f343b301bfed5fff0817afeed491e058dfb5ba01e00c916fc81d2e22b7dbde84.root.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"root","consistent_snapshot":true,"expires":"2100-01-01T00:00:00Z","keys":{"0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"9d0a51a3b2c40f8bfb6a989787eebfd0b7af521f85ecfa74ce6a3036239b7518"},"scheme":"ed25519"},"4f6cbf068b19f3f876f0919eafb43f65e4899504fc18b822c6e6078b798c986b":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"bca92195f8fb4fe781e59614f819ee983d7398deea249cb93e4517e5a7b285f7"},"scheme":"ed25519"},"c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"03f9d7cb27b94b914fda338371cc525afefddf2075a179dc7927d17b79b453ef"},"scheme":"ed25519"},"c9e06997f3e77a1c999ed35b41899790214e9669b3a5c900238b8ed7260b375b":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"0b4fd984ce719448735d51496f20bfeba6ce076efd3311f828baca405827a680"},"scheme":"ed25519"}},"roles":{"root":{"keyids":["c9e06997f3e77a1c999ed35b41899790214e9669b3a5c900238b8ed7260b375b"],"threshold":1},"snapshot":{"keyids":["0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7"],"threshold":1},"targets":{"keyids":["c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e"],"threshold":1},"timestamp":{"keyids":["4f6cbf068b19f3f876f0919eafb43f65e4899504fc18b822c6e6078b798c986b"],"threshold":1}},"spec_version":"1.0","version":1},"signatures":[{"keyid":"c9e06997f3e77a1c999ed35b41899790214e9669b3a5c900238b8ed7260b375b","sig":"83803c5ce5acb02df6bd8287b16f356b9139f0c9e2696731875361ab422849d7683a0543ba83e55eea15ed77a84f654196e68337c6d2db31ec95d6a8ac7aa10f"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/3e53aea729691ddff5e63e5f5677ebbe00d208927fb96f7cfb2e154a8ea1cc31b1ed31a04487091056da428ddb2c34581c0a203b4a5898c40a1e6e20be52f829.targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/3e53aea729691ddff5e63e5f5677ebbe00d208927fb96f7cfb2e154a8ea1cc31b1ed31a04487091056da428ddb2c34581c0a203b4a5898c40a1e6e20be52f829.targets.json
deleted file mode 100644
index bee7e44..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/3e53aea729691ddff5e63e5f5677ebbe00d208927fb96f7cfb2e154a8ea1cc31b1ed31a04487091056da428ddb2c34581c0a203b4a5898c40a1e6e20be52f829.targets.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"targets","expires":"2100-01-01T00:00:00Z","spec_version":"1.0","targets":{"0":{"hashes":{"sha512":"31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"},"length":1},"1":{"hashes":{"sha512":"4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a"},"length":1},"2":{"hashes":{"sha512":"40b244112641dd78dd4f93b6c9190dd46e0099194d5a44257b7efad6ef9ff4683da1eda0244448cb343aa688f5d3efd7314dafe580ac0bcbf115aeca9e8dc114"},"length":1},"3":{"hashes":{"sha512":"3bafbf08882a2d10133093a1b8433f50563b93c14acd05b79028eb1d12799027241450980651994501423a66c276ae26c43b739bc65c4e16b10c3af6c202aebb"},"length":1},"4":{"hashes":{"sha512":"a321d8b405e3ef2604959847b36d171eebebc4a8941dc70a4784935a4fca5d5813de84dfa049f06549aa61b20848c1633ce81b675286ea8fb53db240d831c568"},"length":1}},"version":5},"signatures":[{"keyid":"c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e","sig":"38264cbbbaa1872344af739aa870c65240e1171b9b31ef39198affe8e94fdd0ef76b28b2a28b3e89ffe590afe56b91216d2469c11da05a540a8ba8674b368402"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/4.root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/4.root.json
deleted file mode 100644
index f574e5f..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/4.root.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"root","consistent_snapshot":true,"expires":"2100-01-01T00:00:00Z","keys":{"0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"9d0a51a3b2c40f8bfb6a989787eebfd0b7af521f85ecfa74ce6a3036239b7518"},"scheme":"ed25519"},"99bc60ecc428001eb80f5f5b65f19856c7cecee35c3fc52e8aaaa3adc14baf5a":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"6ba18d6ace9ad74126872cde0a033c1c23eafaf0b02c1a0be02046304f66f0de"},"scheme":"ed25519"},"c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"03f9d7cb27b94b914fda338371cc525afefddf2075a179dc7927d17b79b453ef"},"scheme":"ed25519"},"cf0618db7ba21084b308c7a3a46219aff05e2ec39d48d55baac5e0c9ae5f9a47":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"814f81f40a031f2543a29860dc1c3666416dbc424ae7c8dd79d3af3c61577e61"},"scheme":"ed25519"}},"roles":{"root":{"keyids":["99bc60ecc428001eb80f5f5b65f19856c7cecee35c3fc52e8aaaa3adc14baf5a"],"threshold":1},"snapshot":{"keyids":["0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7"],"threshold":1},"targets":{"keyids":["c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e"],"threshold":1},"timestamp":{"keyids":["cf0618db7ba21084b308c7a3a46219aff05e2ec39d48d55baac5e0c9ae5f9a47"],"threshold":1}},"spec_version":"1.0","version":4},"signatures":[{"keyid":"99bc60ecc428001eb80f5f5b65f19856c7cecee35c3fc52e8aaaa3adc14baf5a","sig":"eda75221a94275f8dadcc582abd4e62fb83de04589e94f14bf2b4ec5398756d3d11bc32cf378049efe7cdd4e4c3818e7590775084bd09e4f428e5bda76bcc906"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/4.root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/4.root.json
new file mode 120000
index 0000000..bda6d08
--- /dev/null
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/4.root.json
@@ -0,0 +1 @@
+../../4/repository/4.root.json
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/4.snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/4.snapshot.json
deleted file mode 100644
index 6316dfe..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/4.snapshot.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"snapshot","expires":"2100-01-01T00:00:00Z","meta":{"root.json":{"hashes":{"sha512":"58236babe5fae9454fb0f8d3150b10cbbe65fff7efc32850fafd2a203b52a00a21819b2bacec8b2aadac0a8a662da4259727544a0b01bbc76f534c4ce3048230"},"length":1918,"version":3},"targets.json":{"hashes":{"sha512":"71408991e0b5359d1a6f2ce0716b515f209821660a965f76d0c0df1cf6667aa7749518c45d4346de444f6a0a5b7864c1c11fae44010c7497d213392964847406"},"length":1009,"version":4}},"spec_version":"1.0","version":4},"signatures":[{"keyid":"0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7","sig":"fd9e7c74b682fd0010beb790632a56224dc6ae5030652f57a2bfe4b0ca0e4e7cc6ef30655bfdc76ce24bac6822a16a98db6689c6131dbb65f20d3ebea5aeb304"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/4.targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/4.targets.json
deleted file mode 100644
index 0a2635d..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/4.targets.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"targets","expires":"2100-01-01T00:00:00Z","spec_version":"1.0","targets":{"0":{"hashes":{"sha512":"31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"},"length":1},"1":{"hashes":{"sha512":"4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a"},"length":1},"2":{"hashes":{"sha512":"40b244112641dd78dd4f93b6c9190dd46e0099194d5a44257b7efad6ef9ff4683da1eda0244448cb343aa688f5d3efd7314dafe580ac0bcbf115aeca9e8dc114"},"length":1},"3":{"hashes":{"sha512":"3bafbf08882a2d10133093a1b8433f50563b93c14acd05b79028eb1d12799027241450980651994501423a66c276ae26c43b739bc65c4e16b10c3af6c202aebb"},"length":1}},"version":4},"signatures":[{"keyid":"c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e","sig":"d6e0604d6aa9680fc11fd7bf9004e1d2203fa89af8dce1d0cd91fdfa0a56f24c4e990ce5f17b4f838edc50c1be3009115556417c5ce338be12be28ba67d48005"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/5.root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/5.root.json
new file mode 120000
index 0000000..f99552a
--- /dev/null
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/5.root.json
@@ -0,0 +1 @@
+../../4/repository/5.root.json
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/5.snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/5.snapshot.json
deleted file mode 100644
index ed153cc..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/5.snapshot.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"snapshot","expires":"2100-01-01T00:00:00Z","meta":{"root.json":{"hashes":{"sha512":"667fad6a776ed8622e2de7cdb559e9287f5bc0c03f4f75f5ae826645175897a1e86ddc0e76e529b2d6ab1798b1dd23b432d46fa39fdc73b7c0e4d3f633f4446a"},"length":1704,"version":4},"targets.json":{"hashes":{"sha512":"3e53aea729691ddff5e63e5f5677ebbe00d208927fb96f7cfb2e154a8ea1cc31b1ed31a04487091056da428ddb2c34581c0a203b4a5898c40a1e6e20be52f829"},"length":1177,"version":5}},"spec_version":"1.0","version":5},"signatures":[{"keyid":"0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7","sig":"e33eb006c7486d241776b900a73fd6b41522d8f633854193aaae9bb01d567d1d310a1098edf46d7ad9e9e34b8af768fee4c6c290a39e093df15124f58a54a803"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/5.targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/5.targets.json
deleted file mode 100644
index bee7e44..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/5.targets.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"targets","expires":"2100-01-01T00:00:00Z","spec_version":"1.0","targets":{"0":{"hashes":{"sha512":"31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"},"length":1},"1":{"hashes":{"sha512":"4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a"},"length":1},"2":{"hashes":{"sha512":"40b244112641dd78dd4f93b6c9190dd46e0099194d5a44257b7efad6ef9ff4683da1eda0244448cb343aa688f5d3efd7314dafe580ac0bcbf115aeca9e8dc114"},"length":1},"3":{"hashes":{"sha512":"3bafbf08882a2d10133093a1b8433f50563b93c14acd05b79028eb1d12799027241450980651994501423a66c276ae26c43b739bc65c4e16b10c3af6c202aebb"},"length":1},"4":{"hashes":{"sha512":"a321d8b405e3ef2604959847b36d171eebebc4a8941dc70a4784935a4fca5d5813de84dfa049f06549aa61b20848c1633ce81b675286ea8fb53db240d831c568"},"length":1}},"version":5},"signatures":[{"keyid":"c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e","sig":"38264cbbbaa1872344af739aa870c65240e1171b9b31ef39198affe8e94fdd0ef76b28b2a28b3e89ffe590afe56b91216d2469c11da05a540a8ba8674b368402"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/544d56373898163c901da99746d89fc84b03ba37691cc37b14c6f3e6372510ea5a63023eb16e42151ee188cd5b1da589ecc323f2dca49b554479595d19595bb7.targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/544d56373898163c901da99746d89fc84b03ba37691cc37b14c6f3e6372510ea5a63023eb16e42151ee188cd5b1da589ecc323f2dca49b554479595d19595bb7.targets.json
deleted file mode 100644
index 4ec4a91..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/544d56373898163c901da99746d89fc84b03ba37691cc37b14c6f3e6372510ea5a63023eb16e42151ee188cd5b1da589ecc323f2dca49b554479595d19595bb7.targets.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"targets","expires":"2100-01-01T00:00:00Z","spec_version":"1.0","targets":{"0":{"hashes":{"sha512":"31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"},"length":1},"1":{"hashes":{"sha512":"4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a"},"length":1},"2":{"hashes":{"sha512":"40b244112641dd78dd4f93b6c9190dd46e0099194d5a44257b7efad6ef9ff4683da1eda0244448cb343aa688f5d3efd7314dafe580ac0bcbf115aeca9e8dc114"},"length":1}},"version":3},"signatures":[{"keyid":"c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e","sig":"c899a41e9dd4ec3d5c68d86924b535bcfce246448c4ad0f4622a0c0eb2ebde0704916e949357e4e256c3628ab7d31ae2133ab340ba68f5d91a7a03faed0d3906"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/58236babe5fae9454fb0f8d3150b10cbbe65fff7efc32850fafd2a203b52a00a21819b2bacec8b2aadac0a8a662da4259727544a0b01bbc76f534c4ce3048230.root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/58236babe5fae9454fb0f8d3150b10cbbe65fff7efc32850fafd2a203b52a00a21819b2bacec8b2aadac0a8a662da4259727544a0b01bbc76f534c4ce3048230.root.json
deleted file mode 100644
index 1029d48..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/58236babe5fae9454fb0f8d3150b10cbbe65fff7efc32850fafd2a203b52a00a21819b2bacec8b2aadac0a8a662da4259727544a0b01bbc76f534c4ce3048230.root.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"root","consistent_snapshot":true,"expires":"2100-01-01T00:00:00Z","keys":{"0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"9d0a51a3b2c40f8bfb6a989787eebfd0b7af521f85ecfa74ce6a3036239b7518"},"scheme":"ed25519"},"99bc60ecc428001eb80f5f5b65f19856c7cecee35c3fc52e8aaaa3adc14baf5a":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"6ba18d6ace9ad74126872cde0a033c1c23eafaf0b02c1a0be02046304f66f0de"},"scheme":"ed25519"},"c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"03f9d7cb27b94b914fda338371cc525afefddf2075a179dc7927d17b79b453ef"},"scheme":"ed25519"},"cf0618db7ba21084b308c7a3a46219aff05e2ec39d48d55baac5e0c9ae5f9a47":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"814f81f40a031f2543a29860dc1c3666416dbc424ae7c8dd79d3af3c61577e61"},"scheme":"ed25519"}},"roles":{"root":{"keyids":["99bc60ecc428001eb80f5f5b65f19856c7cecee35c3fc52e8aaaa3adc14baf5a"],"threshold":1},"snapshot":{"keyids":["0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7"],"threshold":1},"targets":{"keyids":["c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e"],"threshold":1},"timestamp":{"keyids":["cf0618db7ba21084b308c7a3a46219aff05e2ec39d48d55baac5e0c9ae5f9a47"],"threshold":1}},"spec_version":"1.0","version":3},"signatures":[{"keyid":"c9e06997f3e77a1c999ed35b41899790214e9669b3a5c900238b8ed7260b375b","sig":"bad607ef21e7cb5bf6edc24e2e0dbf584037a8aeb823ad10fdab88e972c151ed1733cb3f1675544750ff9dc84c0a254ed1f55c53016620939555ee1aa6f46707"},{"keyid":"99bc60ecc428001eb80f5f5b65f19856c7cecee35c3fc52e8aaaa3adc14baf5a","sig":"56fdb408f68f6167e42d5f172c78d7354ff6b92329846242c528d3c17c55f43cf482fa61696efd0ced19fe047bbf82f9cabfc9c4ed5f759c9844ac018aa69b09"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/6.snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/6.snapshot.json
deleted file mode 100644
index daf3a99..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/6.snapshot.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"snapshot","expires":"2100-01-01T00:00:00Z","meta":{"root.json":{"hashes":{"sha512":"667fad6a776ed8622e2de7cdb559e9287f5bc0c03f4f75f5ae826645175897a1e86ddc0e76e529b2d6ab1798b1dd23b432d46fa39fdc73b7c0e4d3f633f4446a"},"length":1704,"version":4},"targets.json":{"hashes":{"sha512":"79ce596f54d798c736402c071d54c7fa77206094d2792db876538ecf18b9fbfc1a245cf3b4650164c841d2cbb2ef3d640dabe06840c7f64654c4107d229eb811"},"length":1345,"version":6}},"spec_version":"1.0","version":6},"signatures":[{"keyid":"0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7","sig":"821e5fca553231430687b187dd1bcd91c8eb8925675cb4a7cd8bb888a442df7d30f21cb83ce1c2326d59bf005025e80295f27594e7d7f83abd94797c5a204605"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/6.targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/6.targets.json
deleted file mode 100644
index cc1a35c..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/6.targets.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"targets","expires":"2100-01-01T00:00:00Z","spec_version":"1.0","targets":{"0":{"hashes":{"sha512":"31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"},"length":1},"1":{"hashes":{"sha512":"4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a"},"length":1},"2":{"hashes":{"sha512":"40b244112641dd78dd4f93b6c9190dd46e0099194d5a44257b7efad6ef9ff4683da1eda0244448cb343aa688f5d3efd7314dafe580ac0bcbf115aeca9e8dc114"},"length":1},"3":{"hashes":{"sha512":"3bafbf08882a2d10133093a1b8433f50563b93c14acd05b79028eb1d12799027241450980651994501423a66c276ae26c43b739bc65c4e16b10c3af6c202aebb"},"length":1},"4":{"hashes":{"sha512":"a321d8b405e3ef2604959847b36d171eebebc4a8941dc70a4784935a4fca5d5813de84dfa049f06549aa61b20848c1633ce81b675286ea8fb53db240d831c568"},"length":1},"5":{"hashes":{"sha512":"06df05371981a237d0ed11472fae7c94c9ac0eff1d05413516710d17b10a4fb6f4517bda4a695f02d0a73dd4db543b4653df28f5d09dab86f92ffb9b86d01e25"},"length":1}},"version":6},"signatures":[{"keyid":"c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e","sig":"eedb5f872ec24b26c039b438d5f354f8e465028919e034d306dc874abcc5a885a553e8245994ec7e8c5c9848ae10c0786e94dc918865cc9ebd3caf3a2c9bf309"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/667fad6a776ed8622e2de7cdb559e9287f5bc0c03f4f75f5ae826645175897a1e86ddc0e76e529b2d6ab1798b1dd23b432d46fa39fdc73b7c0e4d3f633f4446a.root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/667fad6a776ed8622e2de7cdb559e9287f5bc0c03f4f75f5ae826645175897a1e86ddc0e76e529b2d6ab1798b1dd23b432d46fa39fdc73b7c0e4d3f633f4446a.root.json
deleted file mode 100644
index f574e5f..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/667fad6a776ed8622e2de7cdb559e9287f5bc0c03f4f75f5ae826645175897a1e86ddc0e76e529b2d6ab1798b1dd23b432d46fa39fdc73b7c0e4d3f633f4446a.root.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"root","consistent_snapshot":true,"expires":"2100-01-01T00:00:00Z","keys":{"0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"9d0a51a3b2c40f8bfb6a989787eebfd0b7af521f85ecfa74ce6a3036239b7518"},"scheme":"ed25519"},"99bc60ecc428001eb80f5f5b65f19856c7cecee35c3fc52e8aaaa3adc14baf5a":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"6ba18d6ace9ad74126872cde0a033c1c23eafaf0b02c1a0be02046304f66f0de"},"scheme":"ed25519"},"c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"03f9d7cb27b94b914fda338371cc525afefddf2075a179dc7927d17b79b453ef"},"scheme":"ed25519"},"cf0618db7ba21084b308c7a3a46219aff05e2ec39d48d55baac5e0c9ae5f9a47":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"814f81f40a031f2543a29860dc1c3666416dbc424ae7c8dd79d3af3c61577e61"},"scheme":"ed25519"}},"roles":{"root":{"keyids":["99bc60ecc428001eb80f5f5b65f19856c7cecee35c3fc52e8aaaa3adc14baf5a"],"threshold":1},"snapshot":{"keyids":["0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7"],"threshold":1},"targets":{"keyids":["c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e"],"threshold":1},"timestamp":{"keyids":["cf0618db7ba21084b308c7a3a46219aff05e2ec39d48d55baac5e0c9ae5f9a47"],"threshold":1}},"spec_version":"1.0","version":4},"signatures":[{"keyid":"99bc60ecc428001eb80f5f5b65f19856c7cecee35c3fc52e8aaaa3adc14baf5a","sig":"eda75221a94275f8dadcc582abd4e62fb83de04589e94f14bf2b4ec5398756d3d11bc32cf378049efe7cdd4e4c3818e7590775084bd09e4f428e5bda76bcc906"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/71408991e0b5359d1a6f2ce0716b515f209821660a965f76d0c0df1cf6667aa7749518c45d4346de444f6a0a5b7864c1c11fae44010c7497d213392964847406.targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/71408991e0b5359d1a6f2ce0716b515f209821660a965f76d0c0df1cf6667aa7749518c45d4346de444f6a0a5b7864c1c11fae44010c7497d213392964847406.targets.json
deleted file mode 100644
index 0a2635d..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/71408991e0b5359d1a6f2ce0716b515f209821660a965f76d0c0df1cf6667aa7749518c45d4346de444f6a0a5b7864c1c11fae44010c7497d213392964847406.targets.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"targets","expires":"2100-01-01T00:00:00Z","spec_version":"1.0","targets":{"0":{"hashes":{"sha512":"31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"},"length":1},"1":{"hashes":{"sha512":"4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a"},"length":1},"2":{"hashes":{"sha512":"40b244112641dd78dd4f93b6c9190dd46e0099194d5a44257b7efad6ef9ff4683da1eda0244448cb343aa688f5d3efd7314dafe580ac0bcbf115aeca9e8dc114"},"length":1},"3":{"hashes":{"sha512":"3bafbf08882a2d10133093a1b8433f50563b93c14acd05b79028eb1d12799027241450980651994501423a66c276ae26c43b739bc65c4e16b10c3af6c202aebb"},"length":1}},"version":4},"signatures":[{"keyid":"c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e","sig":"d6e0604d6aa9680fc11fd7bf9004e1d2203fa89af8dce1d0cd91fdfa0a56f24c4e990ce5f17b4f838edc50c1be3009115556417c5ce338be12be28ba67d48005"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/79ce596f54d798c736402c071d54c7fa77206094d2792db876538ecf18b9fbfc1a245cf3b4650164c841d2cbb2ef3d640dabe06840c7f64654c4107d229eb811.targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/79ce596f54d798c736402c071d54c7fa77206094d2792db876538ecf18b9fbfc1a245cf3b4650164c841d2cbb2ef3d640dabe06840c7f64654c4107d229eb811.targets.json
deleted file mode 100644
index cc1a35c..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/79ce596f54d798c736402c071d54c7fa77206094d2792db876538ecf18b9fbfc1a245cf3b4650164c841d2cbb2ef3d640dabe06840c7f64654c4107d229eb811.targets.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"targets","expires":"2100-01-01T00:00:00Z","spec_version":"1.0","targets":{"0":{"hashes":{"sha512":"31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"},"length":1},"1":{"hashes":{"sha512":"4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a"},"length":1},"2":{"hashes":{"sha512":"40b244112641dd78dd4f93b6c9190dd46e0099194d5a44257b7efad6ef9ff4683da1eda0244448cb343aa688f5d3efd7314dafe580ac0bcbf115aeca9e8dc114"},"length":1},"3":{"hashes":{"sha512":"3bafbf08882a2d10133093a1b8433f50563b93c14acd05b79028eb1d12799027241450980651994501423a66c276ae26c43b739bc65c4e16b10c3af6c202aebb"},"length":1},"4":{"hashes":{"sha512":"a321d8b405e3ef2604959847b36d171eebebc4a8941dc70a4784935a4fca5d5813de84dfa049f06549aa61b20848c1633ce81b675286ea8fb53db240d831c568"},"length":1},"5":{"hashes":{"sha512":"06df05371981a237d0ed11472fae7c94c9ac0eff1d05413516710d17b10a4fb6f4517bda4a695f02d0a73dd4db543b4653df28f5d09dab86f92ffb9b86d01e25"},"length":1}},"version":6},"signatures":[{"keyid":"c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e","sig":"eedb5f872ec24b26c039b438d5f354f8e465028919e034d306dc874abcc5a885a553e8245994ec7e8c5c9848ae10c0786e94dc918865cc9ebd3caf3a2c9bf309"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/961ee56b4aeb3a06a00007c3352f650d70bffc26e0809ac446f155f1594c47c4342664ef0f89bd06f318594cf0dca8a413f301dfd0844232854fedaa6273ba59.snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/961ee56b4aeb3a06a00007c3352f650d70bffc26e0809ac446f155f1594c47c4342664ef0f89bd06f318594cf0dca8a413f301dfd0844232854fedaa6273ba59.snapshot.json
deleted file mode 100644
index daf3a99..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/961ee56b4aeb3a06a00007c3352f650d70bffc26e0809ac446f155f1594c47c4342664ef0f89bd06f318594cf0dca8a413f301dfd0844232854fedaa6273ba59.snapshot.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"snapshot","expires":"2100-01-01T00:00:00Z","meta":{"root.json":{"hashes":{"sha512":"667fad6a776ed8622e2de7cdb559e9287f5bc0c03f4f75f5ae826645175897a1e86ddc0e76e529b2d6ab1798b1dd23b432d46fa39fdc73b7c0e4d3f633f4446a"},"length":1704,"version":4},"targets.json":{"hashes":{"sha512":"79ce596f54d798c736402c071d54c7fa77206094d2792db876538ecf18b9fbfc1a245cf3b4650164c841d2cbb2ef3d640dabe06840c7f64654c4107d229eb811"},"length":1345,"version":6}},"spec_version":"1.0","version":6},"signatures":[{"keyid":"0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7","sig":"821e5fca553231430687b187dd1bcd91c8eb8925675cb4a7cd8bb888a442df7d30f21cb83ce1c2326d59bf005025e80295f27594e7d7f83abd94797c5a204605"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/9b995f439e9d7d53faa975ee5715d3a9f32cdd4b83a72314a3cdbe0e823faae6bd424a4a961b9fff225e59d7b6d1ee4b08fad1e289b280a2c2e13f384ec2eb8c.root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/9b995f439e9d7d53faa975ee5715d3a9f32cdd4b83a72314a3cdbe0e823faae6bd424a4a961b9fff225e59d7b6d1ee4b08fad1e289b280a2c2e13f384ec2eb8c.root.json
deleted file mode 100644
index f2c637d..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/9b995f439e9d7d53faa975ee5715d3a9f32cdd4b83a72314a3cdbe0e823faae6bd424a4a961b9fff225e59d7b6d1ee4b08fad1e289b280a2c2e13f384ec2eb8c.root.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"root","consistent_snapshot":true,"expires":"2100-01-01T00:00:00Z","keys":{"0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"9d0a51a3b2c40f8bfb6a989787eebfd0b7af521f85ecfa74ce6a3036239b7518"},"scheme":"ed25519"},"c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"03f9d7cb27b94b914fda338371cc525afefddf2075a179dc7927d17b79b453ef"},"scheme":"ed25519"},"c9e06997f3e77a1c999ed35b41899790214e9669b3a5c900238b8ed7260b375b":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"0b4fd984ce719448735d51496f20bfeba6ce076efd3311f828baca405827a680"},"scheme":"ed25519"},"cf0618db7ba21084b308c7a3a46219aff05e2ec39d48d55baac5e0c9ae5f9a47":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"814f81f40a031f2543a29860dc1c3666416dbc424ae7c8dd79d3af3c61577e61"},"scheme":"ed25519"}},"roles":{"root":{"keyids":["c9e06997f3e77a1c999ed35b41899790214e9669b3a5c900238b8ed7260b375b"],"threshold":1},"snapshot":{"keyids":["0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7"],"threshold":1},"targets":{"keyids":["c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e"],"threshold":1},"timestamp":{"keyids":["cf0618db7ba21084b308c7a3a46219aff05e2ec39d48d55baac5e0c9ae5f9a47"],"threshold":1}},"spec_version":"1.0","version":2},"signatures":[{"keyid":"c9e06997f3e77a1c999ed35b41899790214e9669b3a5c900238b8ed7260b375b","sig":"55463ef12660d470109117b2873e1c018aaf606b9b7918ec6362929db5312665a8697c83510212bac5ef236284342922a96a4ce88122470851a7b7cb7536a107"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/c934a3344ca1f03f63c021b959b2baf31fa45c85ff7cc1ef2b7616036891a8668953d20bb24e99a846f2a261b31f01077751d16e3b11838352f4a1643a28fdc3.snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/c934a3344ca1f03f63c021b959b2baf31fa45c85ff7cc1ef2b7616036891a8668953d20bb24e99a846f2a261b31f01077751d16e3b11838352f4a1643a28fdc3.snapshot.json
deleted file mode 100644
index ed153cc..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/c934a3344ca1f03f63c021b959b2baf31fa45c85ff7cc1ef2b7616036891a8668953d20bb24e99a846f2a261b31f01077751d16e3b11838352f4a1643a28fdc3.snapshot.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"snapshot","expires":"2100-01-01T00:00:00Z","meta":{"root.json":{"hashes":{"sha512":"667fad6a776ed8622e2de7cdb559e9287f5bc0c03f4f75f5ae826645175897a1e86ddc0e76e529b2d6ab1798b1dd23b432d46fa39fdc73b7c0e4d3f633f4446a"},"length":1704,"version":4},"targets.json":{"hashes":{"sha512":"3e53aea729691ddff5e63e5f5677ebbe00d208927fb96f7cfb2e154a8ea1cc31b1ed31a04487091056da428ddb2c34581c0a203b4a5898c40a1e6e20be52f829"},"length":1177,"version":5}},"spec_version":"1.0","version":5},"signatures":[{"keyid":"0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7","sig":"e33eb006c7486d241776b900a73fd6b41522d8f633854193aaae9bb01d567d1d310a1098edf46d7ad9e9e34b8af768fee4c6c290a39e093df15124f58a54a803"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/c944d09e8c5efda309e1a4498277af737b97dc8823a659ed3a60c4d011dcdc729797fd1a6f6d963b93bc2a30414be3f88481837c2b17d14f072b39f2191866a2.targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/c944d09e8c5efda309e1a4498277af737b97dc8823a659ed3a60c4d011dcdc729797fd1a6f6d963b93bc2a30414be3f88481837c2b17d14f072b39f2191866a2.targets.json
deleted file mode 100644
index e82b814..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/c944d09e8c5efda309e1a4498277af737b97dc8823a659ed3a60c4d011dcdc729797fd1a6f6d963b93bc2a30414be3f88481837c2b17d14f072b39f2191866a2.targets.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"targets","expires":"2100-01-01T00:00:00Z","spec_version":"1.0","targets":{"0":{"hashes":{"sha512":"31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"},"length":1},"1":{"hashes":{"sha512":"4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a"},"length":1}},"version":2},"signatures":[{"keyid":"c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e","sig":"e50e81453ed9416a8877fa83a7e8dcc8d2ce73b38808986d420fc940ba6fa43c60b53d1a00caba2ae5a06ff8421472c9c4a09efee56cbe63a683b01f15f4e10a"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/cf876f96b3cf5a52a13628e981cb1118949b855c4d2e5a48149c1d588e134b389271065be52a1f861fd5e84ae025cb239b5110f5f25a3a983824d1e0a7633183.snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/cf876f96b3cf5a52a13628e981cb1118949b855c4d2e5a48149c1d588e134b389271065be52a1f861fd5e84ae025cb239b5110f5f25a3a983824d1e0a7633183.snapshot.json
deleted file mode 100644
index 6316dfe..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/cf876f96b3cf5a52a13628e981cb1118949b855c4d2e5a48149c1d588e134b389271065be52a1f861fd5e84ae025cb239b5110f5f25a3a983824d1e0a7633183.snapshot.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"snapshot","expires":"2100-01-01T00:00:00Z","meta":{"root.json":{"hashes":{"sha512":"58236babe5fae9454fb0f8d3150b10cbbe65fff7efc32850fafd2a203b52a00a21819b2bacec8b2aadac0a8a662da4259727544a0b01bbc76f534c4ce3048230"},"length":1918,"version":3},"targets.json":{"hashes":{"sha512":"71408991e0b5359d1a6f2ce0716b515f209821660a965f76d0c0df1cf6667aa7749518c45d4346de444f6a0a5b7864c1c11fae44010c7497d213392964847406"},"length":1009,"version":4}},"spec_version":"1.0","version":4},"signatures":[{"keyid":"0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7","sig":"fd9e7c74b682fd0010beb790632a56224dc6ae5030652f57a2bfe4b0ca0e4e7cc6ef30655bfdc76ce24bac6822a16a98db6689c6131dbb65f20d3ebea5aeb304"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/e92754ae7309051b870ced601ab9bb9817b457a7c48f010f6060d32aba60afaa88ac4d79a78bf79a2fe4602c74831fe1d402ddf109314793964486d4017fadee.snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/e92754ae7309051b870ced601ab9bb9817b457a7c48f010f6060d32aba60afaa88ac4d79a78bf79a2fe4602c74831fe1d402ddf109314793964486d4017fadee.snapshot.json
deleted file mode 100644
index ca3b1f0..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/e92754ae7309051b870ced601ab9bb9817b457a7c48f010f6060d32aba60afaa88ac4d79a78bf79a2fe4602c74831fe1d402ddf109314793964486d4017fadee.snapshot.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"snapshot","expires":"2100-01-01T00:00:00Z","meta":{"root.json":{"hashes":{"sha512":"3501a1e50ea2045abb29c5b4accc1fe95d10c574e2797d0391fb701f4f2d1cb8f343b301bfed5fff0817afeed491e058dfb5ba01e00c916fc81d2e22b7dbde84"},"length":1704,"version":1},"targets.json":{"hashes":{"sha512":"077b1bccf9b08d011e5ed54338408b90cd089ba6bf2f57b9f65eaedb5245ab58a2b2cadbb7c9fe21c4c5935dce4f325e07d732296e2d01af32fe1ae5fa4c4094"},"length":505,"version":1}},"spec_version":"1.0","version":1},"signatures":[{"keyid":"0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7","sig":"8a8d8f27a7b46a41a50c8fb5f9f9a355f1dd9538e29505f2b13c4ae2598084b4d87d1600485eeca23237e70a6ff5f6df1cee42542c929cd3129a00df0f6fc409"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/root.json
deleted file mode 100644
index f574e5f..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/root.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"root","consistent_snapshot":true,"expires":"2100-01-01T00:00:00Z","keys":{"0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"9d0a51a3b2c40f8bfb6a989787eebfd0b7af521f85ecfa74ce6a3036239b7518"},"scheme":"ed25519"},"99bc60ecc428001eb80f5f5b65f19856c7cecee35c3fc52e8aaaa3adc14baf5a":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"6ba18d6ace9ad74126872cde0a033c1c23eafaf0b02c1a0be02046304f66f0de"},"scheme":"ed25519"},"c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"03f9d7cb27b94b914fda338371cc525afefddf2075a179dc7927d17b79b453ef"},"scheme":"ed25519"},"cf0618db7ba21084b308c7a3a46219aff05e2ec39d48d55baac5e0c9ae5f9a47":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"814f81f40a031f2543a29860dc1c3666416dbc424ae7c8dd79d3af3c61577e61"},"scheme":"ed25519"}},"roles":{"root":{"keyids":["99bc60ecc428001eb80f5f5b65f19856c7cecee35c3fc52e8aaaa3adc14baf5a"],"threshold":1},"snapshot":{"keyids":["0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7"],"threshold":1},"targets":{"keyids":["c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e"],"threshold":1},"timestamp":{"keyids":["cf0618db7ba21084b308c7a3a46219aff05e2ec39d48d55baac5e0c9ae5f9a47"],"threshold":1}},"spec_version":"1.0","version":4},"signatures":[{"keyid":"99bc60ecc428001eb80f5f5b65f19856c7cecee35c3fc52e8aaaa3adc14baf5a","sig":"eda75221a94275f8dadcc582abd4e62fb83de04589e94f14bf2b4ec5398756d3d11bc32cf378049efe7cdd4e4c3818e7590775084bd09e4f428e5bda76bcc906"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/root.json
new file mode 120000
index 0000000..3d14058
--- /dev/null
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/root.json
@@ -0,0 +1 @@
+../../4/repository/root.json
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/snapshot.json
index daf3a99..4c3731e 100644
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/snapshot.json
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/snapshot.json
@@ -1 +1,30 @@
-{"signed":{"_type":"snapshot","expires":"2100-01-01T00:00:00Z","meta":{"root.json":{"hashes":{"sha512":"667fad6a776ed8622e2de7cdb559e9287f5bc0c03f4f75f5ae826645175897a1e86ddc0e76e529b2d6ab1798b1dd23b432d46fa39fdc73b7c0e4d3f633f4446a"},"length":1704,"version":4},"targets.json":{"hashes":{"sha512":"79ce596f54d798c736402c071d54c7fa77206094d2792db876538ecf18b9fbfc1a245cf3b4650164c841d2cbb2ef3d640dabe06840c7f64654c4107d229eb811"},"length":1345,"version":6}},"spec_version":"1.0","version":6},"signatures":[{"keyid":"0e967871caf192a56fcaa893f0ea0ae853e92da3118a3122c7663dc16a2036d7","sig":"821e5fca553231430687b187dd1bcd91c8eb8925675cb4a7cd8bb888a442df7d30f21cb83ce1c2326d59bf005025e80295f27594e7d7f83abd94797c5a204605"}]}
\ No newline at end of file
+{
+	"signatures": [
+		{
+			"keyid": "bed15bf57ba4deb4e09667099d45d119504420983d16fd0927ebfb0c25184e7f",
+			"sig": "a44ce7ca76f178c41acf92e6cb6cacc5c4cd17e1e99cc0d7ba8fb37d11b468b8475ad2801adeef7a246947595f845545be420ee912bfcb7091708530fab3eb01"
+		}
+	],
+	"signed": {
+		"_type": "snapshot",
+		"expires": "2100-01-01T00:00:00Z",
+		"meta": {
+			"root.json": {
+				"hashes": {
+					"sha512": "6393ac77695995ad751bf33c885882088a4f5c3b1c58ed75433007a5c79aef45aeea10881094686254198e12fc78be781f777947f23ed5bef0bdb157ef55e74d"
+				},
+				"length": 2118,
+				"version": 5
+			},
+			"targets.json": {
+				"hashes": {
+					"sha512": "c57a6fd231341bea3adb36d5a9c07167ef26bf9b037470bef1dadfeb2cdafa73b39b30965e39175fa9be5426065073bbf859f149c366ae07ea2a0f6fb6730b00"
+				},
+				"length": 1593,
+				"version": 6
+			}
+		},
+		"spec_version": "1.0",
+		"version": 6
+	}
+}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/targets.json
index cc1a35c..c528a43 100644
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/targets.json
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/targets.json
@@ -1 +1,52 @@
-{"signed":{"_type":"targets","expires":"2100-01-01T00:00:00Z","spec_version":"1.0","targets":{"0":{"hashes":{"sha512":"31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"},"length":1},"1":{"hashes":{"sha512":"4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a"},"length":1},"2":{"hashes":{"sha512":"40b244112641dd78dd4f93b6c9190dd46e0099194d5a44257b7efad6ef9ff4683da1eda0244448cb343aa688f5d3efd7314dafe580ac0bcbf115aeca9e8dc114"},"length":1},"3":{"hashes":{"sha512":"3bafbf08882a2d10133093a1b8433f50563b93c14acd05b79028eb1d12799027241450980651994501423a66c276ae26c43b739bc65c4e16b10c3af6c202aebb"},"length":1},"4":{"hashes":{"sha512":"a321d8b405e3ef2604959847b36d171eebebc4a8941dc70a4784935a4fca5d5813de84dfa049f06549aa61b20848c1633ce81b675286ea8fb53db240d831c568"},"length":1},"5":{"hashes":{"sha512":"06df05371981a237d0ed11472fae7c94c9ac0eff1d05413516710d17b10a4fb6f4517bda4a695f02d0a73dd4db543b4653df28f5d09dab86f92ffb9b86d01e25"},"length":1}},"version":6},"signatures":[{"keyid":"c0569ca50993fef952e3c7ee0fc1220f04c312bd60a098638027f98f7dd57d0e","sig":"eedb5f872ec24b26c039b438d5f354f8e465028919e034d306dc874abcc5a885a553e8245994ec7e8c5c9848ae10c0786e94dc918865cc9ebd3caf3a2c9bf309"}]}
\ No newline at end of file
+{
+	"signatures": [
+		{
+			"keyid": "a3eba2113e37b749b908101bdb7b856a44f2853641830c0f939730aca3e30360",
+			"sig": "1e80ae84c4badf194e2fd7225c120999d8f628598fa0e994a2ff7cac705ec2f14601a64ba5370fc668f3fb114975dd81c554400d757f41762c4e12eb4db35d02"
+		}
+	],
+	"signed": {
+		"_type": "targets",
+		"expires": "2100-01-01T00:00:00Z",
+		"spec_version": "1.0",
+		"targets": {
+			"0": {
+				"hashes": {
+					"sha512": "31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"
+				},
+				"length": 1
+			},
+			"1": {
+				"hashes": {
+					"sha512": "4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a"
+				},
+				"length": 1
+			},
+			"2": {
+				"hashes": {
+					"sha512": "40b244112641dd78dd4f93b6c9190dd46e0099194d5a44257b7efad6ef9ff4683da1eda0244448cb343aa688f5d3efd7314dafe580ac0bcbf115aeca9e8dc114"
+				},
+				"length": 1
+			},
+			"3": {
+				"hashes": {
+					"sha512": "3bafbf08882a2d10133093a1b8433f50563b93c14acd05b79028eb1d12799027241450980651994501423a66c276ae26c43b739bc65c4e16b10c3af6c202aebb"
+				},
+				"length": 1
+			},
+			"4": {
+				"hashes": {
+					"sha512": "a321d8b405e3ef2604959847b36d171eebebc4a8941dc70a4784935a4fca5d5813de84dfa049f06549aa61b20848c1633ce81b675286ea8fb53db240d831c568"
+				},
+				"length": 1
+			},
+			"5": {
+				"hashes": {
+					"sha512": "06df05371981a237d0ed11472fae7c94c9ac0eff1d05413516710d17b10a4fb6f4517bda4a695f02d0a73dd4db543b4653df28f5d09dab86f92ffb9b86d01e25"
+				},
+				"length": 1
+			}
+		},
+		"version": 6
+	}
+}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/targets/0 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/targets/0
new file mode 120000
index 0000000..94cc287
--- /dev/null
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/targets/0
@@ -0,0 +1 @@
+../../../4/repository/targets/0
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/targets/0.0 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/targets/0.0
deleted file mode 100644
index c227083..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/targets/0.0
+++ /dev/null
@@ -1 +0,0 @@
-0
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/targets/0.1 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/targets/0.1
deleted file mode 100644
index 56a6051..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/targets/0.1
+++ /dev/null
@@ -1 +0,0 @@
-1
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/targets/0.2 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/targets/0.2
deleted file mode 100644
index d8263ee..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/targets/0.2
+++ /dev/null
@@ -1 +0,0 @@
-2
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/targets/0.3 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/targets/0.3
deleted file mode 100644
index e440e5c..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/targets/0.3
+++ /dev/null
@@ -1 +0,0 @@
-3
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/targets/0.4 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/targets/0.4
deleted file mode 100644
index bf0d87a..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/targets/0.4
+++ /dev/null
@@ -1 +0,0 @@
-4
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/targets/06df05371981a237d0ed11472fae7c94c9ac0eff1d05413516710d17b10a4fb6f4517bda4a695f02d0a73dd4db543b4653df28f5d09dab86f92ffb9b86d01e25.5 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/targets/06df05371981a237d0ed11472fae7c94c9ac0eff1d05413516710d17b10a4fb6f4517bda4a695f02d0a73dd4db543b4653df28f5d09dab86f92ffb9b86d01e25.5
deleted file mode 100644
index 7813681..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/targets/06df05371981a237d0ed11472fae7c94c9ac0eff1d05413516710d17b10a4fb6f4517bda4a695f02d0a73dd4db543b4653df28f5d09dab86f92ffb9b86d01e25.5
+++ /dev/null
@@ -1 +0,0 @@
-5
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/targets/1 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/targets/1
new file mode 120000
index 0000000..51c7c9a
--- /dev/null
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/targets/1
@@ -0,0 +1 @@
+../../../4/repository/targets/1
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/targets/2 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/targets/2
new file mode 120000
index 0000000..46e3032
--- /dev/null
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/targets/2
@@ -0,0 +1 @@
+../../../4/repository/targets/2
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/targets/3 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/targets/3
new file mode 120000
index 0000000..ca268e9
--- /dev/null
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/targets/3
@@ -0,0 +1 @@
+../../../4/repository/targets/3
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/targets/31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99.0 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/targets/31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99.0
deleted file mode 100644
index c227083..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/targets/31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99.0
+++ /dev/null
@@ -1 +0,0 @@
-0
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/targets/3bafbf08882a2d10133093a1b8433f50563b93c14acd05b79028eb1d12799027241450980651994501423a66c276ae26c43b739bc65c4e16b10c3af6c202aebb.3 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/targets/3bafbf08882a2d10133093a1b8433f50563b93c14acd05b79028eb1d12799027241450980651994501423a66c276ae26c43b739bc65c4e16b10c3af6c202aebb.3
deleted file mode 100644
index e440e5c..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/targets/3bafbf08882a2d10133093a1b8433f50563b93c14acd05b79028eb1d12799027241450980651994501423a66c276ae26c43b739bc65c4e16b10c3af6c202aebb.3
+++ /dev/null
@@ -1 +0,0 @@
-3
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/targets/4 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/targets/4
new file mode 120000
index 0000000..19339ad
--- /dev/null
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/targets/4
@@ -0,0 +1 @@
+../../../4/repository/targets/4
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/targets/40b244112641dd78dd4f93b6c9190dd46e0099194d5a44257b7efad6ef9ff4683da1eda0244448cb343aa688f5d3efd7314dafe580ac0bcbf115aeca9e8dc114.2 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/targets/40b244112641dd78dd4f93b6c9190dd46e0099194d5a44257b7efad6ef9ff4683da1eda0244448cb343aa688f5d3efd7314dafe580ac0bcbf115aeca9e8dc114.2
deleted file mode 100644
index d8263ee..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/targets/40b244112641dd78dd4f93b6c9190dd46e0099194d5a44257b7efad6ef9ff4683da1eda0244448cb343aa688f5d3efd7314dafe580ac0bcbf115aeca9e8dc114.2
+++ /dev/null
@@ -1 +0,0 @@
-2
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/targets/4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a.1 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/targets/4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a.1
deleted file mode 100644
index 56a6051..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/targets/4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a.1
+++ /dev/null
@@ -1 +0,0 @@
-1
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/targets/0.5 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/targets/5
similarity index 100%
rename from client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/targets/0.5
rename to client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/targets/5
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/targets/a321d8b405e3ef2604959847b36d171eebebc4a8941dc70a4784935a4fca5d5813de84dfa049f06549aa61b20848c1633ce81b675286ea8fb53db240d831c568.4 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/targets/a321d8b405e3ef2604959847b36d171eebebc4a8941dc70a4784935a4fca5d5813de84dfa049f06549aa61b20848c1633ce81b675286ea8fb53db240d831c568.4
deleted file mode 100644
index bf0d87a..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/targets/a321d8b405e3ef2604959847b36d171eebebc4a8941dc70a4784935a4fca5d5813de84dfa049f06549aa61b20848c1633ce81b675286ea8fb53db240d831c568.4
+++ /dev/null
@@ -1 +0,0 @@
-4
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/timestamp.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/timestamp.json
index 3136aec..4a6a11f 100644
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/timestamp.json
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-false/5/repository/timestamp.json
@@ -1 +1,23 @@
-{"signed":{"_type":"timestamp","expires":"2100-01-01T00:00:00Z","meta":{"snapshot.json":{"hashes":{"sha512":"961ee56b4aeb3a06a00007c3352f650d70bffc26e0809ac446f155f1594c47c4342664ef0f89bd06f318594cf0dca8a413f301dfd0844232854fedaa6273ba59"},"length":720,"version":6}},"spec_version":"1.0","version":6},"signatures":[{"keyid":"cf0618db7ba21084b308c7a3a46219aff05e2ec39d48d55baac5e0c9ae5f9a47","sig":"ac9998c2c131caad8e2479db05513d4bf17d4a7bb0dc5203638fa0077b51af0a8589c64d522af7f71c2a0ebfaafd9c31e01e8ef51968012a345f82d23ed78700"}]}
\ No newline at end of file
+{
+	"signatures": [
+		{
+			"keyid": "79b5760e4c96b6becc12bec4260c9c1d533b9b70628ade2b229ef02b772b10b0",
+			"sig": "5de52850930dc5e8e6c5c1d85d84e8d968f170904c958de30473f81f8293e7b48e27e9d2afa1592eb1d527a0937553ee5e2540f0255837d2f93c5af12d510f08"
+		}
+	],
+	"signed": {
+		"_type": "timestamp",
+		"expires": "2100-01-01T00:00:00Z",
+		"meta": {
+			"snapshot.json": {
+				"hashes": {
+					"sha512": "c0fb132da6b90f31ba8c1122388c13d37e4a553ff5b5fa0a65dcf19c53af41965a62b7f88526b4363b288005bfc286c4480fa6d8d63ba54a0ec491f14329b549"
+				},
+				"length": 848,
+				"version": 6
+			}
+		},
+		"spec_version": "1.0",
+		"version": 6
+	}
+}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/0/keys/root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/0/keys/root.json
deleted file mode 100644
index dda9466..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/0/keys/root.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
-	"encrypted": false,
-	"data": [
-		{
-			"keytype": "ed25519",
-			"scheme": "ed25519",
-			"keyid_hash_algorithms": [
-				"sha512"
-			],
-			"keyval": {
-				"public": "e382c952a736d52be2ab82e486d3f3b27e60e221b636087f3fc3cb71beda0ade",
-				"private": "17bc6c778809d7d05b16c857239511e918dc1c96e221d3433e7c8f8e17f2b197e382c952a736d52be2ab82e486d3f3b27e60e221b636087f3fc3cb71beda0ade"
-			}
-		}
-	]
-}
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/0/keys/snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/0/keys/snapshot.json
deleted file mode 100644
index 45bea1e..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/0/keys/snapshot.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
-	"encrypted": false,
-	"data": [
-		{
-			"keytype": "ed25519",
-			"scheme": "ed25519",
-			"keyid_hash_algorithms": [
-				"sha512"
-			],
-			"keyval": {
-				"public": "88c224c1d6175f3dbb6870edd3e138ccf8f714d6cb6f4cccdaf74f989c207cef",
-				"private": "56943269321253b65cbc2fb7a476ce165283fcb7fec69d977f131c96ec410ebe88c224c1d6175f3dbb6870edd3e138ccf8f714d6cb6f4cccdaf74f989c207cef"
-			}
-		}
-	]
-}
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/0/keys/targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/0/keys/targets.json
deleted file mode 100644
index c24ecf5..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/0/keys/targets.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
-	"encrypted": false,
-	"data": [
-		{
-			"keytype": "ed25519",
-			"scheme": "ed25519",
-			"keyid_hash_algorithms": [
-				"sha512"
-			],
-			"keyval": {
-				"public": "2cb97b1af650c5960ab9d5fa3e4192b8e8a3432df927f2ba30243930c786bb3c",
-				"private": "9f530290cb71059f1fee0147e88076caa53dceddfcde4b826d61dd2a8945ad712cb97b1af650c5960ab9d5fa3e4192b8e8a3432df927f2ba30243930c786bb3c"
-			}
-		}
-	]
-}
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/0/keys/timestamp.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/0/keys/timestamp.json
deleted file mode 100644
index bd6a95f..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/0/keys/timestamp.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
-	"encrypted": false,
-	"data": [
-		{
-			"keytype": "ed25519",
-			"scheme": "ed25519",
-			"keyid_hash_algorithms": [
-				"sha512"
-			],
-			"keyval": {
-				"public": "e1cb1f371c8f7a31dd0b39309c5d02af11ffaa1a7c71778d2b885ce77757a5e3",
-				"private": "e97432895522f62667c69f996f2e32c1e85e4801dbc49e56dc358f0df434b453e1cb1f371c8f7a31dd0b39309c5d02af11ffaa1a7c71778d2b885ce77757a5e3"
-			}
-		}
-	]
-}
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/0/repository/1.root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/0/repository/1.root.json
index d6e3979..53cd546 100644
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/0/repository/1.root.json
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/0/repository/1.root.json
@@ -1 +1,83 @@
-{"signed":{"_type":"root","consistent_snapshot":true,"expires":"2100-01-01T00:00:00Z","keys":{"3901e5474c946f204ec6a239ad261a8ccab4949fc6178cef1d48eb01a040521d":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"e1cb1f371c8f7a31dd0b39309c5d02af11ffaa1a7c71778d2b885ce77757a5e3"},"scheme":"ed25519"},"4e8daa3c2904f32d334729b603ded23b5cf950c20564a2a48b77c24dcde407c3":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"e382c952a736d52be2ab82e486d3f3b27e60e221b636087f3fc3cb71beda0ade"},"scheme":"ed25519"},"7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"88c224c1d6175f3dbb6870edd3e138ccf8f714d6cb6f4cccdaf74f989c207cef"},"scheme":"ed25519"},"eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"2cb97b1af650c5960ab9d5fa3e4192b8e8a3432df927f2ba30243930c786bb3c"},"scheme":"ed25519"}},"roles":{"root":{"keyids":["4e8daa3c2904f32d334729b603ded23b5cf950c20564a2a48b77c24dcde407c3"],"threshold":1},"snapshot":{"keyids":["7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321"],"threshold":1},"targets":{"keyids":["eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f"],"threshold":1},"timestamp":{"keyids":["3901e5474c946f204ec6a239ad261a8ccab4949fc6178cef1d48eb01a040521d"],"threshold":1}},"spec_version":"1.0","version":1},"signatures":[{"keyid":"4e8daa3c2904f32d334729b603ded23b5cf950c20564a2a48b77c24dcde407c3","sig":"ba1c7544af8cdee5cb70eee5bf7871d20b34ef1c480854513e9590746ad2686db9bec7fc1259a0f5206e113dc4aab18fc251d173fa0b3cbfdb95ee92d5c5d50b"}]}
\ No newline at end of file
+{
+	"signatures": [
+		{
+			"keyid": "160f5ae5e7017bc783bbbe26c5419bbeeeb87f507b140ef474da0517d56549f7",
+			"sig": "971ed150895f0dc14d5a2cfb7d805131ba7d0152f315f1e8498f5a0119fa0254c4f4dd4cdbb6401e8d2e1649df1dd91ed56cf5623986a81135b5e94f40dbda08"
+		}
+	],
+	"signed": {
+		"_type": "root",
+		"consistent_snapshot": true,
+		"expires": "2100-01-01T00:00:00Z",
+		"keys": {
+			"160f5ae5e7017bc783bbbe26c5419bbeeeb87f507b140ef474da0517d56549f7": {
+				"keyid_hash_algorithms": [
+					"sha256"
+				],
+				"keytype": "ed25519",
+				"keyval": {
+					"public": "bca152214dbfd3e7a1b7a7b3e2cc179fb00520fd7212c8a60ba99f14dfc0e1ca"
+				},
+				"scheme": "ed25519"
+			},
+			"b1eb1d74c0e65524c85f96f9badf09a4d2ed1259fb427fc689fc2279ebb4d867": {
+				"keyid_hash_algorithms": [
+					"sha256"
+				],
+				"keytype": "ed25519",
+				"keyval": {
+					"public": "62f71f99c788f16bcdc8bb252455e3a690350e4ddea5a6aab1f9a3aaabcf369a"
+				},
+				"scheme": "ed25519"
+			},
+			"b59406a55fbe2492022f2951dacd01fc7b400b7b41ec4028b8356161a5a71a33": {
+				"keyid_hash_algorithms": [
+					"sha256"
+				],
+				"keytype": "ed25519",
+				"keyval": {
+					"public": "8656ad20568cd3534c405e4d9a84b0c6e6163f7f66434df77416502835b9b160"
+				},
+				"scheme": "ed25519"
+			},
+			"d792ff8cf3c5d9a8fe0fdfa585b25028fa9f49aa29c62a658140d4b98cc2c917": {
+				"keyid_hash_algorithms": [
+					"sha256"
+				],
+				"keytype": "ed25519",
+				"keyval": {
+					"public": "d482fa4805a50870aa1356ace6b764f7ab47ed4dc38f49b1a189afa25f179e94"
+				},
+				"scheme": "ed25519"
+			}
+		},
+		"roles": {
+			"root": {
+				"keyids": [
+					"160f5ae5e7017bc783bbbe26c5419bbeeeb87f507b140ef474da0517d56549f7"
+				],
+				"threshold": 1
+			},
+			"snapshot": {
+				"keyids": [
+					"d792ff8cf3c5d9a8fe0fdfa585b25028fa9f49aa29c62a658140d4b98cc2c917"
+				],
+				"threshold": 1
+			},
+			"targets": {
+				"keyids": [
+					"b1eb1d74c0e65524c85f96f9badf09a4d2ed1259fb427fc689fc2279ebb4d867"
+				],
+				"threshold": 1
+			},
+			"timestamp": {
+				"keyids": [
+					"b59406a55fbe2492022f2951dacd01fc7b400b7b41ec4028b8356161a5a71a33"
+				],
+				"threshold": 1
+			}
+		},
+		"spec_version": "1.0",
+		"version": 1
+	}
+}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/0/repository/1.snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/0/repository/1.snapshot.json
index 6785251..38848bd 100644
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/0/repository/1.snapshot.json
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/0/repository/1.snapshot.json
@@ -1 +1,30 @@
-{"signed":{"_type":"snapshot","expires":"2100-01-01T00:00:00Z","meta":{"root.json":{"hashes":{"sha512":"c30accb049704fa7b471e4c5869648158f3395b368898c8fa91c56c9e8838d9ffbb810e01cf648a04408a3fffa32125d4f0a16b3326e8c7bc86e6f1fbd5136a6"},"length":1704,"version":1},"targets.json":{"hashes":{"sha512":"4a09a98bfafccc0de35d0d4f683c817ee1d410b1432200cbfa8f6ec844d1ff00f183d27b4e4588f7239604a079ff0f4711fba15cceb02e69e1d928024462e112"},"length":505,"version":1}},"spec_version":"1.0","version":1},"signatures":[{"keyid":"7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321","sig":"00f4cadd08a9c414b112594d5efebecff11dac46b0e68907da7837eebd46e4f929b068dc53785f54adfba503c55a298678f4ebb7ff10a76c05ada43019af7206"}]}
\ No newline at end of file
+{
+	"signatures": [
+		{
+			"keyid": "d792ff8cf3c5d9a8fe0fdfa585b25028fa9f49aa29c62a658140d4b98cc2c917",
+			"sig": "baefc778a9aaa93cfa86bd9d0f5b4d05c58c48e1abdff6d44f1c0b3ffac7c18989c357f78222f4decc52f0372251679ca074b3969e11991a424c6c2f3bda9709"
+		}
+	],
+	"signed": {
+		"_type": "snapshot",
+		"expires": "2100-01-01T00:00:00Z",
+		"meta": {
+			"root.json": {
+				"hashes": {
+					"sha512": "c125be40b37191d913a727873ff99224f2641d665534211641c7bf8bc7813e3b9b90a80380d118c5815188f799ba8e43d3ccc7dcb2ea42563e7250ac7791c1db"
+				},
+				"length": 2117,
+				"version": 1
+			},
+			"targets.json": {
+				"hashes": {
+					"sha512": "257ae8c4653e9ecd1580d0f95ece3cbd03d67ace62e670c0493cde2afde96670a1620fcdf4a2e81ecbf8a67c7b0af9e03e6f9c5c8195d4b1940f7e0e61cc04c8"
+				},
+				"length": 588,
+				"version": 1
+			}
+		},
+		"spec_version": "1.0",
+		"version": 1
+	}
+}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/0/repository/1.targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/0/repository/1.targets.json
index 633e87f..7e9ac2d 100644
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/0/repository/1.targets.json
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/0/repository/1.targets.json
@@ -1 +1,22 @@
-{"signed":{"_type":"targets","expires":"2100-01-01T00:00:00Z","spec_version":"1.0","targets":{"0":{"hashes":{"sha512":"31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"},"length":1}},"version":1},"signatures":[{"keyid":"eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f","sig":"09f3b7faeb4098137fd7fb365f1396307a7d9240d0df527f7fb4a2861c2bc869611636897146e0d2ba2afd9df348f4b99fb19dbe1ff16ce652d9617b09533806"}]}
\ No newline at end of file
+{
+	"signatures": [
+		{
+			"keyid": "b1eb1d74c0e65524c85f96f9badf09a4d2ed1259fb427fc689fc2279ebb4d867",
+			"sig": "4d5c3a5da43f3792d077c1128fa28585982ff2957fae59be02a831fc920d0b91cbeaa99fd6c15066ec4da8bf12f993440a90d1624fd7b0a68070e5d60ed2500f"
+		}
+	],
+	"signed": {
+		"_type": "targets",
+		"expires": "2100-01-01T00:00:00Z",
+		"spec_version": "1.0",
+		"targets": {
+			"0": {
+				"hashes": {
+					"sha512": "31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"
+				},
+				"length": 1
+			}
+		},
+		"version": 1
+	}
+}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/0/repository/27b3a3586c86fdd05e941098c10f71419f531d94bac36a272b5b978877652e7994ec657333d2e3894a2c1f53263eec729c8595f492f67b3eaafcc47b75e746c8.snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/0/repository/27b3a3586c86fdd05e941098c10f71419f531d94bac36a272b5b978877652e7994ec657333d2e3894a2c1f53263eec729c8595f492f67b3eaafcc47b75e746c8.snapshot.json
deleted file mode 100644
index 6785251..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/0/repository/27b3a3586c86fdd05e941098c10f71419f531d94bac36a272b5b978877652e7994ec657333d2e3894a2c1f53263eec729c8595f492f67b3eaafcc47b75e746c8.snapshot.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"snapshot","expires":"2100-01-01T00:00:00Z","meta":{"root.json":{"hashes":{"sha512":"c30accb049704fa7b471e4c5869648158f3395b368898c8fa91c56c9e8838d9ffbb810e01cf648a04408a3fffa32125d4f0a16b3326e8c7bc86e6f1fbd5136a6"},"length":1704,"version":1},"targets.json":{"hashes":{"sha512":"4a09a98bfafccc0de35d0d4f683c817ee1d410b1432200cbfa8f6ec844d1ff00f183d27b4e4588f7239604a079ff0f4711fba15cceb02e69e1d928024462e112"},"length":505,"version":1}},"spec_version":"1.0","version":1},"signatures":[{"keyid":"7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321","sig":"00f4cadd08a9c414b112594d5efebecff11dac46b0e68907da7837eebd46e4f929b068dc53785f54adfba503c55a298678f4ebb7ff10a76c05ada43019af7206"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/0/repository/4a09a98bfafccc0de35d0d4f683c817ee1d410b1432200cbfa8f6ec844d1ff00f183d27b4e4588f7239604a079ff0f4711fba15cceb02e69e1d928024462e112.targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/0/repository/4a09a98bfafccc0de35d0d4f683c817ee1d410b1432200cbfa8f6ec844d1ff00f183d27b4e4588f7239604a079ff0f4711fba15cceb02e69e1d928024462e112.targets.json
deleted file mode 100644
index 633e87f..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/0/repository/4a09a98bfafccc0de35d0d4f683c817ee1d410b1432200cbfa8f6ec844d1ff00f183d27b4e4588f7239604a079ff0f4711fba15cceb02e69e1d928024462e112.targets.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"targets","expires":"2100-01-01T00:00:00Z","spec_version":"1.0","targets":{"0":{"hashes":{"sha512":"31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"},"length":1}},"version":1},"signatures":[{"keyid":"eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f","sig":"09f3b7faeb4098137fd7fb365f1396307a7d9240d0df527f7fb4a2861c2bc869611636897146e0d2ba2afd9df348f4b99fb19dbe1ff16ce652d9617b09533806"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/0/repository/c30accb049704fa7b471e4c5869648158f3395b368898c8fa91c56c9e8838d9ffbb810e01cf648a04408a3fffa32125d4f0a16b3326e8c7bc86e6f1fbd5136a6.root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/0/repository/c30accb049704fa7b471e4c5869648158f3395b368898c8fa91c56c9e8838d9ffbb810e01cf648a04408a3fffa32125d4f0a16b3326e8c7bc86e6f1fbd5136a6.root.json
deleted file mode 100644
index d6e3979..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/0/repository/c30accb049704fa7b471e4c5869648158f3395b368898c8fa91c56c9e8838d9ffbb810e01cf648a04408a3fffa32125d4f0a16b3326e8c7bc86e6f1fbd5136a6.root.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"root","consistent_snapshot":true,"expires":"2100-01-01T00:00:00Z","keys":{"3901e5474c946f204ec6a239ad261a8ccab4949fc6178cef1d48eb01a040521d":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"e1cb1f371c8f7a31dd0b39309c5d02af11ffaa1a7c71778d2b885ce77757a5e3"},"scheme":"ed25519"},"4e8daa3c2904f32d334729b603ded23b5cf950c20564a2a48b77c24dcde407c3":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"e382c952a736d52be2ab82e486d3f3b27e60e221b636087f3fc3cb71beda0ade"},"scheme":"ed25519"},"7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"88c224c1d6175f3dbb6870edd3e138ccf8f714d6cb6f4cccdaf74f989c207cef"},"scheme":"ed25519"},"eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"2cb97b1af650c5960ab9d5fa3e4192b8e8a3432df927f2ba30243930c786bb3c"},"scheme":"ed25519"}},"roles":{"root":{"keyids":["4e8daa3c2904f32d334729b603ded23b5cf950c20564a2a48b77c24dcde407c3"],"threshold":1},"snapshot":{"keyids":["7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321"],"threshold":1},"targets":{"keyids":["eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f"],"threshold":1},"timestamp":{"keyids":["3901e5474c946f204ec6a239ad261a8ccab4949fc6178cef1d48eb01a040521d"],"threshold":1}},"spec_version":"1.0","version":1},"signatures":[{"keyid":"4e8daa3c2904f32d334729b603ded23b5cf950c20564a2a48b77c24dcde407c3","sig":"ba1c7544af8cdee5cb70eee5bf7871d20b34ef1c480854513e9590746ad2686db9bec7fc1259a0f5206e113dc4aab18fc251d173fa0b3cbfdb95ee92d5c5d50b"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/0/repository/root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/0/repository/root.json
index d6e3979..53cd546 100644
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/0/repository/root.json
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/0/repository/root.json
@@ -1 +1,83 @@
-{"signed":{"_type":"root","consistent_snapshot":true,"expires":"2100-01-01T00:00:00Z","keys":{"3901e5474c946f204ec6a239ad261a8ccab4949fc6178cef1d48eb01a040521d":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"e1cb1f371c8f7a31dd0b39309c5d02af11ffaa1a7c71778d2b885ce77757a5e3"},"scheme":"ed25519"},"4e8daa3c2904f32d334729b603ded23b5cf950c20564a2a48b77c24dcde407c3":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"e382c952a736d52be2ab82e486d3f3b27e60e221b636087f3fc3cb71beda0ade"},"scheme":"ed25519"},"7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"88c224c1d6175f3dbb6870edd3e138ccf8f714d6cb6f4cccdaf74f989c207cef"},"scheme":"ed25519"},"eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"2cb97b1af650c5960ab9d5fa3e4192b8e8a3432df927f2ba30243930c786bb3c"},"scheme":"ed25519"}},"roles":{"root":{"keyids":["4e8daa3c2904f32d334729b603ded23b5cf950c20564a2a48b77c24dcde407c3"],"threshold":1},"snapshot":{"keyids":["7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321"],"threshold":1},"targets":{"keyids":["eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f"],"threshold":1},"timestamp":{"keyids":["3901e5474c946f204ec6a239ad261a8ccab4949fc6178cef1d48eb01a040521d"],"threshold":1}},"spec_version":"1.0","version":1},"signatures":[{"keyid":"4e8daa3c2904f32d334729b603ded23b5cf950c20564a2a48b77c24dcde407c3","sig":"ba1c7544af8cdee5cb70eee5bf7871d20b34ef1c480854513e9590746ad2686db9bec7fc1259a0f5206e113dc4aab18fc251d173fa0b3cbfdb95ee92d5c5d50b"}]}
\ No newline at end of file
+{
+	"signatures": [
+		{
+			"keyid": "160f5ae5e7017bc783bbbe26c5419bbeeeb87f507b140ef474da0517d56549f7",
+			"sig": "971ed150895f0dc14d5a2cfb7d805131ba7d0152f315f1e8498f5a0119fa0254c4f4dd4cdbb6401e8d2e1649df1dd91ed56cf5623986a81135b5e94f40dbda08"
+		}
+	],
+	"signed": {
+		"_type": "root",
+		"consistent_snapshot": true,
+		"expires": "2100-01-01T00:00:00Z",
+		"keys": {
+			"160f5ae5e7017bc783bbbe26c5419bbeeeb87f507b140ef474da0517d56549f7": {
+				"keyid_hash_algorithms": [
+					"sha256"
+				],
+				"keytype": "ed25519",
+				"keyval": {
+					"public": "bca152214dbfd3e7a1b7a7b3e2cc179fb00520fd7212c8a60ba99f14dfc0e1ca"
+				},
+				"scheme": "ed25519"
+			},
+			"b1eb1d74c0e65524c85f96f9badf09a4d2ed1259fb427fc689fc2279ebb4d867": {
+				"keyid_hash_algorithms": [
+					"sha256"
+				],
+				"keytype": "ed25519",
+				"keyval": {
+					"public": "62f71f99c788f16bcdc8bb252455e3a690350e4ddea5a6aab1f9a3aaabcf369a"
+				},
+				"scheme": "ed25519"
+			},
+			"b59406a55fbe2492022f2951dacd01fc7b400b7b41ec4028b8356161a5a71a33": {
+				"keyid_hash_algorithms": [
+					"sha256"
+				],
+				"keytype": "ed25519",
+				"keyval": {
+					"public": "8656ad20568cd3534c405e4d9a84b0c6e6163f7f66434df77416502835b9b160"
+				},
+				"scheme": "ed25519"
+			},
+			"d792ff8cf3c5d9a8fe0fdfa585b25028fa9f49aa29c62a658140d4b98cc2c917": {
+				"keyid_hash_algorithms": [
+					"sha256"
+				],
+				"keytype": "ed25519",
+				"keyval": {
+					"public": "d482fa4805a50870aa1356ace6b764f7ab47ed4dc38f49b1a189afa25f179e94"
+				},
+				"scheme": "ed25519"
+			}
+		},
+		"roles": {
+			"root": {
+				"keyids": [
+					"160f5ae5e7017bc783bbbe26c5419bbeeeb87f507b140ef474da0517d56549f7"
+				],
+				"threshold": 1
+			},
+			"snapshot": {
+				"keyids": [
+					"d792ff8cf3c5d9a8fe0fdfa585b25028fa9f49aa29c62a658140d4b98cc2c917"
+				],
+				"threshold": 1
+			},
+			"targets": {
+				"keyids": [
+					"b1eb1d74c0e65524c85f96f9badf09a4d2ed1259fb427fc689fc2279ebb4d867"
+				],
+				"threshold": 1
+			},
+			"timestamp": {
+				"keyids": [
+					"b59406a55fbe2492022f2951dacd01fc7b400b7b41ec4028b8356161a5a71a33"
+				],
+				"threshold": 1
+			}
+		},
+		"spec_version": "1.0",
+		"version": 1
+	}
+}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/0/repository/snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/0/repository/snapshot.json
index 6785251..38848bd 100644
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/0/repository/snapshot.json
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/0/repository/snapshot.json
@@ -1 +1,30 @@
-{"signed":{"_type":"snapshot","expires":"2100-01-01T00:00:00Z","meta":{"root.json":{"hashes":{"sha512":"c30accb049704fa7b471e4c5869648158f3395b368898c8fa91c56c9e8838d9ffbb810e01cf648a04408a3fffa32125d4f0a16b3326e8c7bc86e6f1fbd5136a6"},"length":1704,"version":1},"targets.json":{"hashes":{"sha512":"4a09a98bfafccc0de35d0d4f683c817ee1d410b1432200cbfa8f6ec844d1ff00f183d27b4e4588f7239604a079ff0f4711fba15cceb02e69e1d928024462e112"},"length":505,"version":1}},"spec_version":"1.0","version":1},"signatures":[{"keyid":"7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321","sig":"00f4cadd08a9c414b112594d5efebecff11dac46b0e68907da7837eebd46e4f929b068dc53785f54adfba503c55a298678f4ebb7ff10a76c05ada43019af7206"}]}
\ No newline at end of file
+{
+	"signatures": [
+		{
+			"keyid": "d792ff8cf3c5d9a8fe0fdfa585b25028fa9f49aa29c62a658140d4b98cc2c917",
+			"sig": "baefc778a9aaa93cfa86bd9d0f5b4d05c58c48e1abdff6d44f1c0b3ffac7c18989c357f78222f4decc52f0372251679ca074b3969e11991a424c6c2f3bda9709"
+		}
+	],
+	"signed": {
+		"_type": "snapshot",
+		"expires": "2100-01-01T00:00:00Z",
+		"meta": {
+			"root.json": {
+				"hashes": {
+					"sha512": "c125be40b37191d913a727873ff99224f2641d665534211641c7bf8bc7813e3b9b90a80380d118c5815188f799ba8e43d3ccc7dcb2ea42563e7250ac7791c1db"
+				},
+				"length": 2117,
+				"version": 1
+			},
+			"targets.json": {
+				"hashes": {
+					"sha512": "257ae8c4653e9ecd1580d0f95ece3cbd03d67ace62e670c0493cde2afde96670a1620fcdf4a2e81ecbf8a67c7b0af9e03e6f9c5c8195d4b1940f7e0e61cc04c8"
+				},
+				"length": 588,
+				"version": 1
+			}
+		},
+		"spec_version": "1.0",
+		"version": 1
+	}
+}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/0/repository/targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/0/repository/targets.json
index 633e87f..7e9ac2d 100644
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/0/repository/targets.json
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/0/repository/targets.json
@@ -1 +1,22 @@
-{"signed":{"_type":"targets","expires":"2100-01-01T00:00:00Z","spec_version":"1.0","targets":{"0":{"hashes":{"sha512":"31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"},"length":1}},"version":1},"signatures":[{"keyid":"eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f","sig":"09f3b7faeb4098137fd7fb365f1396307a7d9240d0df527f7fb4a2861c2bc869611636897146e0d2ba2afd9df348f4b99fb19dbe1ff16ce652d9617b09533806"}]}
\ No newline at end of file
+{
+	"signatures": [
+		{
+			"keyid": "b1eb1d74c0e65524c85f96f9badf09a4d2ed1259fb427fc689fc2279ebb4d867",
+			"sig": "4d5c3a5da43f3792d077c1128fa28585982ff2957fae59be02a831fc920d0b91cbeaa99fd6c15066ec4da8bf12f993440a90d1624fd7b0a68070e5d60ed2500f"
+		}
+	],
+	"signed": {
+		"_type": "targets",
+		"expires": "2100-01-01T00:00:00Z",
+		"spec_version": "1.0",
+		"targets": {
+			"0": {
+				"hashes": {
+					"sha512": "31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"
+				},
+				"length": 1
+			}
+		},
+		"version": 1
+	}
+}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/0/repository/targets/0.0 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/0/repository/targets/0.0
deleted file mode 100644
index c227083..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/0/repository/targets/0.0
+++ /dev/null
@@ -1 +0,0 @@
-0
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/0/repository/timestamp.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/0/repository/timestamp.json
index b9ec2cc..93fb20b 100644
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/0/repository/timestamp.json
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/0/repository/timestamp.json
@@ -1 +1,23 @@
-{"signed":{"_type":"timestamp","expires":"2100-01-01T00:00:00Z","meta":{"snapshot.json":{"hashes":{"sha512":"27b3a3586c86fdd05e941098c10f71419f531d94bac36a272b5b978877652e7994ec657333d2e3894a2c1f53263eec729c8595f492f67b3eaafcc47b75e746c8"},"length":719,"version":1}},"spec_version":"1.0","version":1},"signatures":[{"keyid":"3901e5474c946f204ec6a239ad261a8ccab4949fc6178cef1d48eb01a040521d","sig":"ac635fa9b953ee8ecabb2c8857312719ecdef6999f7ce7ae83179cbcf47a1602451ff1983c82a4864a7e163d0f553302cdd89b5511dd87850c763d03e923ec0d"}]}
\ No newline at end of file
+{
+	"signatures": [
+		{
+			"keyid": "b59406a55fbe2492022f2951dacd01fc7b400b7b41ec4028b8356161a5a71a33",
+			"sig": "d66dc8ec2ede5c442ec600c22c46a5e0661bfdaae9a24ace66fedafe6a8f7a8d20cbe8685d3e0947c5d84bc4e9fdd4f4a442477c1544316678eef537fcdd0e06"
+		}
+	],
+	"signed": {
+		"_type": "timestamp",
+		"expires": "2100-01-01T00:00:00Z",
+		"meta": {
+			"snapshot.json": {
+				"hashes": {
+					"sha512": "67b27e18e00391e67d5ce85d60cc8aaf862cff0d22e541d044c39373ed7d524969ab8a31a826722a94ee42ff1e81eedcefba379b2f02f0116b4c30c5285692f3"
+				},
+				"length": 847,
+				"version": 1
+			}
+		},
+		"spec_version": "1.0",
+		"version": 1
+	}
+}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/1/keys/root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/1/keys/root.json
deleted file mode 100644
index dda9466..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/1/keys/root.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
-	"encrypted": false,
-	"data": [
-		{
-			"keytype": "ed25519",
-			"scheme": "ed25519",
-			"keyid_hash_algorithms": [
-				"sha512"
-			],
-			"keyval": {
-				"public": "e382c952a736d52be2ab82e486d3f3b27e60e221b636087f3fc3cb71beda0ade",
-				"private": "17bc6c778809d7d05b16c857239511e918dc1c96e221d3433e7c8f8e17f2b197e382c952a736d52be2ab82e486d3f3b27e60e221b636087f3fc3cb71beda0ade"
-			}
-		}
-	]
-}
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/1/keys/snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/1/keys/snapshot.json
deleted file mode 100644
index 45bea1e..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/1/keys/snapshot.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
-	"encrypted": false,
-	"data": [
-		{
-			"keytype": "ed25519",
-			"scheme": "ed25519",
-			"keyid_hash_algorithms": [
-				"sha512"
-			],
-			"keyval": {
-				"public": "88c224c1d6175f3dbb6870edd3e138ccf8f714d6cb6f4cccdaf74f989c207cef",
-				"private": "56943269321253b65cbc2fb7a476ce165283fcb7fec69d977f131c96ec410ebe88c224c1d6175f3dbb6870edd3e138ccf8f714d6cb6f4cccdaf74f989c207cef"
-			}
-		}
-	]
-}
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/1/keys/targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/1/keys/targets.json
deleted file mode 100644
index c24ecf5..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/1/keys/targets.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
-	"encrypted": false,
-	"data": [
-		{
-			"keytype": "ed25519",
-			"scheme": "ed25519",
-			"keyid_hash_algorithms": [
-				"sha512"
-			],
-			"keyval": {
-				"public": "2cb97b1af650c5960ab9d5fa3e4192b8e8a3432df927f2ba30243930c786bb3c",
-				"private": "9f530290cb71059f1fee0147e88076caa53dceddfcde4b826d61dd2a8945ad712cb97b1af650c5960ab9d5fa3e4192b8e8a3432df927f2ba30243930c786bb3c"
-			}
-		}
-	]
-}
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/1/keys/timestamp.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/1/keys/timestamp.json
deleted file mode 100644
index 64ef0f3..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/1/keys/timestamp.json
+++ /dev/null
@@ -1,27 +0,0 @@
-{
-	"encrypted": false,
-	"data": [
-		{
-			"keytype": "ed25519",
-			"scheme": "ed25519",
-			"keyid_hash_algorithms": [
-				"sha512"
-			],
-			"keyval": {
-				"public": "e1cb1f371c8f7a31dd0b39309c5d02af11ffaa1a7c71778d2b885ce77757a5e3",
-				"private": "e97432895522f62667c69f996f2e32c1e85e4801dbc49e56dc358f0df434b453e1cb1f371c8f7a31dd0b39309c5d02af11ffaa1a7c71778d2b885ce77757a5e3"
-			}
-		},
-		{
-			"keytype": "ed25519",
-			"scheme": "ed25519",
-			"keyid_hash_algorithms": [
-				"sha512"
-			],
-			"keyval": {
-				"public": "4df070f02a97f5d0f0e7cbb3554e7ae0b6733a56ff7dfc1ac52094a3aded9c64",
-				"private": "2393a13f038713a2d2ae7a80d0bdf5bd8e018e35967c3bdfd8ca8b115e47c01d4df070f02a97f5d0f0e7cbb3554e7ae0b6733a56ff7dfc1ac52094a3aded9c64"
-			}
-		}
-	]
-}
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/1/repository/1.root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/1/repository/1.root.json
deleted file mode 100644
index d6e3979..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/1/repository/1.root.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"root","consistent_snapshot":true,"expires":"2100-01-01T00:00:00Z","keys":{"3901e5474c946f204ec6a239ad261a8ccab4949fc6178cef1d48eb01a040521d":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"e1cb1f371c8f7a31dd0b39309c5d02af11ffaa1a7c71778d2b885ce77757a5e3"},"scheme":"ed25519"},"4e8daa3c2904f32d334729b603ded23b5cf950c20564a2a48b77c24dcde407c3":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"e382c952a736d52be2ab82e486d3f3b27e60e221b636087f3fc3cb71beda0ade"},"scheme":"ed25519"},"7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"88c224c1d6175f3dbb6870edd3e138ccf8f714d6cb6f4cccdaf74f989c207cef"},"scheme":"ed25519"},"eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"2cb97b1af650c5960ab9d5fa3e4192b8e8a3432df927f2ba30243930c786bb3c"},"scheme":"ed25519"}},"roles":{"root":{"keyids":["4e8daa3c2904f32d334729b603ded23b5cf950c20564a2a48b77c24dcde407c3"],"threshold":1},"snapshot":{"keyids":["7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321"],"threshold":1},"targets":{"keyids":["eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f"],"threshold":1},"timestamp":{"keyids":["3901e5474c946f204ec6a239ad261a8ccab4949fc6178cef1d48eb01a040521d"],"threshold":1}},"spec_version":"1.0","version":1},"signatures":[{"keyid":"4e8daa3c2904f32d334729b603ded23b5cf950c20564a2a48b77c24dcde407c3","sig":"ba1c7544af8cdee5cb70eee5bf7871d20b34ef1c480854513e9590746ad2686db9bec7fc1259a0f5206e113dc4aab18fc251d173fa0b3cbfdb95ee92d5c5d50b"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/1/repository/1.root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/1/repository/1.root.json
new file mode 120000
index 0000000..0ffd2b6
--- /dev/null
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/1/repository/1.root.json
@@ -0,0 +1 @@
+../../0/repository/1.root.json
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/1/repository/1.snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/1/repository/1.snapshot.json
deleted file mode 100644
index 6785251..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/1/repository/1.snapshot.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"snapshot","expires":"2100-01-01T00:00:00Z","meta":{"root.json":{"hashes":{"sha512":"c30accb049704fa7b471e4c5869648158f3395b368898c8fa91c56c9e8838d9ffbb810e01cf648a04408a3fffa32125d4f0a16b3326e8c7bc86e6f1fbd5136a6"},"length":1704,"version":1},"targets.json":{"hashes":{"sha512":"4a09a98bfafccc0de35d0d4f683c817ee1d410b1432200cbfa8f6ec844d1ff00f183d27b4e4588f7239604a079ff0f4711fba15cceb02e69e1d928024462e112"},"length":505,"version":1}},"spec_version":"1.0","version":1},"signatures":[{"keyid":"7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321","sig":"00f4cadd08a9c414b112594d5efebecff11dac46b0e68907da7837eebd46e4f929b068dc53785f54adfba503c55a298678f4ebb7ff10a76c05ada43019af7206"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/1/repository/1.snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/1/repository/1.snapshot.json
new file mode 120000
index 0000000..840f843
--- /dev/null
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/1/repository/1.snapshot.json
@@ -0,0 +1 @@
+../../0/repository/1.snapshot.json
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/1/repository/1.targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/1/repository/1.targets.json
deleted file mode 100644
index 633e87f..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/1/repository/1.targets.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"targets","expires":"2100-01-01T00:00:00Z","spec_version":"1.0","targets":{"0":{"hashes":{"sha512":"31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"},"length":1}},"version":1},"signatures":[{"keyid":"eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f","sig":"09f3b7faeb4098137fd7fb365f1396307a7d9240d0df527f7fb4a2861c2bc869611636897146e0d2ba2afd9df348f4b99fb19dbe1ff16ce652d9617b09533806"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/1/repository/1.targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/1/repository/1.targets.json
new file mode 120000
index 0000000..4d11148
--- /dev/null
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/1/repository/1.targets.json
@@ -0,0 +1 @@
+../../0/repository/1.targets.json
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/1/repository/2.root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/1/repository/2.root.json
index ecba9d9..b0d7ec3 100644
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/1/repository/2.root.json
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/1/repository/2.root.json
@@ -1 +1,87 @@
-{"signed":{"_type":"root","consistent_snapshot":true,"expires":"2100-01-01T00:00:00Z","keys":{"2ffb4fd85c3a009d7c42d4f074a9b5156e2242c421fa801fd81eda01c434d23f":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"4df070f02a97f5d0f0e7cbb3554e7ae0b6733a56ff7dfc1ac52094a3aded9c64"},"scheme":"ed25519"},"4e8daa3c2904f32d334729b603ded23b5cf950c20564a2a48b77c24dcde407c3":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"e382c952a736d52be2ab82e486d3f3b27e60e221b636087f3fc3cb71beda0ade"},"scheme":"ed25519"},"7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"88c224c1d6175f3dbb6870edd3e138ccf8f714d6cb6f4cccdaf74f989c207cef"},"scheme":"ed25519"},"eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"2cb97b1af650c5960ab9d5fa3e4192b8e8a3432df927f2ba30243930c786bb3c"},"scheme":"ed25519"}},"roles":{"root":{"keyids":["4e8daa3c2904f32d334729b603ded23b5cf950c20564a2a48b77c24dcde407c3"],"threshold":1},"snapshot":{"keyids":["7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321"],"threshold":1},"targets":{"keyids":["eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f"],"threshold":1},"timestamp":{"keyids":["2ffb4fd85c3a009d7c42d4f074a9b5156e2242c421fa801fd81eda01c434d23f"],"threshold":1}},"spec_version":"1.0","version":2},"signatures":[{"keyid":"4e8daa3c2904f32d334729b603ded23b5cf950c20564a2a48b77c24dcde407c3","sig":"1d4b8e3ba03158c64029e4f1d9e580905d1ed1a0c87242e09edd36ed6104ed8587b20bfe3a7669d040028149fe945818f150cff5ad302bdf6071e0bfb5ba5206"}]}
\ No newline at end of file
+{
+	"signatures": [
+		{
+			"keyid": "160f5ae5e7017bc783bbbe26c5419bbeeeb87f507b140ef474da0517d56549f7",
+			"sig": "953fe3874eeb876b137ff4449d6e3d49d61a0b9e7bd339a47f9df3bd19e197aeee1e6b2b89a0ed4425c66e551b396ec53ea73f46d772ca81e27a3daf917e130d"
+		},
+		{
+			"keyid": "4c663b6d0b9f2c74a19b6791c1417c8d1916e2d84461be1a8148e4386c89582d",
+			"sig": "09cd32bfed745ebdd6c8f69c3dca6ac74ddaf0121098442414ef4cb141f4916b14cc2127223f9ffaec2a4e0bde03c04f33aba3c357f7f8c3544666bfe84ede02"
+		}
+	],
+	"signed": {
+		"_type": "root",
+		"consistent_snapshot": true,
+		"expires": "2100-01-01T00:00:00Z",
+		"keys": {
+			"4c663b6d0b9f2c74a19b6791c1417c8d1916e2d84461be1a8148e4386c89582d": {
+				"keyid_hash_algorithms": [
+					"sha256"
+				],
+				"keytype": "ed25519",
+				"keyval": {
+					"public": "153986a7370e002f377dd68797e7466c421180c1571e233de2f8ab41c8af4f54"
+				},
+				"scheme": "ed25519"
+			},
+			"b1eb1d74c0e65524c85f96f9badf09a4d2ed1259fb427fc689fc2279ebb4d867": {
+				"keyid_hash_algorithms": [
+					"sha256"
+				],
+				"keytype": "ed25519",
+				"keyval": {
+					"public": "62f71f99c788f16bcdc8bb252455e3a690350e4ddea5a6aab1f9a3aaabcf369a"
+				},
+				"scheme": "ed25519"
+			},
+			"b59406a55fbe2492022f2951dacd01fc7b400b7b41ec4028b8356161a5a71a33": {
+				"keyid_hash_algorithms": [
+					"sha256"
+				],
+				"keytype": "ed25519",
+				"keyval": {
+					"public": "8656ad20568cd3534c405e4d9a84b0c6e6163f7f66434df77416502835b9b160"
+				},
+				"scheme": "ed25519"
+			},
+			"d792ff8cf3c5d9a8fe0fdfa585b25028fa9f49aa29c62a658140d4b98cc2c917": {
+				"keyid_hash_algorithms": [
+					"sha256"
+				],
+				"keytype": "ed25519",
+				"keyval": {
+					"public": "d482fa4805a50870aa1356ace6b764f7ab47ed4dc38f49b1a189afa25f179e94"
+				},
+				"scheme": "ed25519"
+			}
+		},
+		"roles": {
+			"root": {
+				"keyids": [
+					"4c663b6d0b9f2c74a19b6791c1417c8d1916e2d84461be1a8148e4386c89582d"
+				],
+				"threshold": 1
+			},
+			"snapshot": {
+				"keyids": [
+					"d792ff8cf3c5d9a8fe0fdfa585b25028fa9f49aa29c62a658140d4b98cc2c917"
+				],
+				"threshold": 1
+			},
+			"targets": {
+				"keyids": [
+					"b1eb1d74c0e65524c85f96f9badf09a4d2ed1259fb427fc689fc2279ebb4d867"
+				],
+				"threshold": 1
+			},
+			"timestamp": {
+				"keyids": [
+					"b59406a55fbe2492022f2951dacd01fc7b400b7b41ec4028b8356161a5a71a33"
+				],
+				"threshold": 1
+			}
+		},
+		"spec_version": "1.0",
+		"version": 2
+	}
+}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/1/repository/2.snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/1/repository/2.snapshot.json
index 1a64206..592682f 100644
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/1/repository/2.snapshot.json
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/1/repository/2.snapshot.json
@@ -1 +1,30 @@
-{"signed":{"_type":"snapshot","expires":"2100-01-01T00:00:00Z","meta":{"root.json":{"hashes":{"sha512":"bfe96f67a4f04ee6466f17912d1011a88a8c3a27b24b9ad62121af5a3222cdbb09a8f9d82446498b4a13603d3b305e7278d51a59470422a4de361e375db8df84"},"length":1704,"version":2},"targets.json":{"hashes":{"sha512":"bfb9550cac278a45a1b7d88fc177831c289227c310c30fb5638d0946ba6f09b6942576e6c950e8c864d5ad1300fd446fb9fb1c3e05e6facf1794abfc72039da4"},"length":673,"version":2}},"spec_version":"1.0","version":2},"signatures":[{"keyid":"7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321","sig":"d30f405c3ff0c0917da5f6bce6d03e8f3ba521b0a545517ef3af0d451f88bced5985b119e6fc60dd4c714b43cfec0742471b9eff97d5200605b44a0976783106"}]}
\ No newline at end of file
+{
+	"signatures": [
+		{
+			"keyid": "d792ff8cf3c5d9a8fe0fdfa585b25028fa9f49aa29c62a658140d4b98cc2c917",
+			"sig": "b0298a786de3c14313b5a8f5afe8bbab0a407699a91062b8ead172f3afc74fc27210a7a042978c7d42b4ae9874f4bb139628be8a7be5b57c7bacc9f5a4cec809"
+		}
+	],
+	"signed": {
+		"_type": "snapshot",
+		"expires": "2100-01-01T00:00:00Z",
+		"meta": {
+			"root.json": {
+				"hashes": {
+					"sha512": "df686bed8fac62391d47356f6be52fe3316bf856a415a7a2102369289d23d274a739a1071f6095a712654e6b75296b726198e67604666d808c2e7caa3964f419"
+				},
+				"length": 2347,
+				"version": 2
+			},
+			"targets.json": {
+				"hashes": {
+					"sha512": "0fa0d9f7f64ffaf2a52bda808851c71ae87c7c47aaec4ce2ba28c19123a0d4394156dce76012a5253c1c02ccdf88843cdb980042eab746e1a93ce2541f89d91c"
+				},
+				"length": 789,
+				"version": 2
+			}
+		},
+		"spec_version": "1.0",
+		"version": 2
+	}
+}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/1/repository/2.targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/1/repository/2.targets.json
index 31d08bd..eb11538 100644
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/1/repository/2.targets.json
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/1/repository/2.targets.json
@@ -1 +1,28 @@
-{"signed":{"_type":"targets","expires":"2100-01-01T00:00:00Z","spec_version":"1.0","targets":{"0":{"hashes":{"sha512":"31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"},"length":1},"1":{"hashes":{"sha512":"4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a"},"length":1}},"version":2},"signatures":[{"keyid":"eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f","sig":"7b69960653d7dbacd867655f7802487d028430c4df53ca94a8eaa65cd4f84986532ab34ab6aa349f391dc03b0ef94c5af5bfc7ba3a428ddba581bd2c26dc9702"}]}
\ No newline at end of file
+{
+	"signatures": [
+		{
+			"keyid": "b1eb1d74c0e65524c85f96f9badf09a4d2ed1259fb427fc689fc2279ebb4d867",
+			"sig": "81bcf5921834a20b8b0946815ad4316f43ffce20b3793e6653dc5fd4b98f1c6318ce2243948574e82414a102717a6f2d731250b3191c54abc8391fd867503e0b"
+		}
+	],
+	"signed": {
+		"_type": "targets",
+		"expires": "2100-01-01T00:00:00Z",
+		"spec_version": "1.0",
+		"targets": {
+			"0": {
+				"hashes": {
+					"sha512": "31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"
+				},
+				"length": 1
+			},
+			"1": {
+				"hashes": {
+					"sha512": "4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a"
+				},
+				"length": 1
+			}
+		},
+		"version": 2
+	}
+}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/1/repository/27b3a3586c86fdd05e941098c10f71419f531d94bac36a272b5b978877652e7994ec657333d2e3894a2c1f53263eec729c8595f492f67b3eaafcc47b75e746c8.snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/1/repository/27b3a3586c86fdd05e941098c10f71419f531d94bac36a272b5b978877652e7994ec657333d2e3894a2c1f53263eec729c8595f492f67b3eaafcc47b75e746c8.snapshot.json
deleted file mode 100644
index 6785251..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/1/repository/27b3a3586c86fdd05e941098c10f71419f531d94bac36a272b5b978877652e7994ec657333d2e3894a2c1f53263eec729c8595f492f67b3eaafcc47b75e746c8.snapshot.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"snapshot","expires":"2100-01-01T00:00:00Z","meta":{"root.json":{"hashes":{"sha512":"c30accb049704fa7b471e4c5869648158f3395b368898c8fa91c56c9e8838d9ffbb810e01cf648a04408a3fffa32125d4f0a16b3326e8c7bc86e6f1fbd5136a6"},"length":1704,"version":1},"targets.json":{"hashes":{"sha512":"4a09a98bfafccc0de35d0d4f683c817ee1d410b1432200cbfa8f6ec844d1ff00f183d27b4e4588f7239604a079ff0f4711fba15cceb02e69e1d928024462e112"},"length":505,"version":1}},"spec_version":"1.0","version":1},"signatures":[{"keyid":"7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321","sig":"00f4cadd08a9c414b112594d5efebecff11dac46b0e68907da7837eebd46e4f929b068dc53785f54adfba503c55a298678f4ebb7ff10a76c05ada43019af7206"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/1/repository/4a09a98bfafccc0de35d0d4f683c817ee1d410b1432200cbfa8f6ec844d1ff00f183d27b4e4588f7239604a079ff0f4711fba15cceb02e69e1d928024462e112.targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/1/repository/4a09a98bfafccc0de35d0d4f683c817ee1d410b1432200cbfa8f6ec844d1ff00f183d27b4e4588f7239604a079ff0f4711fba15cceb02e69e1d928024462e112.targets.json
deleted file mode 100644
index 633e87f..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/1/repository/4a09a98bfafccc0de35d0d4f683c817ee1d410b1432200cbfa8f6ec844d1ff00f183d27b4e4588f7239604a079ff0f4711fba15cceb02e69e1d928024462e112.targets.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"targets","expires":"2100-01-01T00:00:00Z","spec_version":"1.0","targets":{"0":{"hashes":{"sha512":"31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"},"length":1}},"version":1},"signatures":[{"keyid":"eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f","sig":"09f3b7faeb4098137fd7fb365f1396307a7d9240d0df527f7fb4a2861c2bc869611636897146e0d2ba2afd9df348f4b99fb19dbe1ff16ce652d9617b09533806"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/1/repository/7ff09cead126fb7f2c923ef024074c51b626e2d3dfce31159312186d3c10c838faac51cae57c95e1032ede047800450eff71a0a8d3b45167640ebbe45cad4dcd.snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/1/repository/7ff09cead126fb7f2c923ef024074c51b626e2d3dfce31159312186d3c10c838faac51cae57c95e1032ede047800450eff71a0a8d3b45167640ebbe45cad4dcd.snapshot.json
deleted file mode 100644
index 1a64206..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/1/repository/7ff09cead126fb7f2c923ef024074c51b626e2d3dfce31159312186d3c10c838faac51cae57c95e1032ede047800450eff71a0a8d3b45167640ebbe45cad4dcd.snapshot.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"snapshot","expires":"2100-01-01T00:00:00Z","meta":{"root.json":{"hashes":{"sha512":"bfe96f67a4f04ee6466f17912d1011a88a8c3a27b24b9ad62121af5a3222cdbb09a8f9d82446498b4a13603d3b305e7278d51a59470422a4de361e375db8df84"},"length":1704,"version":2},"targets.json":{"hashes":{"sha512":"bfb9550cac278a45a1b7d88fc177831c289227c310c30fb5638d0946ba6f09b6942576e6c950e8c864d5ad1300fd446fb9fb1c3e05e6facf1794abfc72039da4"},"length":673,"version":2}},"spec_version":"1.0","version":2},"signatures":[{"keyid":"7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321","sig":"d30f405c3ff0c0917da5f6bce6d03e8f3ba521b0a545517ef3af0d451f88bced5985b119e6fc60dd4c714b43cfec0742471b9eff97d5200605b44a0976783106"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/1/repository/bfb9550cac278a45a1b7d88fc177831c289227c310c30fb5638d0946ba6f09b6942576e6c950e8c864d5ad1300fd446fb9fb1c3e05e6facf1794abfc72039da4.targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/1/repository/bfb9550cac278a45a1b7d88fc177831c289227c310c30fb5638d0946ba6f09b6942576e6c950e8c864d5ad1300fd446fb9fb1c3e05e6facf1794abfc72039da4.targets.json
deleted file mode 100644
index 31d08bd..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/1/repository/bfb9550cac278a45a1b7d88fc177831c289227c310c30fb5638d0946ba6f09b6942576e6c950e8c864d5ad1300fd446fb9fb1c3e05e6facf1794abfc72039da4.targets.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"targets","expires":"2100-01-01T00:00:00Z","spec_version":"1.0","targets":{"0":{"hashes":{"sha512":"31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"},"length":1},"1":{"hashes":{"sha512":"4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a"},"length":1}},"version":2},"signatures":[{"keyid":"eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f","sig":"7b69960653d7dbacd867655f7802487d028430c4df53ca94a8eaa65cd4f84986532ab34ab6aa349f391dc03b0ef94c5af5bfc7ba3a428ddba581bd2c26dc9702"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/1/repository/bfe96f67a4f04ee6466f17912d1011a88a8c3a27b24b9ad62121af5a3222cdbb09a8f9d82446498b4a13603d3b305e7278d51a59470422a4de361e375db8df84.root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/1/repository/bfe96f67a4f04ee6466f17912d1011a88a8c3a27b24b9ad62121af5a3222cdbb09a8f9d82446498b4a13603d3b305e7278d51a59470422a4de361e375db8df84.root.json
deleted file mode 100644
index ecba9d9..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/1/repository/bfe96f67a4f04ee6466f17912d1011a88a8c3a27b24b9ad62121af5a3222cdbb09a8f9d82446498b4a13603d3b305e7278d51a59470422a4de361e375db8df84.root.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"root","consistent_snapshot":true,"expires":"2100-01-01T00:00:00Z","keys":{"2ffb4fd85c3a009d7c42d4f074a9b5156e2242c421fa801fd81eda01c434d23f":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"4df070f02a97f5d0f0e7cbb3554e7ae0b6733a56ff7dfc1ac52094a3aded9c64"},"scheme":"ed25519"},"4e8daa3c2904f32d334729b603ded23b5cf950c20564a2a48b77c24dcde407c3":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"e382c952a736d52be2ab82e486d3f3b27e60e221b636087f3fc3cb71beda0ade"},"scheme":"ed25519"},"7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"88c224c1d6175f3dbb6870edd3e138ccf8f714d6cb6f4cccdaf74f989c207cef"},"scheme":"ed25519"},"eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"2cb97b1af650c5960ab9d5fa3e4192b8e8a3432df927f2ba30243930c786bb3c"},"scheme":"ed25519"}},"roles":{"root":{"keyids":["4e8daa3c2904f32d334729b603ded23b5cf950c20564a2a48b77c24dcde407c3"],"threshold":1},"snapshot":{"keyids":["7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321"],"threshold":1},"targets":{"keyids":["eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f"],"threshold":1},"timestamp":{"keyids":["2ffb4fd85c3a009d7c42d4f074a9b5156e2242c421fa801fd81eda01c434d23f"],"threshold":1}},"spec_version":"1.0","version":2},"signatures":[{"keyid":"4e8daa3c2904f32d334729b603ded23b5cf950c20564a2a48b77c24dcde407c3","sig":"1d4b8e3ba03158c64029e4f1d9e580905d1ed1a0c87242e09edd36ed6104ed8587b20bfe3a7669d040028149fe945818f150cff5ad302bdf6071e0bfb5ba5206"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/1/repository/c30accb049704fa7b471e4c5869648158f3395b368898c8fa91c56c9e8838d9ffbb810e01cf648a04408a3fffa32125d4f0a16b3326e8c7bc86e6f1fbd5136a6.root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/1/repository/c30accb049704fa7b471e4c5869648158f3395b368898c8fa91c56c9e8838d9ffbb810e01cf648a04408a3fffa32125d4f0a16b3326e8c7bc86e6f1fbd5136a6.root.json
deleted file mode 100644
index d6e3979..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/1/repository/c30accb049704fa7b471e4c5869648158f3395b368898c8fa91c56c9e8838d9ffbb810e01cf648a04408a3fffa32125d4f0a16b3326e8c7bc86e6f1fbd5136a6.root.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"root","consistent_snapshot":true,"expires":"2100-01-01T00:00:00Z","keys":{"3901e5474c946f204ec6a239ad261a8ccab4949fc6178cef1d48eb01a040521d":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"e1cb1f371c8f7a31dd0b39309c5d02af11ffaa1a7c71778d2b885ce77757a5e3"},"scheme":"ed25519"},"4e8daa3c2904f32d334729b603ded23b5cf950c20564a2a48b77c24dcde407c3":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"e382c952a736d52be2ab82e486d3f3b27e60e221b636087f3fc3cb71beda0ade"},"scheme":"ed25519"},"7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"88c224c1d6175f3dbb6870edd3e138ccf8f714d6cb6f4cccdaf74f989c207cef"},"scheme":"ed25519"},"eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"2cb97b1af650c5960ab9d5fa3e4192b8e8a3432df927f2ba30243930c786bb3c"},"scheme":"ed25519"}},"roles":{"root":{"keyids":["4e8daa3c2904f32d334729b603ded23b5cf950c20564a2a48b77c24dcde407c3"],"threshold":1},"snapshot":{"keyids":["7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321"],"threshold":1},"targets":{"keyids":["eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f"],"threshold":1},"timestamp":{"keyids":["3901e5474c946f204ec6a239ad261a8ccab4949fc6178cef1d48eb01a040521d"],"threshold":1}},"spec_version":"1.0","version":1},"signatures":[{"keyid":"4e8daa3c2904f32d334729b603ded23b5cf950c20564a2a48b77c24dcde407c3","sig":"ba1c7544af8cdee5cb70eee5bf7871d20b34ef1c480854513e9590746ad2686db9bec7fc1259a0f5206e113dc4aab18fc251d173fa0b3cbfdb95ee92d5c5d50b"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/1/repository/root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/1/repository/root.json
index ecba9d9..b0d7ec3 100644
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/1/repository/root.json
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/1/repository/root.json
@@ -1 +1,87 @@
-{"signed":{"_type":"root","consistent_snapshot":true,"expires":"2100-01-01T00:00:00Z","keys":{"2ffb4fd85c3a009d7c42d4f074a9b5156e2242c421fa801fd81eda01c434d23f":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"4df070f02a97f5d0f0e7cbb3554e7ae0b6733a56ff7dfc1ac52094a3aded9c64"},"scheme":"ed25519"},"4e8daa3c2904f32d334729b603ded23b5cf950c20564a2a48b77c24dcde407c3":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"e382c952a736d52be2ab82e486d3f3b27e60e221b636087f3fc3cb71beda0ade"},"scheme":"ed25519"},"7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"88c224c1d6175f3dbb6870edd3e138ccf8f714d6cb6f4cccdaf74f989c207cef"},"scheme":"ed25519"},"eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"2cb97b1af650c5960ab9d5fa3e4192b8e8a3432df927f2ba30243930c786bb3c"},"scheme":"ed25519"}},"roles":{"root":{"keyids":["4e8daa3c2904f32d334729b603ded23b5cf950c20564a2a48b77c24dcde407c3"],"threshold":1},"snapshot":{"keyids":["7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321"],"threshold":1},"targets":{"keyids":["eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f"],"threshold":1},"timestamp":{"keyids":["2ffb4fd85c3a009d7c42d4f074a9b5156e2242c421fa801fd81eda01c434d23f"],"threshold":1}},"spec_version":"1.0","version":2},"signatures":[{"keyid":"4e8daa3c2904f32d334729b603ded23b5cf950c20564a2a48b77c24dcde407c3","sig":"1d4b8e3ba03158c64029e4f1d9e580905d1ed1a0c87242e09edd36ed6104ed8587b20bfe3a7669d040028149fe945818f150cff5ad302bdf6071e0bfb5ba5206"}]}
\ No newline at end of file
+{
+	"signatures": [
+		{
+			"keyid": "160f5ae5e7017bc783bbbe26c5419bbeeeb87f507b140ef474da0517d56549f7",
+			"sig": "953fe3874eeb876b137ff4449d6e3d49d61a0b9e7bd339a47f9df3bd19e197aeee1e6b2b89a0ed4425c66e551b396ec53ea73f46d772ca81e27a3daf917e130d"
+		},
+		{
+			"keyid": "4c663b6d0b9f2c74a19b6791c1417c8d1916e2d84461be1a8148e4386c89582d",
+			"sig": "09cd32bfed745ebdd6c8f69c3dca6ac74ddaf0121098442414ef4cb141f4916b14cc2127223f9ffaec2a4e0bde03c04f33aba3c357f7f8c3544666bfe84ede02"
+		}
+	],
+	"signed": {
+		"_type": "root",
+		"consistent_snapshot": true,
+		"expires": "2100-01-01T00:00:00Z",
+		"keys": {
+			"4c663b6d0b9f2c74a19b6791c1417c8d1916e2d84461be1a8148e4386c89582d": {
+				"keyid_hash_algorithms": [
+					"sha256"
+				],
+				"keytype": "ed25519",
+				"keyval": {
+					"public": "153986a7370e002f377dd68797e7466c421180c1571e233de2f8ab41c8af4f54"
+				},
+				"scheme": "ed25519"
+			},
+			"b1eb1d74c0e65524c85f96f9badf09a4d2ed1259fb427fc689fc2279ebb4d867": {
+				"keyid_hash_algorithms": [
+					"sha256"
+				],
+				"keytype": "ed25519",
+				"keyval": {
+					"public": "62f71f99c788f16bcdc8bb252455e3a690350e4ddea5a6aab1f9a3aaabcf369a"
+				},
+				"scheme": "ed25519"
+			},
+			"b59406a55fbe2492022f2951dacd01fc7b400b7b41ec4028b8356161a5a71a33": {
+				"keyid_hash_algorithms": [
+					"sha256"
+				],
+				"keytype": "ed25519",
+				"keyval": {
+					"public": "8656ad20568cd3534c405e4d9a84b0c6e6163f7f66434df77416502835b9b160"
+				},
+				"scheme": "ed25519"
+			},
+			"d792ff8cf3c5d9a8fe0fdfa585b25028fa9f49aa29c62a658140d4b98cc2c917": {
+				"keyid_hash_algorithms": [
+					"sha256"
+				],
+				"keytype": "ed25519",
+				"keyval": {
+					"public": "d482fa4805a50870aa1356ace6b764f7ab47ed4dc38f49b1a189afa25f179e94"
+				},
+				"scheme": "ed25519"
+			}
+		},
+		"roles": {
+			"root": {
+				"keyids": [
+					"4c663b6d0b9f2c74a19b6791c1417c8d1916e2d84461be1a8148e4386c89582d"
+				],
+				"threshold": 1
+			},
+			"snapshot": {
+				"keyids": [
+					"d792ff8cf3c5d9a8fe0fdfa585b25028fa9f49aa29c62a658140d4b98cc2c917"
+				],
+				"threshold": 1
+			},
+			"targets": {
+				"keyids": [
+					"b1eb1d74c0e65524c85f96f9badf09a4d2ed1259fb427fc689fc2279ebb4d867"
+				],
+				"threshold": 1
+			},
+			"timestamp": {
+				"keyids": [
+					"b59406a55fbe2492022f2951dacd01fc7b400b7b41ec4028b8356161a5a71a33"
+				],
+				"threshold": 1
+			}
+		},
+		"spec_version": "1.0",
+		"version": 2
+	}
+}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/1/repository/snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/1/repository/snapshot.json
index 1a64206..592682f 100644
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/1/repository/snapshot.json
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/1/repository/snapshot.json
@@ -1 +1,30 @@
-{"signed":{"_type":"snapshot","expires":"2100-01-01T00:00:00Z","meta":{"root.json":{"hashes":{"sha512":"bfe96f67a4f04ee6466f17912d1011a88a8c3a27b24b9ad62121af5a3222cdbb09a8f9d82446498b4a13603d3b305e7278d51a59470422a4de361e375db8df84"},"length":1704,"version":2},"targets.json":{"hashes":{"sha512":"bfb9550cac278a45a1b7d88fc177831c289227c310c30fb5638d0946ba6f09b6942576e6c950e8c864d5ad1300fd446fb9fb1c3e05e6facf1794abfc72039da4"},"length":673,"version":2}},"spec_version":"1.0","version":2},"signatures":[{"keyid":"7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321","sig":"d30f405c3ff0c0917da5f6bce6d03e8f3ba521b0a545517ef3af0d451f88bced5985b119e6fc60dd4c714b43cfec0742471b9eff97d5200605b44a0976783106"}]}
\ No newline at end of file
+{
+	"signatures": [
+		{
+			"keyid": "d792ff8cf3c5d9a8fe0fdfa585b25028fa9f49aa29c62a658140d4b98cc2c917",
+			"sig": "b0298a786de3c14313b5a8f5afe8bbab0a407699a91062b8ead172f3afc74fc27210a7a042978c7d42b4ae9874f4bb139628be8a7be5b57c7bacc9f5a4cec809"
+		}
+	],
+	"signed": {
+		"_type": "snapshot",
+		"expires": "2100-01-01T00:00:00Z",
+		"meta": {
+			"root.json": {
+				"hashes": {
+					"sha512": "df686bed8fac62391d47356f6be52fe3316bf856a415a7a2102369289d23d274a739a1071f6095a712654e6b75296b726198e67604666d808c2e7caa3964f419"
+				},
+				"length": 2347,
+				"version": 2
+			},
+			"targets.json": {
+				"hashes": {
+					"sha512": "0fa0d9f7f64ffaf2a52bda808851c71ae87c7c47aaec4ce2ba28c19123a0d4394156dce76012a5253c1c02ccdf88843cdb980042eab746e1a93ce2541f89d91c"
+				},
+				"length": 789,
+				"version": 2
+			}
+		},
+		"spec_version": "1.0",
+		"version": 2
+	}
+}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/1/repository/targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/1/repository/targets.json
index 31d08bd..eb11538 100644
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/1/repository/targets.json
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/1/repository/targets.json
@@ -1 +1,28 @@
-{"signed":{"_type":"targets","expires":"2100-01-01T00:00:00Z","spec_version":"1.0","targets":{"0":{"hashes":{"sha512":"31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"},"length":1},"1":{"hashes":{"sha512":"4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a"},"length":1}},"version":2},"signatures":[{"keyid":"eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f","sig":"7b69960653d7dbacd867655f7802487d028430c4df53ca94a8eaa65cd4f84986532ab34ab6aa349f391dc03b0ef94c5af5bfc7ba3a428ddba581bd2c26dc9702"}]}
\ No newline at end of file
+{
+	"signatures": [
+		{
+			"keyid": "b1eb1d74c0e65524c85f96f9badf09a4d2ed1259fb427fc689fc2279ebb4d867",
+			"sig": "81bcf5921834a20b8b0946815ad4316f43ffce20b3793e6653dc5fd4b98f1c6318ce2243948574e82414a102717a6f2d731250b3191c54abc8391fd867503e0b"
+		}
+	],
+	"signed": {
+		"_type": "targets",
+		"expires": "2100-01-01T00:00:00Z",
+		"spec_version": "1.0",
+		"targets": {
+			"0": {
+				"hashes": {
+					"sha512": "31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"
+				},
+				"length": 1
+			},
+			"1": {
+				"hashes": {
+					"sha512": "4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a"
+				},
+				"length": 1
+			}
+		},
+		"version": 2
+	}
+}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/1/repository/targets/0.0 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/1/repository/targets/0.0
deleted file mode 100644
index c227083..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/1/repository/targets/0.0
+++ /dev/null
@@ -1 +0,0 @@
-0
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/1/repository/targets/0.1 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/1/repository/targets/0.1
deleted file mode 100644
index 56a6051..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/1/repository/targets/0.1
+++ /dev/null
@@ -1 +0,0 @@
-1
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/1/repository/targets/31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99.0 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/1/repository/targets/31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99.0
deleted file mode 100644
index c227083..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/1/repository/targets/31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99.0
+++ /dev/null
@@ -1 +0,0 @@
-0
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/1/repository/targets/31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99.0 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/1/repository/targets/31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99.0
new file mode 120000
index 0000000..b0c459f
--- /dev/null
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/1/repository/targets/31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99.0
@@ -0,0 +1 @@
+../../../0/repository/targets/31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99.0
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/1/repository/timestamp.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/1/repository/timestamp.json
index 776a4d6..96de50e 100644
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/1/repository/timestamp.json
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/1/repository/timestamp.json
@@ -1 +1,23 @@
-{"signed":{"_type":"timestamp","expires":"2100-01-01T00:00:00Z","meta":{"snapshot.json":{"hashes":{"sha512":"7ff09cead126fb7f2c923ef024074c51b626e2d3dfce31159312186d3c10c838faac51cae57c95e1032ede047800450eff71a0a8d3b45167640ebbe45cad4dcd"},"length":719,"version":2}},"spec_version":"1.0","version":2},"signatures":[{"keyid":"2ffb4fd85c3a009d7c42d4f074a9b5156e2242c421fa801fd81eda01c434d23f","sig":"95b023805974cf4a309be190901062f6f4f929a9169a049161a965e228b3f2386850b94a8b5d5cec590ed70f077e441d55cbe839b5da7ff3166325b659b6240b"}]}
\ No newline at end of file
+{
+	"signatures": [
+		{
+			"keyid": "b59406a55fbe2492022f2951dacd01fc7b400b7b41ec4028b8356161a5a71a33",
+			"sig": "d55dc9bd3e7a5a56cada46ca40858b7dd48fd994de1ea0067e20e9fc6401faf5d25b20ddc8f93a966d82d4f0eabf7ef03c3612dd01339bb7527a5271b1c41b07"
+		}
+	],
+	"signed": {
+		"_type": "timestamp",
+		"expires": "2100-01-01T00:00:00Z",
+		"meta": {
+			"snapshot.json": {
+				"hashes": {
+					"sha512": "41a2de22c5a4b972102e2c65b9f5024c384be52a03c345a36736c3bee79e30a7aa3853c4dfdc7dfc3d5ddb713258454f0ef9140ac52e832f3ca927030013ca8e"
+				},
+				"length": 847,
+				"version": 2
+			}
+		},
+		"spec_version": "1.0",
+		"version": 2
+	}
+}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/keys/root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/keys/root.json
deleted file mode 100644
index dda9466..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/keys/root.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
-	"encrypted": false,
-	"data": [
-		{
-			"keytype": "ed25519",
-			"scheme": "ed25519",
-			"keyid_hash_algorithms": [
-				"sha512"
-			],
-			"keyval": {
-				"public": "e382c952a736d52be2ab82e486d3f3b27e60e221b636087f3fc3cb71beda0ade",
-				"private": "17bc6c778809d7d05b16c857239511e918dc1c96e221d3433e7c8f8e17f2b197e382c952a736d52be2ab82e486d3f3b27e60e221b636087f3fc3cb71beda0ade"
-			}
-		}
-	]
-}
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/keys/snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/keys/snapshot.json
deleted file mode 100644
index 45bea1e..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/keys/snapshot.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
-	"encrypted": false,
-	"data": [
-		{
-			"keytype": "ed25519",
-			"scheme": "ed25519",
-			"keyid_hash_algorithms": [
-				"sha512"
-			],
-			"keyval": {
-				"public": "88c224c1d6175f3dbb6870edd3e138ccf8f714d6cb6f4cccdaf74f989c207cef",
-				"private": "56943269321253b65cbc2fb7a476ce165283fcb7fec69d977f131c96ec410ebe88c224c1d6175f3dbb6870edd3e138ccf8f714d6cb6f4cccdaf74f989c207cef"
-			}
-		}
-	]
-}
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/keys/targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/keys/targets.json
deleted file mode 100644
index c24ecf5..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/keys/targets.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
-	"encrypted": false,
-	"data": [
-		{
-			"keytype": "ed25519",
-			"scheme": "ed25519",
-			"keyid_hash_algorithms": [
-				"sha512"
-			],
-			"keyval": {
-				"public": "2cb97b1af650c5960ab9d5fa3e4192b8e8a3432df927f2ba30243930c786bb3c",
-				"private": "9f530290cb71059f1fee0147e88076caa53dceddfcde4b826d61dd2a8945ad712cb97b1af650c5960ab9d5fa3e4192b8e8a3432df927f2ba30243930c786bb3c"
-			}
-		}
-	]
-}
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/keys/timestamp.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/keys/timestamp.json
deleted file mode 100644
index dd1cc81..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/keys/timestamp.json
+++ /dev/null
@@ -1 +0,0 @@
-{"encrypted":false,"data":[{"keytype":"ed25519","scheme":"ed25519","keyid_hash_algorithms":["sha512"],"keyval":{"public":"4df070f02a97f5d0f0e7cbb3554e7ae0b6733a56ff7dfc1ac52094a3aded9c64","private":"2393a13f038713a2d2ae7a80d0bdf5bd8e018e35967c3bdfd8ca8b115e47c01d4df070f02a97f5d0f0e7cbb3554e7ae0b6733a56ff7dfc1ac52094a3aded9c64"}}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/1.root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/1.root.json
deleted file mode 100644
index d6e3979..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/1.root.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"root","consistent_snapshot":true,"expires":"2100-01-01T00:00:00Z","keys":{"3901e5474c946f204ec6a239ad261a8ccab4949fc6178cef1d48eb01a040521d":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"e1cb1f371c8f7a31dd0b39309c5d02af11ffaa1a7c71778d2b885ce77757a5e3"},"scheme":"ed25519"},"4e8daa3c2904f32d334729b603ded23b5cf950c20564a2a48b77c24dcde407c3":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"e382c952a736d52be2ab82e486d3f3b27e60e221b636087f3fc3cb71beda0ade"},"scheme":"ed25519"},"7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"88c224c1d6175f3dbb6870edd3e138ccf8f714d6cb6f4cccdaf74f989c207cef"},"scheme":"ed25519"},"eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"2cb97b1af650c5960ab9d5fa3e4192b8e8a3432df927f2ba30243930c786bb3c"},"scheme":"ed25519"}},"roles":{"root":{"keyids":["4e8daa3c2904f32d334729b603ded23b5cf950c20564a2a48b77c24dcde407c3"],"threshold":1},"snapshot":{"keyids":["7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321"],"threshold":1},"targets":{"keyids":["eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f"],"threshold":1},"timestamp":{"keyids":["3901e5474c946f204ec6a239ad261a8ccab4949fc6178cef1d48eb01a040521d"],"threshold":1}},"spec_version":"1.0","version":1},"signatures":[{"keyid":"4e8daa3c2904f32d334729b603ded23b5cf950c20564a2a48b77c24dcde407c3","sig":"ba1c7544af8cdee5cb70eee5bf7871d20b34ef1c480854513e9590746ad2686db9bec7fc1259a0f5206e113dc4aab18fc251d173fa0b3cbfdb95ee92d5c5d50b"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/1.root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/1.root.json
new file mode 120000
index 0000000..cd73051
--- /dev/null
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/1.root.json
@@ -0,0 +1 @@
+../../1/repository/1.root.json
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/1.snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/1.snapshot.json
deleted file mode 100644
index 6785251..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/1.snapshot.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"snapshot","expires":"2100-01-01T00:00:00Z","meta":{"root.json":{"hashes":{"sha512":"c30accb049704fa7b471e4c5869648158f3395b368898c8fa91c56c9e8838d9ffbb810e01cf648a04408a3fffa32125d4f0a16b3326e8c7bc86e6f1fbd5136a6"},"length":1704,"version":1},"targets.json":{"hashes":{"sha512":"4a09a98bfafccc0de35d0d4f683c817ee1d410b1432200cbfa8f6ec844d1ff00f183d27b4e4588f7239604a079ff0f4711fba15cceb02e69e1d928024462e112"},"length":505,"version":1}},"spec_version":"1.0","version":1},"signatures":[{"keyid":"7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321","sig":"00f4cadd08a9c414b112594d5efebecff11dac46b0e68907da7837eebd46e4f929b068dc53785f54adfba503c55a298678f4ebb7ff10a76c05ada43019af7206"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/1.snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/1.snapshot.json
new file mode 120000
index 0000000..1307f57
--- /dev/null
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/1.snapshot.json
@@ -0,0 +1 @@
+../../1/repository/1.snapshot.json
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/1.targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/1.targets.json
deleted file mode 100644
index 633e87f..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/1.targets.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"targets","expires":"2100-01-01T00:00:00Z","spec_version":"1.0","targets":{"0":{"hashes":{"sha512":"31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"},"length":1}},"version":1},"signatures":[{"keyid":"eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f","sig":"09f3b7faeb4098137fd7fb365f1396307a7d9240d0df527f7fb4a2861c2bc869611636897146e0d2ba2afd9df348f4b99fb19dbe1ff16ce652d9617b09533806"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/1.targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/1.targets.json
new file mode 120000
index 0000000..85e1ecc
--- /dev/null
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/1.targets.json
@@ -0,0 +1 @@
+../../1/repository/1.targets.json
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/2.root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/2.root.json
deleted file mode 100644
index ecba9d9..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/2.root.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"root","consistent_snapshot":true,"expires":"2100-01-01T00:00:00Z","keys":{"2ffb4fd85c3a009d7c42d4f074a9b5156e2242c421fa801fd81eda01c434d23f":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"4df070f02a97f5d0f0e7cbb3554e7ae0b6733a56ff7dfc1ac52094a3aded9c64"},"scheme":"ed25519"},"4e8daa3c2904f32d334729b603ded23b5cf950c20564a2a48b77c24dcde407c3":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"e382c952a736d52be2ab82e486d3f3b27e60e221b636087f3fc3cb71beda0ade"},"scheme":"ed25519"},"7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"88c224c1d6175f3dbb6870edd3e138ccf8f714d6cb6f4cccdaf74f989c207cef"},"scheme":"ed25519"},"eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"2cb97b1af650c5960ab9d5fa3e4192b8e8a3432df927f2ba30243930c786bb3c"},"scheme":"ed25519"}},"roles":{"root":{"keyids":["4e8daa3c2904f32d334729b603ded23b5cf950c20564a2a48b77c24dcde407c3"],"threshold":1},"snapshot":{"keyids":["7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321"],"threshold":1},"targets":{"keyids":["eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f"],"threshold":1},"timestamp":{"keyids":["2ffb4fd85c3a009d7c42d4f074a9b5156e2242c421fa801fd81eda01c434d23f"],"threshold":1}},"spec_version":"1.0","version":2},"signatures":[{"keyid":"4e8daa3c2904f32d334729b603ded23b5cf950c20564a2a48b77c24dcde407c3","sig":"1d4b8e3ba03158c64029e4f1d9e580905d1ed1a0c87242e09edd36ed6104ed8587b20bfe3a7669d040028149fe945818f150cff5ad302bdf6071e0bfb5ba5206"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/2.root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/2.root.json
new file mode 120000
index 0000000..bbdcb12
--- /dev/null
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/2.root.json
@@ -0,0 +1 @@
+../../1/repository/2.root.json
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/2.snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/2.snapshot.json
deleted file mode 100644
index 1a64206..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/2.snapshot.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"snapshot","expires":"2100-01-01T00:00:00Z","meta":{"root.json":{"hashes":{"sha512":"bfe96f67a4f04ee6466f17912d1011a88a8c3a27b24b9ad62121af5a3222cdbb09a8f9d82446498b4a13603d3b305e7278d51a59470422a4de361e375db8df84"},"length":1704,"version":2},"targets.json":{"hashes":{"sha512":"bfb9550cac278a45a1b7d88fc177831c289227c310c30fb5638d0946ba6f09b6942576e6c950e8c864d5ad1300fd446fb9fb1c3e05e6facf1794abfc72039da4"},"length":673,"version":2}},"spec_version":"1.0","version":2},"signatures":[{"keyid":"7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321","sig":"d30f405c3ff0c0917da5f6bce6d03e8f3ba521b0a545517ef3af0d451f88bced5985b119e6fc60dd4c714b43cfec0742471b9eff97d5200605b44a0976783106"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/2.snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/2.snapshot.json
new file mode 120000
index 0000000..24d1075
--- /dev/null
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/2.snapshot.json
@@ -0,0 +1 @@
+../../1/repository/2.snapshot.json
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/2.targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/2.targets.json
deleted file mode 100644
index 31d08bd..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/2.targets.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"targets","expires":"2100-01-01T00:00:00Z","spec_version":"1.0","targets":{"0":{"hashes":{"sha512":"31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"},"length":1},"1":{"hashes":{"sha512":"4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a"},"length":1}},"version":2},"signatures":[{"keyid":"eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f","sig":"7b69960653d7dbacd867655f7802487d028430c4df53ca94a8eaa65cd4f84986532ab34ab6aa349f391dc03b0ef94c5af5bfc7ba3a428ddba581bd2c26dc9702"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/2.targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/2.targets.json
new file mode 120000
index 0000000..f6a1749
--- /dev/null
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/2.targets.json
@@ -0,0 +1 @@
+../../1/repository/2.targets.json
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/27b3a3586c86fdd05e941098c10f71419f531d94bac36a272b5b978877652e7994ec657333d2e3894a2c1f53263eec729c8595f492f67b3eaafcc47b75e746c8.snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/27b3a3586c86fdd05e941098c10f71419f531d94bac36a272b5b978877652e7994ec657333d2e3894a2c1f53263eec729c8595f492f67b3eaafcc47b75e746c8.snapshot.json
deleted file mode 100644
index 6785251..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/27b3a3586c86fdd05e941098c10f71419f531d94bac36a272b5b978877652e7994ec657333d2e3894a2c1f53263eec729c8595f492f67b3eaafcc47b75e746c8.snapshot.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"snapshot","expires":"2100-01-01T00:00:00Z","meta":{"root.json":{"hashes":{"sha512":"c30accb049704fa7b471e4c5869648158f3395b368898c8fa91c56c9e8838d9ffbb810e01cf648a04408a3fffa32125d4f0a16b3326e8c7bc86e6f1fbd5136a6"},"length":1704,"version":1},"targets.json":{"hashes":{"sha512":"4a09a98bfafccc0de35d0d4f683c817ee1d410b1432200cbfa8f6ec844d1ff00f183d27b4e4588f7239604a079ff0f4711fba15cceb02e69e1d928024462e112"},"length":505,"version":1}},"spec_version":"1.0","version":1},"signatures":[{"keyid":"7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321","sig":"00f4cadd08a9c414b112594d5efebecff11dac46b0e68907da7837eebd46e4f929b068dc53785f54adfba503c55a298678f4ebb7ff10a76c05ada43019af7206"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/3.root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/3.root.json
new file mode 100644
index 0000000..8ac5eb0
--- /dev/null
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/3.root.json
@@ -0,0 +1,83 @@
+{
+	"signatures": [
+		{
+			"keyid": "4c663b6d0b9f2c74a19b6791c1417c8d1916e2d84461be1a8148e4386c89582d",
+			"sig": "46ef3256d2df1f7259ec3044030cc6af71536aee4976b8858a46b0f0e98763679794546bcc21736231c0dac8cfbad936bdd18437d02a1c97e7ef347c16ddeb0c"
+		}
+	],
+	"signed": {
+		"_type": "root",
+		"consistent_snapshot": true,
+		"expires": "2100-01-01T00:00:00Z",
+		"keys": {
+			"4c663b6d0b9f2c74a19b6791c1417c8d1916e2d84461be1a8148e4386c89582d": {
+				"keyid_hash_algorithms": [
+					"sha256"
+				],
+				"keytype": "ed25519",
+				"keyval": {
+					"public": "153986a7370e002f377dd68797e7466c421180c1571e233de2f8ab41c8af4f54"
+				},
+				"scheme": "ed25519"
+			},
+			"a3eba2113e37b749b908101bdb7b856a44f2853641830c0f939730aca3e30360": {
+				"keyid_hash_algorithms": [
+					"sha256"
+				],
+				"keytype": "ed25519",
+				"keyval": {
+					"public": "aee574e56780ea1709a8b56e02d4ffdd9a3a1deaed61e2eb0701f376a4422e42"
+				},
+				"scheme": "ed25519"
+			},
+			"b59406a55fbe2492022f2951dacd01fc7b400b7b41ec4028b8356161a5a71a33": {
+				"keyid_hash_algorithms": [
+					"sha256"
+				],
+				"keytype": "ed25519",
+				"keyval": {
+					"public": "8656ad20568cd3534c405e4d9a84b0c6e6163f7f66434df77416502835b9b160"
+				},
+				"scheme": "ed25519"
+			},
+			"d792ff8cf3c5d9a8fe0fdfa585b25028fa9f49aa29c62a658140d4b98cc2c917": {
+				"keyid_hash_algorithms": [
+					"sha256"
+				],
+				"keytype": "ed25519",
+				"keyval": {
+					"public": "d482fa4805a50870aa1356ace6b764f7ab47ed4dc38f49b1a189afa25f179e94"
+				},
+				"scheme": "ed25519"
+			}
+		},
+		"roles": {
+			"root": {
+				"keyids": [
+					"4c663b6d0b9f2c74a19b6791c1417c8d1916e2d84461be1a8148e4386c89582d"
+				],
+				"threshold": 1
+			},
+			"snapshot": {
+				"keyids": [
+					"d792ff8cf3c5d9a8fe0fdfa585b25028fa9f49aa29c62a658140d4b98cc2c917"
+				],
+				"threshold": 1
+			},
+			"targets": {
+				"keyids": [
+					"a3eba2113e37b749b908101bdb7b856a44f2853641830c0f939730aca3e30360"
+				],
+				"threshold": 1
+			},
+			"timestamp": {
+				"keyids": [
+					"b59406a55fbe2492022f2951dacd01fc7b400b7b41ec4028b8356161a5a71a33"
+				],
+				"threshold": 1
+			}
+		},
+		"spec_version": "1.0",
+		"version": 3
+	}
+}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/3.snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/3.snapshot.json
index c59a15c..7363452 100644
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/3.snapshot.json
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/3.snapshot.json
@@ -1 +1,30 @@
-{"signed":{"_type":"snapshot","expires":"2100-01-01T00:00:00Z","meta":{"root.json":{"hashes":{"sha512":"bfe96f67a4f04ee6466f17912d1011a88a8c3a27b24b9ad62121af5a3222cdbb09a8f9d82446498b4a13603d3b305e7278d51a59470422a4de361e375db8df84"},"length":1704,"version":2},"targets.json":{"hashes":{"sha512":"4660bb716c66653e60915e132972e9c60e000644c56d892f54303ccaf5392100d22a613e93c0acd196f230156d9278ce48cf4acc7b278e39d027bb77430a1474"},"length":841,"version":3}},"spec_version":"1.0","version":3},"signatures":[{"keyid":"7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321","sig":"1f8c0d14621c8ff42effa12de2e38cd5191cf54fdd6dcb9c748f96cb75c074f6412382f1e20ec066a7d7ed06181aec8938c0d3b2af54e5ec0381a42a53c39c02"}]}
\ No newline at end of file
+{
+	"signatures": [
+		{
+			"keyid": "d792ff8cf3c5d9a8fe0fdfa585b25028fa9f49aa29c62a658140d4b98cc2c917",
+			"sig": "42974be1e70b41809ab6c5bfaaef53508c3c1184cd045ee38cd737b0c9debaddbc0244731cbd208ead966561ab1103bae40d26fa3236ac974cb589ad77019c0e"
+		}
+	],
+	"signed": {
+		"_type": "snapshot",
+		"expires": "2100-01-01T00:00:00Z",
+		"meta": {
+			"root.json": {
+				"hashes": {
+					"sha512": "c113580e6b210d8cdaf93530870555cac34cd7a394a91ffd0462ed38326766f09c5712b1fb1c3ad53e7b2c24feac0180649b4fdcea7722e5c1ab05635709b4d4"
+				},
+				"length": 2117,
+				"version": 3
+			},
+			"targets.json": {
+				"hashes": {
+					"sha512": "33835f152dcc9ab1396e0f44dff841eca2c747dfd8cccc079dd0f4a88e7920f29cfaa3d895618c39463bed3997d6ba83c7791749483f2df8f3589fff3f4c379d"
+				},
+				"length": 990,
+				"version": 3
+			}
+		},
+		"spec_version": "1.0",
+		"version": 3
+	}
+}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/3.targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/3.targets.json
index 2980b4b..6c7e919 100644
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/3.targets.json
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/3.targets.json
@@ -1 +1,34 @@
-{"signed":{"_type":"targets","expires":"2100-01-01T00:00:00Z","spec_version":"1.0","targets":{"0":{"hashes":{"sha512":"31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"},"length":1},"1":{"hashes":{"sha512":"4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a"},"length":1},"2":{"hashes":{"sha512":"40b244112641dd78dd4f93b6c9190dd46e0099194d5a44257b7efad6ef9ff4683da1eda0244448cb343aa688f5d3efd7314dafe580ac0bcbf115aeca9e8dc114"},"length":1}},"version":3},"signatures":[{"keyid":"eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f","sig":"e908928beca0a61f7f33fb99fb74227373b2f45983aeed065b8e14256818d911c55443e2782a02ce351af5e8aaf9eec149815aed84ced089bde66f358382060e"}]}
\ No newline at end of file
+{
+	"signatures": [
+		{
+			"keyid": "a3eba2113e37b749b908101bdb7b856a44f2853641830c0f939730aca3e30360",
+			"sig": "09593c7b47f4dbf1e8ac949fa010279ffbbd36070a54a89b689378441e8111602d4236fa2962063778c82027d4746a8973ba8fea86e9c105190da9fa362d8b0c"
+		}
+	],
+	"signed": {
+		"_type": "targets",
+		"expires": "2100-01-01T00:00:00Z",
+		"spec_version": "1.0",
+		"targets": {
+			"0": {
+				"hashes": {
+					"sha512": "31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"
+				},
+				"length": 1
+			},
+			"1": {
+				"hashes": {
+					"sha512": "4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a"
+				},
+				"length": 1
+			},
+			"2": {
+				"hashes": {
+					"sha512": "40b244112641dd78dd4f93b6c9190dd46e0099194d5a44257b7efad6ef9ff4683da1eda0244448cb343aa688f5d3efd7314dafe580ac0bcbf115aeca9e8dc114"
+				},
+				"length": 1
+			}
+		},
+		"version": 3
+	}
+}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/4660bb716c66653e60915e132972e9c60e000644c56d892f54303ccaf5392100d22a613e93c0acd196f230156d9278ce48cf4acc7b278e39d027bb77430a1474.targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/4660bb716c66653e60915e132972e9c60e000644c56d892f54303ccaf5392100d22a613e93c0acd196f230156d9278ce48cf4acc7b278e39d027bb77430a1474.targets.json
deleted file mode 100644
index 2980b4b..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/4660bb716c66653e60915e132972e9c60e000644c56d892f54303ccaf5392100d22a613e93c0acd196f230156d9278ce48cf4acc7b278e39d027bb77430a1474.targets.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"targets","expires":"2100-01-01T00:00:00Z","spec_version":"1.0","targets":{"0":{"hashes":{"sha512":"31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"},"length":1},"1":{"hashes":{"sha512":"4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a"},"length":1},"2":{"hashes":{"sha512":"40b244112641dd78dd4f93b6c9190dd46e0099194d5a44257b7efad6ef9ff4683da1eda0244448cb343aa688f5d3efd7314dafe580ac0bcbf115aeca9e8dc114"},"length":1}},"version":3},"signatures":[{"keyid":"eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f","sig":"e908928beca0a61f7f33fb99fb74227373b2f45983aeed065b8e14256818d911c55443e2782a02ce351af5e8aaf9eec149815aed84ced089bde66f358382060e"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/4a09a98bfafccc0de35d0d4f683c817ee1d410b1432200cbfa8f6ec844d1ff00f183d27b4e4588f7239604a079ff0f4711fba15cceb02e69e1d928024462e112.targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/4a09a98bfafccc0de35d0d4f683c817ee1d410b1432200cbfa8f6ec844d1ff00f183d27b4e4588f7239604a079ff0f4711fba15cceb02e69e1d928024462e112.targets.json
deleted file mode 100644
index 633e87f..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/4a09a98bfafccc0de35d0d4f683c817ee1d410b1432200cbfa8f6ec844d1ff00f183d27b4e4588f7239604a079ff0f4711fba15cceb02e69e1d928024462e112.targets.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"targets","expires":"2100-01-01T00:00:00Z","spec_version":"1.0","targets":{"0":{"hashes":{"sha512":"31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"},"length":1}},"version":1},"signatures":[{"keyid":"eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f","sig":"09f3b7faeb4098137fd7fb365f1396307a7d9240d0df527f7fb4a2861c2bc869611636897146e0d2ba2afd9df348f4b99fb19dbe1ff16ce652d9617b09533806"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/6020ba3baf522dfaf99d316154045d133909ba9dfd0462cba10858cbf9386f30cd931d23f2c1533a41b686439dda02b33ef63fae1e7fe4090933b4e31b2c8b2e.snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/6020ba3baf522dfaf99d316154045d133909ba9dfd0462cba10858cbf9386f30cd931d23f2c1533a41b686439dda02b33ef63fae1e7fe4090933b4e31b2c8b2e.snapshot.json
deleted file mode 100644
index c59a15c..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/6020ba3baf522dfaf99d316154045d133909ba9dfd0462cba10858cbf9386f30cd931d23f2c1533a41b686439dda02b33ef63fae1e7fe4090933b4e31b2c8b2e.snapshot.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"snapshot","expires":"2100-01-01T00:00:00Z","meta":{"root.json":{"hashes":{"sha512":"bfe96f67a4f04ee6466f17912d1011a88a8c3a27b24b9ad62121af5a3222cdbb09a8f9d82446498b4a13603d3b305e7278d51a59470422a4de361e375db8df84"},"length":1704,"version":2},"targets.json":{"hashes":{"sha512":"4660bb716c66653e60915e132972e9c60e000644c56d892f54303ccaf5392100d22a613e93c0acd196f230156d9278ce48cf4acc7b278e39d027bb77430a1474"},"length":841,"version":3}},"spec_version":"1.0","version":3},"signatures":[{"keyid":"7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321","sig":"1f8c0d14621c8ff42effa12de2e38cd5191cf54fdd6dcb9c748f96cb75c074f6412382f1e20ec066a7d7ed06181aec8938c0d3b2af54e5ec0381a42a53c39c02"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/7ff09cead126fb7f2c923ef024074c51b626e2d3dfce31159312186d3c10c838faac51cae57c95e1032ede047800450eff71a0a8d3b45167640ebbe45cad4dcd.snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/7ff09cead126fb7f2c923ef024074c51b626e2d3dfce31159312186d3c10c838faac51cae57c95e1032ede047800450eff71a0a8d3b45167640ebbe45cad4dcd.snapshot.json
deleted file mode 100644
index 1a64206..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/7ff09cead126fb7f2c923ef024074c51b626e2d3dfce31159312186d3c10c838faac51cae57c95e1032ede047800450eff71a0a8d3b45167640ebbe45cad4dcd.snapshot.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"snapshot","expires":"2100-01-01T00:00:00Z","meta":{"root.json":{"hashes":{"sha512":"bfe96f67a4f04ee6466f17912d1011a88a8c3a27b24b9ad62121af5a3222cdbb09a8f9d82446498b4a13603d3b305e7278d51a59470422a4de361e375db8df84"},"length":1704,"version":2},"targets.json":{"hashes":{"sha512":"bfb9550cac278a45a1b7d88fc177831c289227c310c30fb5638d0946ba6f09b6942576e6c950e8c864d5ad1300fd446fb9fb1c3e05e6facf1794abfc72039da4"},"length":673,"version":2}},"spec_version":"1.0","version":2},"signatures":[{"keyid":"7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321","sig":"d30f405c3ff0c0917da5f6bce6d03e8f3ba521b0a545517ef3af0d451f88bced5985b119e6fc60dd4c714b43cfec0742471b9eff97d5200605b44a0976783106"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/bfb9550cac278a45a1b7d88fc177831c289227c310c30fb5638d0946ba6f09b6942576e6c950e8c864d5ad1300fd446fb9fb1c3e05e6facf1794abfc72039da4.targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/bfb9550cac278a45a1b7d88fc177831c289227c310c30fb5638d0946ba6f09b6942576e6c950e8c864d5ad1300fd446fb9fb1c3e05e6facf1794abfc72039da4.targets.json
deleted file mode 100644
index 31d08bd..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/bfb9550cac278a45a1b7d88fc177831c289227c310c30fb5638d0946ba6f09b6942576e6c950e8c864d5ad1300fd446fb9fb1c3e05e6facf1794abfc72039da4.targets.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"targets","expires":"2100-01-01T00:00:00Z","spec_version":"1.0","targets":{"0":{"hashes":{"sha512":"31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"},"length":1},"1":{"hashes":{"sha512":"4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a"},"length":1}},"version":2},"signatures":[{"keyid":"eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f","sig":"7b69960653d7dbacd867655f7802487d028430c4df53ca94a8eaa65cd4f84986532ab34ab6aa349f391dc03b0ef94c5af5bfc7ba3a428ddba581bd2c26dc9702"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/bfe96f67a4f04ee6466f17912d1011a88a8c3a27b24b9ad62121af5a3222cdbb09a8f9d82446498b4a13603d3b305e7278d51a59470422a4de361e375db8df84.root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/bfe96f67a4f04ee6466f17912d1011a88a8c3a27b24b9ad62121af5a3222cdbb09a8f9d82446498b4a13603d3b305e7278d51a59470422a4de361e375db8df84.root.json
deleted file mode 100644
index ecba9d9..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/bfe96f67a4f04ee6466f17912d1011a88a8c3a27b24b9ad62121af5a3222cdbb09a8f9d82446498b4a13603d3b305e7278d51a59470422a4de361e375db8df84.root.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"root","consistent_snapshot":true,"expires":"2100-01-01T00:00:00Z","keys":{"2ffb4fd85c3a009d7c42d4f074a9b5156e2242c421fa801fd81eda01c434d23f":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"4df070f02a97f5d0f0e7cbb3554e7ae0b6733a56ff7dfc1ac52094a3aded9c64"},"scheme":"ed25519"},"4e8daa3c2904f32d334729b603ded23b5cf950c20564a2a48b77c24dcde407c3":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"e382c952a736d52be2ab82e486d3f3b27e60e221b636087f3fc3cb71beda0ade"},"scheme":"ed25519"},"7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"88c224c1d6175f3dbb6870edd3e138ccf8f714d6cb6f4cccdaf74f989c207cef"},"scheme":"ed25519"},"eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"2cb97b1af650c5960ab9d5fa3e4192b8e8a3432df927f2ba30243930c786bb3c"},"scheme":"ed25519"}},"roles":{"root":{"keyids":["4e8daa3c2904f32d334729b603ded23b5cf950c20564a2a48b77c24dcde407c3"],"threshold":1},"snapshot":{"keyids":["7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321"],"threshold":1},"targets":{"keyids":["eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f"],"threshold":1},"timestamp":{"keyids":["2ffb4fd85c3a009d7c42d4f074a9b5156e2242c421fa801fd81eda01c434d23f"],"threshold":1}},"spec_version":"1.0","version":2},"signatures":[{"keyid":"4e8daa3c2904f32d334729b603ded23b5cf950c20564a2a48b77c24dcde407c3","sig":"1d4b8e3ba03158c64029e4f1d9e580905d1ed1a0c87242e09edd36ed6104ed8587b20bfe3a7669d040028149fe945818f150cff5ad302bdf6071e0bfb5ba5206"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/c30accb049704fa7b471e4c5869648158f3395b368898c8fa91c56c9e8838d9ffbb810e01cf648a04408a3fffa32125d4f0a16b3326e8c7bc86e6f1fbd5136a6.root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/c30accb049704fa7b471e4c5869648158f3395b368898c8fa91c56c9e8838d9ffbb810e01cf648a04408a3fffa32125d4f0a16b3326e8c7bc86e6f1fbd5136a6.root.json
deleted file mode 100644
index d6e3979..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/c30accb049704fa7b471e4c5869648158f3395b368898c8fa91c56c9e8838d9ffbb810e01cf648a04408a3fffa32125d4f0a16b3326e8c7bc86e6f1fbd5136a6.root.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"root","consistent_snapshot":true,"expires":"2100-01-01T00:00:00Z","keys":{"3901e5474c946f204ec6a239ad261a8ccab4949fc6178cef1d48eb01a040521d":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"e1cb1f371c8f7a31dd0b39309c5d02af11ffaa1a7c71778d2b885ce77757a5e3"},"scheme":"ed25519"},"4e8daa3c2904f32d334729b603ded23b5cf950c20564a2a48b77c24dcde407c3":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"e382c952a736d52be2ab82e486d3f3b27e60e221b636087f3fc3cb71beda0ade"},"scheme":"ed25519"},"7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"88c224c1d6175f3dbb6870edd3e138ccf8f714d6cb6f4cccdaf74f989c207cef"},"scheme":"ed25519"},"eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"2cb97b1af650c5960ab9d5fa3e4192b8e8a3432df927f2ba30243930c786bb3c"},"scheme":"ed25519"}},"roles":{"root":{"keyids":["4e8daa3c2904f32d334729b603ded23b5cf950c20564a2a48b77c24dcde407c3"],"threshold":1},"snapshot":{"keyids":["7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321"],"threshold":1},"targets":{"keyids":["eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f"],"threshold":1},"timestamp":{"keyids":["3901e5474c946f204ec6a239ad261a8ccab4949fc6178cef1d48eb01a040521d"],"threshold":1}},"spec_version":"1.0","version":1},"signatures":[{"keyid":"4e8daa3c2904f32d334729b603ded23b5cf950c20564a2a48b77c24dcde407c3","sig":"ba1c7544af8cdee5cb70eee5bf7871d20b34ef1c480854513e9590746ad2686db9bec7fc1259a0f5206e113dc4aab18fc251d173fa0b3cbfdb95ee92d5c5d50b"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/root.json
index ecba9d9..8ac5eb0 100644
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/root.json
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/root.json
@@ -1 +1,83 @@
-{"signed":{"_type":"root","consistent_snapshot":true,"expires":"2100-01-01T00:00:00Z","keys":{"2ffb4fd85c3a009d7c42d4f074a9b5156e2242c421fa801fd81eda01c434d23f":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"4df070f02a97f5d0f0e7cbb3554e7ae0b6733a56ff7dfc1ac52094a3aded9c64"},"scheme":"ed25519"},"4e8daa3c2904f32d334729b603ded23b5cf950c20564a2a48b77c24dcde407c3":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"e382c952a736d52be2ab82e486d3f3b27e60e221b636087f3fc3cb71beda0ade"},"scheme":"ed25519"},"7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"88c224c1d6175f3dbb6870edd3e138ccf8f714d6cb6f4cccdaf74f989c207cef"},"scheme":"ed25519"},"eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"2cb97b1af650c5960ab9d5fa3e4192b8e8a3432df927f2ba30243930c786bb3c"},"scheme":"ed25519"}},"roles":{"root":{"keyids":["4e8daa3c2904f32d334729b603ded23b5cf950c20564a2a48b77c24dcde407c3"],"threshold":1},"snapshot":{"keyids":["7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321"],"threshold":1},"targets":{"keyids":["eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f"],"threshold":1},"timestamp":{"keyids":["2ffb4fd85c3a009d7c42d4f074a9b5156e2242c421fa801fd81eda01c434d23f"],"threshold":1}},"spec_version":"1.0","version":2},"signatures":[{"keyid":"4e8daa3c2904f32d334729b603ded23b5cf950c20564a2a48b77c24dcde407c3","sig":"1d4b8e3ba03158c64029e4f1d9e580905d1ed1a0c87242e09edd36ed6104ed8587b20bfe3a7669d040028149fe945818f150cff5ad302bdf6071e0bfb5ba5206"}]}
\ No newline at end of file
+{
+	"signatures": [
+		{
+			"keyid": "4c663b6d0b9f2c74a19b6791c1417c8d1916e2d84461be1a8148e4386c89582d",
+			"sig": "46ef3256d2df1f7259ec3044030cc6af71536aee4976b8858a46b0f0e98763679794546bcc21736231c0dac8cfbad936bdd18437d02a1c97e7ef347c16ddeb0c"
+		}
+	],
+	"signed": {
+		"_type": "root",
+		"consistent_snapshot": true,
+		"expires": "2100-01-01T00:00:00Z",
+		"keys": {
+			"4c663b6d0b9f2c74a19b6791c1417c8d1916e2d84461be1a8148e4386c89582d": {
+				"keyid_hash_algorithms": [
+					"sha256"
+				],
+				"keytype": "ed25519",
+				"keyval": {
+					"public": "153986a7370e002f377dd68797e7466c421180c1571e233de2f8ab41c8af4f54"
+				},
+				"scheme": "ed25519"
+			},
+			"a3eba2113e37b749b908101bdb7b856a44f2853641830c0f939730aca3e30360": {
+				"keyid_hash_algorithms": [
+					"sha256"
+				],
+				"keytype": "ed25519",
+				"keyval": {
+					"public": "aee574e56780ea1709a8b56e02d4ffdd9a3a1deaed61e2eb0701f376a4422e42"
+				},
+				"scheme": "ed25519"
+			},
+			"b59406a55fbe2492022f2951dacd01fc7b400b7b41ec4028b8356161a5a71a33": {
+				"keyid_hash_algorithms": [
+					"sha256"
+				],
+				"keytype": "ed25519",
+				"keyval": {
+					"public": "8656ad20568cd3534c405e4d9a84b0c6e6163f7f66434df77416502835b9b160"
+				},
+				"scheme": "ed25519"
+			},
+			"d792ff8cf3c5d9a8fe0fdfa585b25028fa9f49aa29c62a658140d4b98cc2c917": {
+				"keyid_hash_algorithms": [
+					"sha256"
+				],
+				"keytype": "ed25519",
+				"keyval": {
+					"public": "d482fa4805a50870aa1356ace6b764f7ab47ed4dc38f49b1a189afa25f179e94"
+				},
+				"scheme": "ed25519"
+			}
+		},
+		"roles": {
+			"root": {
+				"keyids": [
+					"4c663b6d0b9f2c74a19b6791c1417c8d1916e2d84461be1a8148e4386c89582d"
+				],
+				"threshold": 1
+			},
+			"snapshot": {
+				"keyids": [
+					"d792ff8cf3c5d9a8fe0fdfa585b25028fa9f49aa29c62a658140d4b98cc2c917"
+				],
+				"threshold": 1
+			},
+			"targets": {
+				"keyids": [
+					"a3eba2113e37b749b908101bdb7b856a44f2853641830c0f939730aca3e30360"
+				],
+				"threshold": 1
+			},
+			"timestamp": {
+				"keyids": [
+					"b59406a55fbe2492022f2951dacd01fc7b400b7b41ec4028b8356161a5a71a33"
+				],
+				"threshold": 1
+			}
+		},
+		"spec_version": "1.0",
+		"version": 3
+	}
+}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/snapshot.json
index c59a15c..7363452 100644
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/snapshot.json
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/snapshot.json
@@ -1 +1,30 @@
-{"signed":{"_type":"snapshot","expires":"2100-01-01T00:00:00Z","meta":{"root.json":{"hashes":{"sha512":"bfe96f67a4f04ee6466f17912d1011a88a8c3a27b24b9ad62121af5a3222cdbb09a8f9d82446498b4a13603d3b305e7278d51a59470422a4de361e375db8df84"},"length":1704,"version":2},"targets.json":{"hashes":{"sha512":"4660bb716c66653e60915e132972e9c60e000644c56d892f54303ccaf5392100d22a613e93c0acd196f230156d9278ce48cf4acc7b278e39d027bb77430a1474"},"length":841,"version":3}},"spec_version":"1.0","version":3},"signatures":[{"keyid":"7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321","sig":"1f8c0d14621c8ff42effa12de2e38cd5191cf54fdd6dcb9c748f96cb75c074f6412382f1e20ec066a7d7ed06181aec8938c0d3b2af54e5ec0381a42a53c39c02"}]}
\ No newline at end of file
+{
+	"signatures": [
+		{
+			"keyid": "d792ff8cf3c5d9a8fe0fdfa585b25028fa9f49aa29c62a658140d4b98cc2c917",
+			"sig": "42974be1e70b41809ab6c5bfaaef53508c3c1184cd045ee38cd737b0c9debaddbc0244731cbd208ead966561ab1103bae40d26fa3236ac974cb589ad77019c0e"
+		}
+	],
+	"signed": {
+		"_type": "snapshot",
+		"expires": "2100-01-01T00:00:00Z",
+		"meta": {
+			"root.json": {
+				"hashes": {
+					"sha512": "c113580e6b210d8cdaf93530870555cac34cd7a394a91ffd0462ed38326766f09c5712b1fb1c3ad53e7b2c24feac0180649b4fdcea7722e5c1ab05635709b4d4"
+				},
+				"length": 2117,
+				"version": 3
+			},
+			"targets.json": {
+				"hashes": {
+					"sha512": "33835f152dcc9ab1396e0f44dff841eca2c747dfd8cccc079dd0f4a88e7920f29cfaa3d895618c39463bed3997d6ba83c7791749483f2df8f3589fff3f4c379d"
+				},
+				"length": 990,
+				"version": 3
+			}
+		},
+		"spec_version": "1.0",
+		"version": 3
+	}
+}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/targets.json
index 2980b4b..6c7e919 100644
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/targets.json
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/targets.json
@@ -1 +1,34 @@
-{"signed":{"_type":"targets","expires":"2100-01-01T00:00:00Z","spec_version":"1.0","targets":{"0":{"hashes":{"sha512":"31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"},"length":1},"1":{"hashes":{"sha512":"4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a"},"length":1},"2":{"hashes":{"sha512":"40b244112641dd78dd4f93b6c9190dd46e0099194d5a44257b7efad6ef9ff4683da1eda0244448cb343aa688f5d3efd7314dafe580ac0bcbf115aeca9e8dc114"},"length":1}},"version":3},"signatures":[{"keyid":"eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f","sig":"e908928beca0a61f7f33fb99fb74227373b2f45983aeed065b8e14256818d911c55443e2782a02ce351af5e8aaf9eec149815aed84ced089bde66f358382060e"}]}
\ No newline at end of file
+{
+	"signatures": [
+		{
+			"keyid": "a3eba2113e37b749b908101bdb7b856a44f2853641830c0f939730aca3e30360",
+			"sig": "09593c7b47f4dbf1e8ac949fa010279ffbbd36070a54a89b689378441e8111602d4236fa2962063778c82027d4746a8973ba8fea86e9c105190da9fa362d8b0c"
+		}
+	],
+	"signed": {
+		"_type": "targets",
+		"expires": "2100-01-01T00:00:00Z",
+		"spec_version": "1.0",
+		"targets": {
+			"0": {
+				"hashes": {
+					"sha512": "31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"
+				},
+				"length": 1
+			},
+			"1": {
+				"hashes": {
+					"sha512": "4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a"
+				},
+				"length": 1
+			},
+			"2": {
+				"hashes": {
+					"sha512": "40b244112641dd78dd4f93b6c9190dd46e0099194d5a44257b7efad6ef9ff4683da1eda0244448cb343aa688f5d3efd7314dafe580ac0bcbf115aeca9e8dc114"
+				},
+				"length": 1
+			}
+		},
+		"version": 3
+	}
+}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/targets/0.0 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/targets/0.0
deleted file mode 100644
index c227083..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/targets/0.0
+++ /dev/null
@@ -1 +0,0 @@
-0
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/targets/0.1 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/targets/0.1
deleted file mode 100644
index 56a6051..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/targets/0.1
+++ /dev/null
@@ -1 +0,0 @@
-1
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/targets/0.2 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/targets/0.2
deleted file mode 100644
index d8263ee..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/targets/0.2
+++ /dev/null
@@ -1 +0,0 @@
-2
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/targets/31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99.0 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/targets/31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99.0
deleted file mode 100644
index c227083..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/targets/31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99.0
+++ /dev/null
@@ -1 +0,0 @@
-0
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/targets/31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99.0 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/targets/31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99.0
new file mode 120000
index 0000000..de9aac3
--- /dev/null
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/targets/31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99.0
@@ -0,0 +1 @@
+../../../1/repository/targets/31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99.0
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/targets/4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a.1 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/targets/4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a.1
deleted file mode 100644
index 56a6051..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/targets/4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a.1
+++ /dev/null
@@ -1 +0,0 @@
-1
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/targets/4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a.1 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/targets/4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a.1
new file mode 120000
index 0000000..2ebb2d3
--- /dev/null
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/targets/4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a.1
@@ -0,0 +1 @@
+../../../1/repository/targets/4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a.1
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/timestamp.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/timestamp.json
index 82e0c06..8107146 100644
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/timestamp.json
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/2/repository/timestamp.json
@@ -1 +1,23 @@
-{"signed":{"_type":"timestamp","expires":"2100-01-01T00:00:00Z","meta":{"snapshot.json":{"hashes":{"sha512":"6020ba3baf522dfaf99d316154045d133909ba9dfd0462cba10858cbf9386f30cd931d23f2c1533a41b686439dda02b33ef63fae1e7fe4090933b4e31b2c8b2e"},"length":719,"version":3}},"spec_version":"1.0","version":3},"signatures":[{"keyid":"2ffb4fd85c3a009d7c42d4f074a9b5156e2242c421fa801fd81eda01c434d23f","sig":"3ce784384a6af69fad7cfabdc10f14b33e91a511d0196c25c8e5d553ffc871bb9ed33d146590685b6b16d2ba4820526e410235b97afb611fcec3ec0300903800"}]}
\ No newline at end of file
+{
+	"signatures": [
+		{
+			"keyid": "b59406a55fbe2492022f2951dacd01fc7b400b7b41ec4028b8356161a5a71a33",
+			"sig": "6344ddf5432d68616adb91cb81ad5017d17d95c238f15e4a5fe291e145d19d30b4834917a233c4c897ede7ba2d61dd23cdb285134de2b09b84ab62e8fea0120a"
+		}
+	],
+	"signed": {
+		"_type": "timestamp",
+		"expires": "2100-01-01T00:00:00Z",
+		"meta": {
+			"snapshot.json": {
+				"hashes": {
+					"sha512": "78828a5b8f961563240c4037cb8c90778ec5b14c54fbd2fc4e3c9ace67c55061d23cb532713ce23bfa71c1699f33dba928046749c1a70b0bf83688df12850353"
+				},
+				"length": 847,
+				"version": 3
+			}
+		},
+		"spec_version": "1.0",
+		"version": 3
+	}
+}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/keys/root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/keys/root.json
deleted file mode 100644
index 819197f..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/keys/root.json
+++ /dev/null
@@ -1,27 +0,0 @@
-{
-	"encrypted": false,
-	"data": [
-		{
-			"keytype": "ed25519",
-			"scheme": "ed25519",
-			"keyid_hash_algorithms": [
-				"sha512"
-			],
-			"keyval": {
-				"public": "e382c952a736d52be2ab82e486d3f3b27e60e221b636087f3fc3cb71beda0ade",
-				"private": "17bc6c778809d7d05b16c857239511e918dc1c96e221d3433e7c8f8e17f2b197e382c952a736d52be2ab82e486d3f3b27e60e221b636087f3fc3cb71beda0ade"
-			}
-		},
-		{
-			"keytype": "ed25519",
-			"scheme": "ed25519",
-			"keyid_hash_algorithms": [
-				"sha512"
-			],
-			"keyval": {
-				"public": "d856ec7d531a2fb84e78b6030efff92ee2b152b7bc8708bbbd32de155e60469d",
-				"private": "5c5812258adcf9ba2b28605677759410d73d5ef047d2d3176d89af4c062952fdd856ec7d531a2fb84e78b6030efff92ee2b152b7bc8708bbbd32de155e60469d"
-			}
-		}
-	]
-}
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/keys/snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/keys/snapshot.json
deleted file mode 100644
index 45bea1e..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/keys/snapshot.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
-	"encrypted": false,
-	"data": [
-		{
-			"keytype": "ed25519",
-			"scheme": "ed25519",
-			"keyid_hash_algorithms": [
-				"sha512"
-			],
-			"keyval": {
-				"public": "88c224c1d6175f3dbb6870edd3e138ccf8f714d6cb6f4cccdaf74f989c207cef",
-				"private": "56943269321253b65cbc2fb7a476ce165283fcb7fec69d977f131c96ec410ebe88c224c1d6175f3dbb6870edd3e138ccf8f714d6cb6f4cccdaf74f989c207cef"
-			}
-		}
-	]
-}
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/keys/targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/keys/targets.json
deleted file mode 100644
index c24ecf5..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/keys/targets.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
-	"encrypted": false,
-	"data": [
-		{
-			"keytype": "ed25519",
-			"scheme": "ed25519",
-			"keyid_hash_algorithms": [
-				"sha512"
-			],
-			"keyval": {
-				"public": "2cb97b1af650c5960ab9d5fa3e4192b8e8a3432df927f2ba30243930c786bb3c",
-				"private": "9f530290cb71059f1fee0147e88076caa53dceddfcde4b826d61dd2a8945ad712cb97b1af650c5960ab9d5fa3e4192b8e8a3432df927f2ba30243930c786bb3c"
-			}
-		}
-	]
-}
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/keys/timestamp.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/keys/timestamp.json
deleted file mode 100644
index dd1cc81..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/keys/timestamp.json
+++ /dev/null
@@ -1 +0,0 @@
-{"encrypted":false,"data":[{"keytype":"ed25519","scheme":"ed25519","keyid_hash_algorithms":["sha512"],"keyval":{"public":"4df070f02a97f5d0f0e7cbb3554e7ae0b6733a56ff7dfc1ac52094a3aded9c64","private":"2393a13f038713a2d2ae7a80d0bdf5bd8e018e35967c3bdfd8ca8b115e47c01d4df070f02a97f5d0f0e7cbb3554e7ae0b6733a56ff7dfc1ac52094a3aded9c64"}}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/1.root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/1.root.json
deleted file mode 100644
index d6e3979..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/1.root.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"root","consistent_snapshot":true,"expires":"2100-01-01T00:00:00Z","keys":{"3901e5474c946f204ec6a239ad261a8ccab4949fc6178cef1d48eb01a040521d":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"e1cb1f371c8f7a31dd0b39309c5d02af11ffaa1a7c71778d2b885ce77757a5e3"},"scheme":"ed25519"},"4e8daa3c2904f32d334729b603ded23b5cf950c20564a2a48b77c24dcde407c3":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"e382c952a736d52be2ab82e486d3f3b27e60e221b636087f3fc3cb71beda0ade"},"scheme":"ed25519"},"7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"88c224c1d6175f3dbb6870edd3e138ccf8f714d6cb6f4cccdaf74f989c207cef"},"scheme":"ed25519"},"eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"2cb97b1af650c5960ab9d5fa3e4192b8e8a3432df927f2ba30243930c786bb3c"},"scheme":"ed25519"}},"roles":{"root":{"keyids":["4e8daa3c2904f32d334729b603ded23b5cf950c20564a2a48b77c24dcde407c3"],"threshold":1},"snapshot":{"keyids":["7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321"],"threshold":1},"targets":{"keyids":["eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f"],"threshold":1},"timestamp":{"keyids":["3901e5474c946f204ec6a239ad261a8ccab4949fc6178cef1d48eb01a040521d"],"threshold":1}},"spec_version":"1.0","version":1},"signatures":[{"keyid":"4e8daa3c2904f32d334729b603ded23b5cf950c20564a2a48b77c24dcde407c3","sig":"ba1c7544af8cdee5cb70eee5bf7871d20b34ef1c480854513e9590746ad2686db9bec7fc1259a0f5206e113dc4aab18fc251d173fa0b3cbfdb95ee92d5c5d50b"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/1.root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/1.root.json
new file mode 120000
index 0000000..fb4fe81
--- /dev/null
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/1.root.json
@@ -0,0 +1 @@
+../../2/repository/1.root.json
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/1.snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/1.snapshot.json
deleted file mode 100644
index 6785251..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/1.snapshot.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"snapshot","expires":"2100-01-01T00:00:00Z","meta":{"root.json":{"hashes":{"sha512":"c30accb049704fa7b471e4c5869648158f3395b368898c8fa91c56c9e8838d9ffbb810e01cf648a04408a3fffa32125d4f0a16b3326e8c7bc86e6f1fbd5136a6"},"length":1704,"version":1},"targets.json":{"hashes":{"sha512":"4a09a98bfafccc0de35d0d4f683c817ee1d410b1432200cbfa8f6ec844d1ff00f183d27b4e4588f7239604a079ff0f4711fba15cceb02e69e1d928024462e112"},"length":505,"version":1}},"spec_version":"1.0","version":1},"signatures":[{"keyid":"7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321","sig":"00f4cadd08a9c414b112594d5efebecff11dac46b0e68907da7837eebd46e4f929b068dc53785f54adfba503c55a298678f4ebb7ff10a76c05ada43019af7206"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/1.snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/1.snapshot.json
new file mode 120000
index 0000000..4dfb0d0
--- /dev/null
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/1.snapshot.json
@@ -0,0 +1 @@
+../../2/repository/1.snapshot.json
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/1.targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/1.targets.json
deleted file mode 100644
index 633e87f..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/1.targets.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"targets","expires":"2100-01-01T00:00:00Z","spec_version":"1.0","targets":{"0":{"hashes":{"sha512":"31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"},"length":1}},"version":1},"signatures":[{"keyid":"eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f","sig":"09f3b7faeb4098137fd7fb365f1396307a7d9240d0df527f7fb4a2861c2bc869611636897146e0d2ba2afd9df348f4b99fb19dbe1ff16ce652d9617b09533806"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/1.targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/1.targets.json
new file mode 120000
index 0000000..1eeb564
--- /dev/null
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/1.targets.json
@@ -0,0 +1 @@
+../../2/repository/1.targets.json
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/2.root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/2.root.json
deleted file mode 100644
index ecba9d9..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/2.root.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"root","consistent_snapshot":true,"expires":"2100-01-01T00:00:00Z","keys":{"2ffb4fd85c3a009d7c42d4f074a9b5156e2242c421fa801fd81eda01c434d23f":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"4df070f02a97f5d0f0e7cbb3554e7ae0b6733a56ff7dfc1ac52094a3aded9c64"},"scheme":"ed25519"},"4e8daa3c2904f32d334729b603ded23b5cf950c20564a2a48b77c24dcde407c3":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"e382c952a736d52be2ab82e486d3f3b27e60e221b636087f3fc3cb71beda0ade"},"scheme":"ed25519"},"7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"88c224c1d6175f3dbb6870edd3e138ccf8f714d6cb6f4cccdaf74f989c207cef"},"scheme":"ed25519"},"eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"2cb97b1af650c5960ab9d5fa3e4192b8e8a3432df927f2ba30243930c786bb3c"},"scheme":"ed25519"}},"roles":{"root":{"keyids":["4e8daa3c2904f32d334729b603ded23b5cf950c20564a2a48b77c24dcde407c3"],"threshold":1},"snapshot":{"keyids":["7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321"],"threshold":1},"targets":{"keyids":["eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f"],"threshold":1},"timestamp":{"keyids":["2ffb4fd85c3a009d7c42d4f074a9b5156e2242c421fa801fd81eda01c434d23f"],"threshold":1}},"spec_version":"1.0","version":2},"signatures":[{"keyid":"4e8daa3c2904f32d334729b603ded23b5cf950c20564a2a48b77c24dcde407c3","sig":"1d4b8e3ba03158c64029e4f1d9e580905d1ed1a0c87242e09edd36ed6104ed8587b20bfe3a7669d040028149fe945818f150cff5ad302bdf6071e0bfb5ba5206"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/2.root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/2.root.json
new file mode 120000
index 0000000..55f8b9d
--- /dev/null
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/2.root.json
@@ -0,0 +1 @@
+../../2/repository/2.root.json
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/2.snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/2.snapshot.json
deleted file mode 100644
index 1a64206..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/2.snapshot.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"snapshot","expires":"2100-01-01T00:00:00Z","meta":{"root.json":{"hashes":{"sha512":"bfe96f67a4f04ee6466f17912d1011a88a8c3a27b24b9ad62121af5a3222cdbb09a8f9d82446498b4a13603d3b305e7278d51a59470422a4de361e375db8df84"},"length":1704,"version":2},"targets.json":{"hashes":{"sha512":"bfb9550cac278a45a1b7d88fc177831c289227c310c30fb5638d0946ba6f09b6942576e6c950e8c864d5ad1300fd446fb9fb1c3e05e6facf1794abfc72039da4"},"length":673,"version":2}},"spec_version":"1.0","version":2},"signatures":[{"keyid":"7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321","sig":"d30f405c3ff0c0917da5f6bce6d03e8f3ba521b0a545517ef3af0d451f88bced5985b119e6fc60dd4c714b43cfec0742471b9eff97d5200605b44a0976783106"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/2.snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/2.snapshot.json
new file mode 120000
index 0000000..65445cb
--- /dev/null
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/2.snapshot.json
@@ -0,0 +1 @@
+../../2/repository/2.snapshot.json
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/2.targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/2.targets.json
deleted file mode 100644
index 31d08bd..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/2.targets.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"targets","expires":"2100-01-01T00:00:00Z","spec_version":"1.0","targets":{"0":{"hashes":{"sha512":"31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"},"length":1},"1":{"hashes":{"sha512":"4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a"},"length":1}},"version":2},"signatures":[{"keyid":"eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f","sig":"7b69960653d7dbacd867655f7802487d028430c4df53ca94a8eaa65cd4f84986532ab34ab6aa349f391dc03b0ef94c5af5bfc7ba3a428ddba581bd2c26dc9702"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/2.targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/2.targets.json
new file mode 120000
index 0000000..3600a0f
--- /dev/null
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/2.targets.json
@@ -0,0 +1 @@
+../../2/repository/2.targets.json
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/27b3a3586c86fdd05e941098c10f71419f531d94bac36a272b5b978877652e7994ec657333d2e3894a2c1f53263eec729c8595f492f67b3eaafcc47b75e746c8.snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/27b3a3586c86fdd05e941098c10f71419f531d94bac36a272b5b978877652e7994ec657333d2e3894a2c1f53263eec729c8595f492f67b3eaafcc47b75e746c8.snapshot.json
deleted file mode 100644
index 6785251..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/27b3a3586c86fdd05e941098c10f71419f531d94bac36a272b5b978877652e7994ec657333d2e3894a2c1f53263eec729c8595f492f67b3eaafcc47b75e746c8.snapshot.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"snapshot","expires":"2100-01-01T00:00:00Z","meta":{"root.json":{"hashes":{"sha512":"c30accb049704fa7b471e4c5869648158f3395b368898c8fa91c56c9e8838d9ffbb810e01cf648a04408a3fffa32125d4f0a16b3326e8c7bc86e6f1fbd5136a6"},"length":1704,"version":1},"targets.json":{"hashes":{"sha512":"4a09a98bfafccc0de35d0d4f683c817ee1d410b1432200cbfa8f6ec844d1ff00f183d27b4e4588f7239604a079ff0f4711fba15cceb02e69e1d928024462e112"},"length":505,"version":1}},"spec_version":"1.0","version":1},"signatures":[{"keyid":"7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321","sig":"00f4cadd08a9c414b112594d5efebecff11dac46b0e68907da7837eebd46e4f929b068dc53785f54adfba503c55a298678f4ebb7ff10a76c05ada43019af7206"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/3.root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/3.root.json
deleted file mode 100644
index e3c13aa..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/3.root.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"root","consistent_snapshot":true,"expires":"2100-01-01T00:00:00Z","keys":{"2ffb4fd85c3a009d7c42d4f074a9b5156e2242c421fa801fd81eda01c434d23f":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"4df070f02a97f5d0f0e7cbb3554e7ae0b6733a56ff7dfc1ac52094a3aded9c64"},"scheme":"ed25519"},"7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"88c224c1d6175f3dbb6870edd3e138ccf8f714d6cb6f4cccdaf74f989c207cef"},"scheme":"ed25519"},"d9e08f115261bf9e9c92cda6faf73313c6ac20813b5094d989e10d9df43a2385":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"d856ec7d531a2fb84e78b6030efff92ee2b152b7bc8708bbbd32de155e60469d"},"scheme":"ed25519"},"eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"2cb97b1af650c5960ab9d5fa3e4192b8e8a3432df927f2ba30243930c786bb3c"},"scheme":"ed25519"}},"roles":{"root":{"keyids":["d9e08f115261bf9e9c92cda6faf73313c6ac20813b5094d989e10d9df43a2385"],"threshold":1},"snapshot":{"keyids":["7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321"],"threshold":1},"targets":{"keyids":["eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f"],"threshold":1},"timestamp":{"keyids":["2ffb4fd85c3a009d7c42d4f074a9b5156e2242c421fa801fd81eda01c434d23f"],"threshold":1}},"spec_version":"1.0","version":3},"signatures":[{"keyid":"4e8daa3c2904f32d334729b603ded23b5cf950c20564a2a48b77c24dcde407c3","sig":"62f7995910e61d7e29f41fefaf1899c70591da779e163913ddcf3b212bf09890b25ff3f3f276b44c8a41393c9fb3dce484722a7811c7c2b8e17391c5cfd7cf06"},{"keyid":"d9e08f115261bf9e9c92cda6faf73313c6ac20813b5094d989e10d9df43a2385","sig":"c051c45a6a2359f8004dc1261e5a7029ced6270dc1812bd274d5bdfeae597eb3d902c666e3b434f18e7607005d1e6c1b88d1613cbcaef40b55224a75c1ba0701"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/3.root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/3.root.json
new file mode 120000
index 0000000..b4564b7
--- /dev/null
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/3.root.json
@@ -0,0 +1 @@
+../../2/repository/3.root.json
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/3.snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/3.snapshot.json
deleted file mode 100644
index c59a15c..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/3.snapshot.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"snapshot","expires":"2100-01-01T00:00:00Z","meta":{"root.json":{"hashes":{"sha512":"bfe96f67a4f04ee6466f17912d1011a88a8c3a27b24b9ad62121af5a3222cdbb09a8f9d82446498b4a13603d3b305e7278d51a59470422a4de361e375db8df84"},"length":1704,"version":2},"targets.json":{"hashes":{"sha512":"4660bb716c66653e60915e132972e9c60e000644c56d892f54303ccaf5392100d22a613e93c0acd196f230156d9278ce48cf4acc7b278e39d027bb77430a1474"},"length":841,"version":3}},"spec_version":"1.0","version":3},"signatures":[{"keyid":"7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321","sig":"1f8c0d14621c8ff42effa12de2e38cd5191cf54fdd6dcb9c748f96cb75c074f6412382f1e20ec066a7d7ed06181aec8938c0d3b2af54e5ec0381a42a53c39c02"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/3.snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/3.snapshot.json
new file mode 120000
index 0000000..7d86b95
--- /dev/null
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/3.snapshot.json
@@ -0,0 +1 @@
+../../2/repository/3.snapshot.json
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/3.targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/3.targets.json
deleted file mode 100644
index 2980b4b..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/3.targets.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"targets","expires":"2100-01-01T00:00:00Z","spec_version":"1.0","targets":{"0":{"hashes":{"sha512":"31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"},"length":1},"1":{"hashes":{"sha512":"4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a"},"length":1},"2":{"hashes":{"sha512":"40b244112641dd78dd4f93b6c9190dd46e0099194d5a44257b7efad6ef9ff4683da1eda0244448cb343aa688f5d3efd7314dafe580ac0bcbf115aeca9e8dc114"},"length":1}},"version":3},"signatures":[{"keyid":"eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f","sig":"e908928beca0a61f7f33fb99fb74227373b2f45983aeed065b8e14256818d911c55443e2782a02ce351af5e8aaf9eec149815aed84ced089bde66f358382060e"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/3.targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/3.targets.json
new file mode 120000
index 0000000..d1df10e
--- /dev/null
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/3.targets.json
@@ -0,0 +1 @@
+../../2/repository/3.targets.json
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/4.root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/4.root.json
new file mode 100644
index 0000000..a889f17
--- /dev/null
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/4.root.json
@@ -0,0 +1,83 @@
+{
+	"signatures": [
+		{
+			"keyid": "4c663b6d0b9f2c74a19b6791c1417c8d1916e2d84461be1a8148e4386c89582d",
+			"sig": "78594f8ff3160bfef32c85e58a795d8dc6831e4ec2596e6a93d17f2bcb183c3c2e2ec99a28cf9467ab9a947c5803f3c16703f9fada8b43f33ccd3c49bf8fe707"
+		}
+	],
+	"signed": {
+		"_type": "root",
+		"consistent_snapshot": true,
+		"expires": "2100-01-01T00:00:00Z",
+		"keys": {
+			"4c663b6d0b9f2c74a19b6791c1417c8d1916e2d84461be1a8148e4386c89582d": {
+				"keyid_hash_algorithms": [
+					"sha256"
+				],
+				"keytype": "ed25519",
+				"keyval": {
+					"public": "153986a7370e002f377dd68797e7466c421180c1571e233de2f8ab41c8af4f54"
+				},
+				"scheme": "ed25519"
+			},
+			"a3eba2113e37b749b908101bdb7b856a44f2853641830c0f939730aca3e30360": {
+				"keyid_hash_algorithms": [
+					"sha256"
+				],
+				"keytype": "ed25519",
+				"keyval": {
+					"public": "aee574e56780ea1709a8b56e02d4ffdd9a3a1deaed61e2eb0701f376a4422e42"
+				},
+				"scheme": "ed25519"
+			},
+			"b59406a55fbe2492022f2951dacd01fc7b400b7b41ec4028b8356161a5a71a33": {
+				"keyid_hash_algorithms": [
+					"sha256"
+				],
+				"keytype": "ed25519",
+				"keyval": {
+					"public": "8656ad20568cd3534c405e4d9a84b0c6e6163f7f66434df77416502835b9b160"
+				},
+				"scheme": "ed25519"
+			},
+			"bed15bf57ba4deb4e09667099d45d119504420983d16fd0927ebfb0c25184e7f": {
+				"keyid_hash_algorithms": [
+					"sha256"
+				],
+				"keytype": "ed25519",
+				"keyval": {
+					"public": "722dbc861813bb5b568524d62083e875c08e66fed1694d9161d253fa163dd86f"
+				},
+				"scheme": "ed25519"
+			}
+		},
+		"roles": {
+			"root": {
+				"keyids": [
+					"4c663b6d0b9f2c74a19b6791c1417c8d1916e2d84461be1a8148e4386c89582d"
+				],
+				"threshold": 1
+			},
+			"snapshot": {
+				"keyids": [
+					"bed15bf57ba4deb4e09667099d45d119504420983d16fd0927ebfb0c25184e7f"
+				],
+				"threshold": 1
+			},
+			"targets": {
+				"keyids": [
+					"a3eba2113e37b749b908101bdb7b856a44f2853641830c0f939730aca3e30360"
+				],
+				"threshold": 1
+			},
+			"timestamp": {
+				"keyids": [
+					"b59406a55fbe2492022f2951dacd01fc7b400b7b41ec4028b8356161a5a71a33"
+				],
+				"threshold": 1
+			}
+		},
+		"spec_version": "1.0",
+		"version": 4
+	}
+}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/4.snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/4.snapshot.json
index 3e27316..dce624d 100644
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/4.snapshot.json
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/4.snapshot.json
@@ -1 +1,30 @@
-{"signed":{"_type":"snapshot","expires":"2100-01-01T00:00:00Z","meta":{"root.json":{"hashes":{"sha512":"442997801bc8613be35f2da13622ee110d2bb4ad2638e7ce327e218352bcd78a535294e6cabfa43628e27d419bdaf15b084fa3ca7da8faa2b5af6ca4f144f29f"},"length":1918,"version":3},"targets.json":{"hashes":{"sha512":"ceff5553a373f97d9ac2fef9162e04941461c308c55821918c6e7113cfdaddc4fb1f478ef16360cc92e0e7e37f7bc3a68a8483d6c40141e7c5c9a5eebddb1ae5"},"length":1009,"version":4}},"spec_version":"1.0","version":4},"signatures":[{"keyid":"7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321","sig":"bc8851b180b933f967c3bae4ff24f86c464cbfb470e6ef03594c5d6133987009ba329a10ef54d39226e09267dc55d81a1c66fd4fad23ccb03a052bcc81ffe002"}]}
\ No newline at end of file
+{
+	"signatures": [
+		{
+			"keyid": "bed15bf57ba4deb4e09667099d45d119504420983d16fd0927ebfb0c25184e7f",
+			"sig": "c186db540040a5f552e34365f62a497164ffe1a657bfd30ff5d7fa9eec7f1cf0a4302f99a28233b64492d27bd5a85f7a6114a7dba875f087f7ea27d553d0a80e"
+		}
+	],
+	"signed": {
+		"_type": "snapshot",
+		"expires": "2100-01-01T00:00:00Z",
+		"meta": {
+			"root.json": {
+				"hashes": {
+					"sha512": "1ab59b54e351d71820aff7a1a8c845e1d6820793ab542e798989bd28d2db80a05f1382dd4b403f387793be5bacbc179be429ee13e8ff5cb6a4b7d6e73b3e30bc"
+				},
+				"length": 2117,
+				"version": 4
+			},
+			"targets.json": {
+				"hashes": {
+					"sha512": "518518c1f03d874f9832390dea5bc12ab0061400bd0b3b8b44e4a353087d802accde1ec3dc94e0be4931f572960a0192bd84e667c02e6ac99d0a3bf28f5f9802"
+				},
+				"length": 1191,
+				"version": 4
+			}
+		},
+		"spec_version": "1.0",
+		"version": 4
+	}
+}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/4.targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/4.targets.json
index 335291b..4ed9d72 100644
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/4.targets.json
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/4.targets.json
@@ -1 +1,40 @@
-{"signed":{"_type":"targets","expires":"2100-01-01T00:00:00Z","spec_version":"1.0","targets":{"0":{"hashes":{"sha512":"31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"},"length":1},"1":{"hashes":{"sha512":"4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a"},"length":1},"2":{"hashes":{"sha512":"40b244112641dd78dd4f93b6c9190dd46e0099194d5a44257b7efad6ef9ff4683da1eda0244448cb343aa688f5d3efd7314dafe580ac0bcbf115aeca9e8dc114"},"length":1},"3":{"hashes":{"sha512":"3bafbf08882a2d10133093a1b8433f50563b93c14acd05b79028eb1d12799027241450980651994501423a66c276ae26c43b739bc65c4e16b10c3af6c202aebb"},"length":1}},"version":4},"signatures":[{"keyid":"eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f","sig":"0fc15d44da54f13a30631c2264ba0cbd4c0ad5efb9a2aa71451d7258f98cb5b3597f1165dce688a05f8001f7ec2a51eee6382835121e8176ffdafe4e38c0050e"}]}
\ No newline at end of file
+{
+	"signatures": [
+		{
+			"keyid": "a3eba2113e37b749b908101bdb7b856a44f2853641830c0f939730aca3e30360",
+			"sig": "7bfe0a63ee324034807b5341336d9d2d64e9ef3936086577b5bbcc6d021b4656bd6bf14d817bbb3908e4dcb05391d1b4031b527c14d942c2d1e38275d5ff1308"
+		}
+	],
+	"signed": {
+		"_type": "targets",
+		"expires": "2100-01-01T00:00:00Z",
+		"spec_version": "1.0",
+		"targets": {
+			"0": {
+				"hashes": {
+					"sha512": "31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"
+				},
+				"length": 1
+			},
+			"1": {
+				"hashes": {
+					"sha512": "4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a"
+				},
+				"length": 1
+			},
+			"2": {
+				"hashes": {
+					"sha512": "40b244112641dd78dd4f93b6c9190dd46e0099194d5a44257b7efad6ef9ff4683da1eda0244448cb343aa688f5d3efd7314dafe580ac0bcbf115aeca9e8dc114"
+				},
+				"length": 1
+			},
+			"3": {
+				"hashes": {
+					"sha512": "3bafbf08882a2d10133093a1b8433f50563b93c14acd05b79028eb1d12799027241450980651994501423a66c276ae26c43b739bc65c4e16b10c3af6c202aebb"
+				},
+				"length": 1
+			}
+		},
+		"version": 4
+	}
+}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/442997801bc8613be35f2da13622ee110d2bb4ad2638e7ce327e218352bcd78a535294e6cabfa43628e27d419bdaf15b084fa3ca7da8faa2b5af6ca4f144f29f.root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/442997801bc8613be35f2da13622ee110d2bb4ad2638e7ce327e218352bcd78a535294e6cabfa43628e27d419bdaf15b084fa3ca7da8faa2b5af6ca4f144f29f.root.json
deleted file mode 100644
index e3c13aa..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/442997801bc8613be35f2da13622ee110d2bb4ad2638e7ce327e218352bcd78a535294e6cabfa43628e27d419bdaf15b084fa3ca7da8faa2b5af6ca4f144f29f.root.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"root","consistent_snapshot":true,"expires":"2100-01-01T00:00:00Z","keys":{"2ffb4fd85c3a009d7c42d4f074a9b5156e2242c421fa801fd81eda01c434d23f":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"4df070f02a97f5d0f0e7cbb3554e7ae0b6733a56ff7dfc1ac52094a3aded9c64"},"scheme":"ed25519"},"7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"88c224c1d6175f3dbb6870edd3e138ccf8f714d6cb6f4cccdaf74f989c207cef"},"scheme":"ed25519"},"d9e08f115261bf9e9c92cda6faf73313c6ac20813b5094d989e10d9df43a2385":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"d856ec7d531a2fb84e78b6030efff92ee2b152b7bc8708bbbd32de155e60469d"},"scheme":"ed25519"},"eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"2cb97b1af650c5960ab9d5fa3e4192b8e8a3432df927f2ba30243930c786bb3c"},"scheme":"ed25519"}},"roles":{"root":{"keyids":["d9e08f115261bf9e9c92cda6faf73313c6ac20813b5094d989e10d9df43a2385"],"threshold":1},"snapshot":{"keyids":["7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321"],"threshold":1},"targets":{"keyids":["eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f"],"threshold":1},"timestamp":{"keyids":["2ffb4fd85c3a009d7c42d4f074a9b5156e2242c421fa801fd81eda01c434d23f"],"threshold":1}},"spec_version":"1.0","version":3},"signatures":[{"keyid":"4e8daa3c2904f32d334729b603ded23b5cf950c20564a2a48b77c24dcde407c3","sig":"62f7995910e61d7e29f41fefaf1899c70591da779e163913ddcf3b212bf09890b25ff3f3f276b44c8a41393c9fb3dce484722a7811c7c2b8e17391c5cfd7cf06"},{"keyid":"d9e08f115261bf9e9c92cda6faf73313c6ac20813b5094d989e10d9df43a2385","sig":"c051c45a6a2359f8004dc1261e5a7029ced6270dc1812bd274d5bdfeae597eb3d902c666e3b434f18e7607005d1e6c1b88d1613cbcaef40b55224a75c1ba0701"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/4660bb716c66653e60915e132972e9c60e000644c56d892f54303ccaf5392100d22a613e93c0acd196f230156d9278ce48cf4acc7b278e39d027bb77430a1474.targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/4660bb716c66653e60915e132972e9c60e000644c56d892f54303ccaf5392100d22a613e93c0acd196f230156d9278ce48cf4acc7b278e39d027bb77430a1474.targets.json
deleted file mode 100644
index 2980b4b..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/4660bb716c66653e60915e132972e9c60e000644c56d892f54303ccaf5392100d22a613e93c0acd196f230156d9278ce48cf4acc7b278e39d027bb77430a1474.targets.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"targets","expires":"2100-01-01T00:00:00Z","spec_version":"1.0","targets":{"0":{"hashes":{"sha512":"31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"},"length":1},"1":{"hashes":{"sha512":"4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a"},"length":1},"2":{"hashes":{"sha512":"40b244112641dd78dd4f93b6c9190dd46e0099194d5a44257b7efad6ef9ff4683da1eda0244448cb343aa688f5d3efd7314dafe580ac0bcbf115aeca9e8dc114"},"length":1}},"version":3},"signatures":[{"keyid":"eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f","sig":"e908928beca0a61f7f33fb99fb74227373b2f45983aeed065b8e14256818d911c55443e2782a02ce351af5e8aaf9eec149815aed84ced089bde66f358382060e"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/4a09a98bfafccc0de35d0d4f683c817ee1d410b1432200cbfa8f6ec844d1ff00f183d27b4e4588f7239604a079ff0f4711fba15cceb02e69e1d928024462e112.targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/4a09a98bfafccc0de35d0d4f683c817ee1d410b1432200cbfa8f6ec844d1ff00f183d27b4e4588f7239604a079ff0f4711fba15cceb02e69e1d928024462e112.targets.json
deleted file mode 100644
index 633e87f..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/4a09a98bfafccc0de35d0d4f683c817ee1d410b1432200cbfa8f6ec844d1ff00f183d27b4e4588f7239604a079ff0f4711fba15cceb02e69e1d928024462e112.targets.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"targets","expires":"2100-01-01T00:00:00Z","spec_version":"1.0","targets":{"0":{"hashes":{"sha512":"31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"},"length":1}},"version":1},"signatures":[{"keyid":"eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f","sig":"09f3b7faeb4098137fd7fb365f1396307a7d9240d0df527f7fb4a2861c2bc869611636897146e0d2ba2afd9df348f4b99fb19dbe1ff16ce652d9617b09533806"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/6020ba3baf522dfaf99d316154045d133909ba9dfd0462cba10858cbf9386f30cd931d23f2c1533a41b686439dda02b33ef63fae1e7fe4090933b4e31b2c8b2e.snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/6020ba3baf522dfaf99d316154045d133909ba9dfd0462cba10858cbf9386f30cd931d23f2c1533a41b686439dda02b33ef63fae1e7fe4090933b4e31b2c8b2e.snapshot.json
deleted file mode 100644
index c59a15c..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/6020ba3baf522dfaf99d316154045d133909ba9dfd0462cba10858cbf9386f30cd931d23f2c1533a41b686439dda02b33ef63fae1e7fe4090933b4e31b2c8b2e.snapshot.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"snapshot","expires":"2100-01-01T00:00:00Z","meta":{"root.json":{"hashes":{"sha512":"bfe96f67a4f04ee6466f17912d1011a88a8c3a27b24b9ad62121af5a3222cdbb09a8f9d82446498b4a13603d3b305e7278d51a59470422a4de361e375db8df84"},"length":1704,"version":2},"targets.json":{"hashes":{"sha512":"4660bb716c66653e60915e132972e9c60e000644c56d892f54303ccaf5392100d22a613e93c0acd196f230156d9278ce48cf4acc7b278e39d027bb77430a1474"},"length":841,"version":3}},"spec_version":"1.0","version":3},"signatures":[{"keyid":"7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321","sig":"1f8c0d14621c8ff42effa12de2e38cd5191cf54fdd6dcb9c748f96cb75c074f6412382f1e20ec066a7d7ed06181aec8938c0d3b2af54e5ec0381a42a53c39c02"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/7ff09cead126fb7f2c923ef024074c51b626e2d3dfce31159312186d3c10c838faac51cae57c95e1032ede047800450eff71a0a8d3b45167640ebbe45cad4dcd.snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/7ff09cead126fb7f2c923ef024074c51b626e2d3dfce31159312186d3c10c838faac51cae57c95e1032ede047800450eff71a0a8d3b45167640ebbe45cad4dcd.snapshot.json
deleted file mode 100644
index 1a64206..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/7ff09cead126fb7f2c923ef024074c51b626e2d3dfce31159312186d3c10c838faac51cae57c95e1032ede047800450eff71a0a8d3b45167640ebbe45cad4dcd.snapshot.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"snapshot","expires":"2100-01-01T00:00:00Z","meta":{"root.json":{"hashes":{"sha512":"bfe96f67a4f04ee6466f17912d1011a88a8c3a27b24b9ad62121af5a3222cdbb09a8f9d82446498b4a13603d3b305e7278d51a59470422a4de361e375db8df84"},"length":1704,"version":2},"targets.json":{"hashes":{"sha512":"bfb9550cac278a45a1b7d88fc177831c289227c310c30fb5638d0946ba6f09b6942576e6c950e8c864d5ad1300fd446fb9fb1c3e05e6facf1794abfc72039da4"},"length":673,"version":2}},"spec_version":"1.0","version":2},"signatures":[{"keyid":"7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321","sig":"d30f405c3ff0c0917da5f6bce6d03e8f3ba521b0a545517ef3af0d451f88bced5985b119e6fc60dd4c714b43cfec0742471b9eff97d5200605b44a0976783106"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/9f5fc2d9ce69a25bb762d051aaddfc3b4f22cc6a36ecd776c5ea582016226ae37c2210d9b40483a7d7b997c7a78319883f7215dc03419b49b978ebc592fb7df2.snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/9f5fc2d9ce69a25bb762d051aaddfc3b4f22cc6a36ecd776c5ea582016226ae37c2210d9b40483a7d7b997c7a78319883f7215dc03419b49b978ebc592fb7df2.snapshot.json
deleted file mode 100644
index 3e27316..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/9f5fc2d9ce69a25bb762d051aaddfc3b4f22cc6a36ecd776c5ea582016226ae37c2210d9b40483a7d7b997c7a78319883f7215dc03419b49b978ebc592fb7df2.snapshot.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"snapshot","expires":"2100-01-01T00:00:00Z","meta":{"root.json":{"hashes":{"sha512":"442997801bc8613be35f2da13622ee110d2bb4ad2638e7ce327e218352bcd78a535294e6cabfa43628e27d419bdaf15b084fa3ca7da8faa2b5af6ca4f144f29f"},"length":1918,"version":3},"targets.json":{"hashes":{"sha512":"ceff5553a373f97d9ac2fef9162e04941461c308c55821918c6e7113cfdaddc4fb1f478ef16360cc92e0e7e37f7bc3a68a8483d6c40141e7c5c9a5eebddb1ae5"},"length":1009,"version":4}},"spec_version":"1.0","version":4},"signatures":[{"keyid":"7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321","sig":"bc8851b180b933f967c3bae4ff24f86c464cbfb470e6ef03594c5d6133987009ba329a10ef54d39226e09267dc55d81a1c66fd4fad23ccb03a052bcc81ffe002"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/bfb9550cac278a45a1b7d88fc177831c289227c310c30fb5638d0946ba6f09b6942576e6c950e8c864d5ad1300fd446fb9fb1c3e05e6facf1794abfc72039da4.targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/bfb9550cac278a45a1b7d88fc177831c289227c310c30fb5638d0946ba6f09b6942576e6c950e8c864d5ad1300fd446fb9fb1c3e05e6facf1794abfc72039da4.targets.json
deleted file mode 100644
index 31d08bd..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/bfb9550cac278a45a1b7d88fc177831c289227c310c30fb5638d0946ba6f09b6942576e6c950e8c864d5ad1300fd446fb9fb1c3e05e6facf1794abfc72039da4.targets.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"targets","expires":"2100-01-01T00:00:00Z","spec_version":"1.0","targets":{"0":{"hashes":{"sha512":"31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"},"length":1},"1":{"hashes":{"sha512":"4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a"},"length":1}},"version":2},"signatures":[{"keyid":"eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f","sig":"7b69960653d7dbacd867655f7802487d028430c4df53ca94a8eaa65cd4f84986532ab34ab6aa349f391dc03b0ef94c5af5bfc7ba3a428ddba581bd2c26dc9702"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/bfe96f67a4f04ee6466f17912d1011a88a8c3a27b24b9ad62121af5a3222cdbb09a8f9d82446498b4a13603d3b305e7278d51a59470422a4de361e375db8df84.root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/bfe96f67a4f04ee6466f17912d1011a88a8c3a27b24b9ad62121af5a3222cdbb09a8f9d82446498b4a13603d3b305e7278d51a59470422a4de361e375db8df84.root.json
deleted file mode 100644
index ecba9d9..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/bfe96f67a4f04ee6466f17912d1011a88a8c3a27b24b9ad62121af5a3222cdbb09a8f9d82446498b4a13603d3b305e7278d51a59470422a4de361e375db8df84.root.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"root","consistent_snapshot":true,"expires":"2100-01-01T00:00:00Z","keys":{"2ffb4fd85c3a009d7c42d4f074a9b5156e2242c421fa801fd81eda01c434d23f":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"4df070f02a97f5d0f0e7cbb3554e7ae0b6733a56ff7dfc1ac52094a3aded9c64"},"scheme":"ed25519"},"4e8daa3c2904f32d334729b603ded23b5cf950c20564a2a48b77c24dcde407c3":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"e382c952a736d52be2ab82e486d3f3b27e60e221b636087f3fc3cb71beda0ade"},"scheme":"ed25519"},"7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"88c224c1d6175f3dbb6870edd3e138ccf8f714d6cb6f4cccdaf74f989c207cef"},"scheme":"ed25519"},"eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"2cb97b1af650c5960ab9d5fa3e4192b8e8a3432df927f2ba30243930c786bb3c"},"scheme":"ed25519"}},"roles":{"root":{"keyids":["4e8daa3c2904f32d334729b603ded23b5cf950c20564a2a48b77c24dcde407c3"],"threshold":1},"snapshot":{"keyids":["7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321"],"threshold":1},"targets":{"keyids":["eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f"],"threshold":1},"timestamp":{"keyids":["2ffb4fd85c3a009d7c42d4f074a9b5156e2242c421fa801fd81eda01c434d23f"],"threshold":1}},"spec_version":"1.0","version":2},"signatures":[{"keyid":"4e8daa3c2904f32d334729b603ded23b5cf950c20564a2a48b77c24dcde407c3","sig":"1d4b8e3ba03158c64029e4f1d9e580905d1ed1a0c87242e09edd36ed6104ed8587b20bfe3a7669d040028149fe945818f150cff5ad302bdf6071e0bfb5ba5206"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/c30accb049704fa7b471e4c5869648158f3395b368898c8fa91c56c9e8838d9ffbb810e01cf648a04408a3fffa32125d4f0a16b3326e8c7bc86e6f1fbd5136a6.root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/c30accb049704fa7b471e4c5869648158f3395b368898c8fa91c56c9e8838d9ffbb810e01cf648a04408a3fffa32125d4f0a16b3326e8c7bc86e6f1fbd5136a6.root.json
deleted file mode 100644
index d6e3979..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/c30accb049704fa7b471e4c5869648158f3395b368898c8fa91c56c9e8838d9ffbb810e01cf648a04408a3fffa32125d4f0a16b3326e8c7bc86e6f1fbd5136a6.root.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"root","consistent_snapshot":true,"expires":"2100-01-01T00:00:00Z","keys":{"3901e5474c946f204ec6a239ad261a8ccab4949fc6178cef1d48eb01a040521d":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"e1cb1f371c8f7a31dd0b39309c5d02af11ffaa1a7c71778d2b885ce77757a5e3"},"scheme":"ed25519"},"4e8daa3c2904f32d334729b603ded23b5cf950c20564a2a48b77c24dcde407c3":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"e382c952a736d52be2ab82e486d3f3b27e60e221b636087f3fc3cb71beda0ade"},"scheme":"ed25519"},"7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"88c224c1d6175f3dbb6870edd3e138ccf8f714d6cb6f4cccdaf74f989c207cef"},"scheme":"ed25519"},"eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"2cb97b1af650c5960ab9d5fa3e4192b8e8a3432df927f2ba30243930c786bb3c"},"scheme":"ed25519"}},"roles":{"root":{"keyids":["4e8daa3c2904f32d334729b603ded23b5cf950c20564a2a48b77c24dcde407c3"],"threshold":1},"snapshot":{"keyids":["7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321"],"threshold":1},"targets":{"keyids":["eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f"],"threshold":1},"timestamp":{"keyids":["3901e5474c946f204ec6a239ad261a8ccab4949fc6178cef1d48eb01a040521d"],"threshold":1}},"spec_version":"1.0","version":1},"signatures":[{"keyid":"4e8daa3c2904f32d334729b603ded23b5cf950c20564a2a48b77c24dcde407c3","sig":"ba1c7544af8cdee5cb70eee5bf7871d20b34ef1c480854513e9590746ad2686db9bec7fc1259a0f5206e113dc4aab18fc251d173fa0b3cbfdb95ee92d5c5d50b"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/ceff5553a373f97d9ac2fef9162e04941461c308c55821918c6e7113cfdaddc4fb1f478ef16360cc92e0e7e37f7bc3a68a8483d6c40141e7c5c9a5eebddb1ae5.targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/ceff5553a373f97d9ac2fef9162e04941461c308c55821918c6e7113cfdaddc4fb1f478ef16360cc92e0e7e37f7bc3a68a8483d6c40141e7c5c9a5eebddb1ae5.targets.json
deleted file mode 100644
index 335291b..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/ceff5553a373f97d9ac2fef9162e04941461c308c55821918c6e7113cfdaddc4fb1f478ef16360cc92e0e7e37f7bc3a68a8483d6c40141e7c5c9a5eebddb1ae5.targets.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"targets","expires":"2100-01-01T00:00:00Z","spec_version":"1.0","targets":{"0":{"hashes":{"sha512":"31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"},"length":1},"1":{"hashes":{"sha512":"4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a"},"length":1},"2":{"hashes":{"sha512":"40b244112641dd78dd4f93b6c9190dd46e0099194d5a44257b7efad6ef9ff4683da1eda0244448cb343aa688f5d3efd7314dafe580ac0bcbf115aeca9e8dc114"},"length":1},"3":{"hashes":{"sha512":"3bafbf08882a2d10133093a1b8433f50563b93c14acd05b79028eb1d12799027241450980651994501423a66c276ae26c43b739bc65c4e16b10c3af6c202aebb"},"length":1}},"version":4},"signatures":[{"keyid":"eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f","sig":"0fc15d44da54f13a30631c2264ba0cbd4c0ad5efb9a2aa71451d7258f98cb5b3597f1165dce688a05f8001f7ec2a51eee6382835121e8176ffdafe4e38c0050e"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/root.json
index e3c13aa..a889f17 100644
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/root.json
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/root.json
@@ -1 +1,83 @@
-{"signed":{"_type":"root","consistent_snapshot":true,"expires":"2100-01-01T00:00:00Z","keys":{"2ffb4fd85c3a009d7c42d4f074a9b5156e2242c421fa801fd81eda01c434d23f":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"4df070f02a97f5d0f0e7cbb3554e7ae0b6733a56ff7dfc1ac52094a3aded9c64"},"scheme":"ed25519"},"7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"88c224c1d6175f3dbb6870edd3e138ccf8f714d6cb6f4cccdaf74f989c207cef"},"scheme":"ed25519"},"d9e08f115261bf9e9c92cda6faf73313c6ac20813b5094d989e10d9df43a2385":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"d856ec7d531a2fb84e78b6030efff92ee2b152b7bc8708bbbd32de155e60469d"},"scheme":"ed25519"},"eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"2cb97b1af650c5960ab9d5fa3e4192b8e8a3432df927f2ba30243930c786bb3c"},"scheme":"ed25519"}},"roles":{"root":{"keyids":["d9e08f115261bf9e9c92cda6faf73313c6ac20813b5094d989e10d9df43a2385"],"threshold":1},"snapshot":{"keyids":["7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321"],"threshold":1},"targets":{"keyids":["eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f"],"threshold":1},"timestamp":{"keyids":["2ffb4fd85c3a009d7c42d4f074a9b5156e2242c421fa801fd81eda01c434d23f"],"threshold":1}},"spec_version":"1.0","version":3},"signatures":[{"keyid":"4e8daa3c2904f32d334729b603ded23b5cf950c20564a2a48b77c24dcde407c3","sig":"62f7995910e61d7e29f41fefaf1899c70591da779e163913ddcf3b212bf09890b25ff3f3f276b44c8a41393c9fb3dce484722a7811c7c2b8e17391c5cfd7cf06"},{"keyid":"d9e08f115261bf9e9c92cda6faf73313c6ac20813b5094d989e10d9df43a2385","sig":"c051c45a6a2359f8004dc1261e5a7029ced6270dc1812bd274d5bdfeae597eb3d902c666e3b434f18e7607005d1e6c1b88d1613cbcaef40b55224a75c1ba0701"}]}
\ No newline at end of file
+{
+	"signatures": [
+		{
+			"keyid": "4c663b6d0b9f2c74a19b6791c1417c8d1916e2d84461be1a8148e4386c89582d",
+			"sig": "78594f8ff3160bfef32c85e58a795d8dc6831e4ec2596e6a93d17f2bcb183c3c2e2ec99a28cf9467ab9a947c5803f3c16703f9fada8b43f33ccd3c49bf8fe707"
+		}
+	],
+	"signed": {
+		"_type": "root",
+		"consistent_snapshot": true,
+		"expires": "2100-01-01T00:00:00Z",
+		"keys": {
+			"4c663b6d0b9f2c74a19b6791c1417c8d1916e2d84461be1a8148e4386c89582d": {
+				"keyid_hash_algorithms": [
+					"sha256"
+				],
+				"keytype": "ed25519",
+				"keyval": {
+					"public": "153986a7370e002f377dd68797e7466c421180c1571e233de2f8ab41c8af4f54"
+				},
+				"scheme": "ed25519"
+			},
+			"a3eba2113e37b749b908101bdb7b856a44f2853641830c0f939730aca3e30360": {
+				"keyid_hash_algorithms": [
+					"sha256"
+				],
+				"keytype": "ed25519",
+				"keyval": {
+					"public": "aee574e56780ea1709a8b56e02d4ffdd9a3a1deaed61e2eb0701f376a4422e42"
+				},
+				"scheme": "ed25519"
+			},
+			"b59406a55fbe2492022f2951dacd01fc7b400b7b41ec4028b8356161a5a71a33": {
+				"keyid_hash_algorithms": [
+					"sha256"
+				],
+				"keytype": "ed25519",
+				"keyval": {
+					"public": "8656ad20568cd3534c405e4d9a84b0c6e6163f7f66434df77416502835b9b160"
+				},
+				"scheme": "ed25519"
+			},
+			"bed15bf57ba4deb4e09667099d45d119504420983d16fd0927ebfb0c25184e7f": {
+				"keyid_hash_algorithms": [
+					"sha256"
+				],
+				"keytype": "ed25519",
+				"keyval": {
+					"public": "722dbc861813bb5b568524d62083e875c08e66fed1694d9161d253fa163dd86f"
+				},
+				"scheme": "ed25519"
+			}
+		},
+		"roles": {
+			"root": {
+				"keyids": [
+					"4c663b6d0b9f2c74a19b6791c1417c8d1916e2d84461be1a8148e4386c89582d"
+				],
+				"threshold": 1
+			},
+			"snapshot": {
+				"keyids": [
+					"bed15bf57ba4deb4e09667099d45d119504420983d16fd0927ebfb0c25184e7f"
+				],
+				"threshold": 1
+			},
+			"targets": {
+				"keyids": [
+					"a3eba2113e37b749b908101bdb7b856a44f2853641830c0f939730aca3e30360"
+				],
+				"threshold": 1
+			},
+			"timestamp": {
+				"keyids": [
+					"b59406a55fbe2492022f2951dacd01fc7b400b7b41ec4028b8356161a5a71a33"
+				],
+				"threshold": 1
+			}
+		},
+		"spec_version": "1.0",
+		"version": 4
+	}
+}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/snapshot.json
index 3e27316..dce624d 100644
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/snapshot.json
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/snapshot.json
@@ -1 +1,30 @@
-{"signed":{"_type":"snapshot","expires":"2100-01-01T00:00:00Z","meta":{"root.json":{"hashes":{"sha512":"442997801bc8613be35f2da13622ee110d2bb4ad2638e7ce327e218352bcd78a535294e6cabfa43628e27d419bdaf15b084fa3ca7da8faa2b5af6ca4f144f29f"},"length":1918,"version":3},"targets.json":{"hashes":{"sha512":"ceff5553a373f97d9ac2fef9162e04941461c308c55821918c6e7113cfdaddc4fb1f478ef16360cc92e0e7e37f7bc3a68a8483d6c40141e7c5c9a5eebddb1ae5"},"length":1009,"version":4}},"spec_version":"1.0","version":4},"signatures":[{"keyid":"7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321","sig":"bc8851b180b933f967c3bae4ff24f86c464cbfb470e6ef03594c5d6133987009ba329a10ef54d39226e09267dc55d81a1c66fd4fad23ccb03a052bcc81ffe002"}]}
\ No newline at end of file
+{
+	"signatures": [
+		{
+			"keyid": "bed15bf57ba4deb4e09667099d45d119504420983d16fd0927ebfb0c25184e7f",
+			"sig": "c186db540040a5f552e34365f62a497164ffe1a657bfd30ff5d7fa9eec7f1cf0a4302f99a28233b64492d27bd5a85f7a6114a7dba875f087f7ea27d553d0a80e"
+		}
+	],
+	"signed": {
+		"_type": "snapshot",
+		"expires": "2100-01-01T00:00:00Z",
+		"meta": {
+			"root.json": {
+				"hashes": {
+					"sha512": "1ab59b54e351d71820aff7a1a8c845e1d6820793ab542e798989bd28d2db80a05f1382dd4b403f387793be5bacbc179be429ee13e8ff5cb6a4b7d6e73b3e30bc"
+				},
+				"length": 2117,
+				"version": 4
+			},
+			"targets.json": {
+				"hashes": {
+					"sha512": "518518c1f03d874f9832390dea5bc12ab0061400bd0b3b8b44e4a353087d802accde1ec3dc94e0be4931f572960a0192bd84e667c02e6ac99d0a3bf28f5f9802"
+				},
+				"length": 1191,
+				"version": 4
+			}
+		},
+		"spec_version": "1.0",
+		"version": 4
+	}
+}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/targets.json
index 335291b..4ed9d72 100644
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/targets.json
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/targets.json
@@ -1 +1,40 @@
-{"signed":{"_type":"targets","expires":"2100-01-01T00:00:00Z","spec_version":"1.0","targets":{"0":{"hashes":{"sha512":"31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"},"length":1},"1":{"hashes":{"sha512":"4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a"},"length":1},"2":{"hashes":{"sha512":"40b244112641dd78dd4f93b6c9190dd46e0099194d5a44257b7efad6ef9ff4683da1eda0244448cb343aa688f5d3efd7314dafe580ac0bcbf115aeca9e8dc114"},"length":1},"3":{"hashes":{"sha512":"3bafbf08882a2d10133093a1b8433f50563b93c14acd05b79028eb1d12799027241450980651994501423a66c276ae26c43b739bc65c4e16b10c3af6c202aebb"},"length":1}},"version":4},"signatures":[{"keyid":"eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f","sig":"0fc15d44da54f13a30631c2264ba0cbd4c0ad5efb9a2aa71451d7258f98cb5b3597f1165dce688a05f8001f7ec2a51eee6382835121e8176ffdafe4e38c0050e"}]}
\ No newline at end of file
+{
+	"signatures": [
+		{
+			"keyid": "a3eba2113e37b749b908101bdb7b856a44f2853641830c0f939730aca3e30360",
+			"sig": "7bfe0a63ee324034807b5341336d9d2d64e9ef3936086577b5bbcc6d021b4656bd6bf14d817bbb3908e4dcb05391d1b4031b527c14d942c2d1e38275d5ff1308"
+		}
+	],
+	"signed": {
+		"_type": "targets",
+		"expires": "2100-01-01T00:00:00Z",
+		"spec_version": "1.0",
+		"targets": {
+			"0": {
+				"hashes": {
+					"sha512": "31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"
+				},
+				"length": 1
+			},
+			"1": {
+				"hashes": {
+					"sha512": "4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a"
+				},
+				"length": 1
+			},
+			"2": {
+				"hashes": {
+					"sha512": "40b244112641dd78dd4f93b6c9190dd46e0099194d5a44257b7efad6ef9ff4683da1eda0244448cb343aa688f5d3efd7314dafe580ac0bcbf115aeca9e8dc114"
+				},
+				"length": 1
+			},
+			"3": {
+				"hashes": {
+					"sha512": "3bafbf08882a2d10133093a1b8433f50563b93c14acd05b79028eb1d12799027241450980651994501423a66c276ae26c43b739bc65c4e16b10c3af6c202aebb"
+				},
+				"length": 1
+			}
+		},
+		"version": 4
+	}
+}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/targets/0.0 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/targets/0.0
deleted file mode 100644
index c227083..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/targets/0.0
+++ /dev/null
@@ -1 +0,0 @@
-0
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/targets/0.1 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/targets/0.1
deleted file mode 100644
index 56a6051..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/targets/0.1
+++ /dev/null
@@ -1 +0,0 @@
-1
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/targets/0.2 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/targets/0.2
deleted file mode 100644
index d8263ee..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/targets/0.2
+++ /dev/null
@@ -1 +0,0 @@
-2
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/targets/0.3 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/targets/0.3
deleted file mode 100644
index e440e5c..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/targets/0.3
+++ /dev/null
@@ -1 +0,0 @@
-3
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/targets/31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99.0 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/targets/31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99.0
deleted file mode 100644
index c227083..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/targets/31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99.0
+++ /dev/null
@@ -1 +0,0 @@
-0
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/targets/31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99.0 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/targets/31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99.0
new file mode 120000
index 0000000..f820397
--- /dev/null
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/targets/31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99.0
@@ -0,0 +1 @@
+../../../2/repository/targets/31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99.0
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/targets/40b244112641dd78dd4f93b6c9190dd46e0099194d5a44257b7efad6ef9ff4683da1eda0244448cb343aa688f5d3efd7314dafe580ac0bcbf115aeca9e8dc114.2 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/targets/40b244112641dd78dd4f93b6c9190dd46e0099194d5a44257b7efad6ef9ff4683da1eda0244448cb343aa688f5d3efd7314dafe580ac0bcbf115aeca9e8dc114.2
deleted file mode 100644
index d8263ee..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/targets/40b244112641dd78dd4f93b6c9190dd46e0099194d5a44257b7efad6ef9ff4683da1eda0244448cb343aa688f5d3efd7314dafe580ac0bcbf115aeca9e8dc114.2
+++ /dev/null
@@ -1 +0,0 @@
-2
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/targets/40b244112641dd78dd4f93b6c9190dd46e0099194d5a44257b7efad6ef9ff4683da1eda0244448cb343aa688f5d3efd7314dafe580ac0bcbf115aeca9e8dc114.2 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/targets/40b244112641dd78dd4f93b6c9190dd46e0099194d5a44257b7efad6ef9ff4683da1eda0244448cb343aa688f5d3efd7314dafe580ac0bcbf115aeca9e8dc114.2
new file mode 120000
index 0000000..7cbcc2a
--- /dev/null
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/targets/40b244112641dd78dd4f93b6c9190dd46e0099194d5a44257b7efad6ef9ff4683da1eda0244448cb343aa688f5d3efd7314dafe580ac0bcbf115aeca9e8dc114.2
@@ -0,0 +1 @@
+../../../2/repository/targets/40b244112641dd78dd4f93b6c9190dd46e0099194d5a44257b7efad6ef9ff4683da1eda0244448cb343aa688f5d3efd7314dafe580ac0bcbf115aeca9e8dc114.2
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/targets/4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a.1 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/targets/4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a.1
deleted file mode 100644
index 56a6051..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/targets/4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a.1
+++ /dev/null
@@ -1 +0,0 @@
-1
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/targets/4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a.1 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/targets/4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a.1
new file mode 120000
index 0000000..180cdb4
--- /dev/null
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/targets/4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a.1
@@ -0,0 +1 @@
+../../../2/repository/targets/4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a.1
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/timestamp.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/timestamp.json
index 524cc70..6df0aaf 100644
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/timestamp.json
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/3/repository/timestamp.json
@@ -1 +1,23 @@
-{"signed":{"_type":"timestamp","expires":"2100-01-01T00:00:00Z","meta":{"snapshot.json":{"hashes":{"sha512":"9f5fc2d9ce69a25bb762d051aaddfc3b4f22cc6a36ecd776c5ea582016226ae37c2210d9b40483a7d7b997c7a78319883f7215dc03419b49b978ebc592fb7df2"},"length":720,"version":4}},"spec_version":"1.0","version":4},"signatures":[{"keyid":"2ffb4fd85c3a009d7c42d4f074a9b5156e2242c421fa801fd81eda01c434d23f","sig":"f854262772591560cfef11ac79bc03800c28ffa63a106e4d154182bc7ca838f6a4ea04a443ac812e71b0fadc107164b9fe54eec2f48e82534c67d920b835b40d"}]}
\ No newline at end of file
+{
+	"signatures": [
+		{
+			"keyid": "b59406a55fbe2492022f2951dacd01fc7b400b7b41ec4028b8356161a5a71a33",
+			"sig": "d854e4d42a126ba8b7d643c5f8d721d9e3bef4e950a8c61f521148888dbda1f7f7ac6f665029a15d1c1e52787c3677611be4a1cb7251e93a3fbc0229f6e5a40f"
+		}
+	],
+	"signed": {
+		"_type": "timestamp",
+		"expires": "2100-01-01T00:00:00Z",
+		"meta": {
+			"snapshot.json": {
+				"hashes": {
+					"sha512": "9af21a02c5b066aea02f0216fc22cb66e40c95d0bcbd50d35f16e32636beb0ffd41f1547ec86e2d0640322953d3ffb8285bb495065898cd8b95faf54fd5a3309"
+				},
+				"length": 848,
+				"version": 4
+			}
+		},
+		"spec_version": "1.0",
+		"version": 4
+	}
+}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/keys/root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/keys/root.json
deleted file mode 100644
index 99e9b34..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/keys/root.json
+++ /dev/null
@@ -1 +0,0 @@
-{"encrypted":false,"data":[{"keytype":"ed25519","scheme":"ed25519","keyid_hash_algorithms":["sha512"],"keyval":{"public":"d856ec7d531a2fb84e78b6030efff92ee2b152b7bc8708bbbd32de155e60469d","private":"5c5812258adcf9ba2b28605677759410d73d5ef047d2d3176d89af4c062952fdd856ec7d531a2fb84e78b6030efff92ee2b152b7bc8708bbbd32de155e60469d"}}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/keys/snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/keys/snapshot.json
deleted file mode 100644
index 10f3195..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/keys/snapshot.json
+++ /dev/null
@@ -1,27 +0,0 @@
-{
-	"encrypted": false,
-	"data": [
-		{
-			"keytype": "ed25519",
-			"scheme": "ed25519",
-			"keyid_hash_algorithms": [
-				"sha512"
-			],
-			"keyval": {
-				"public": "88c224c1d6175f3dbb6870edd3e138ccf8f714d6cb6f4cccdaf74f989c207cef",
-				"private": "56943269321253b65cbc2fb7a476ce165283fcb7fec69d977f131c96ec410ebe88c224c1d6175f3dbb6870edd3e138ccf8f714d6cb6f4cccdaf74f989c207cef"
-			}
-		},
-		{
-			"keytype": "ed25519",
-			"scheme": "ed25519",
-			"keyid_hash_algorithms": [
-				"sha512"
-			],
-			"keyval": {
-				"public": "80d4eba80ae98d790c974ffb9555fe5a830a8c9c48f532d25aa538c05528d8be",
-				"private": "9f0e1e30cf4bf70af9d0833abfb74c0049b1e9faf5806907031a1ab6e82ee1f480d4eba80ae98d790c974ffb9555fe5a830a8c9c48f532d25aa538c05528d8be"
-			}
-		}
-	]
-}
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/keys/targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/keys/targets.json
deleted file mode 100644
index c24ecf5..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/keys/targets.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
-	"encrypted": false,
-	"data": [
-		{
-			"keytype": "ed25519",
-			"scheme": "ed25519",
-			"keyid_hash_algorithms": [
-				"sha512"
-			],
-			"keyval": {
-				"public": "2cb97b1af650c5960ab9d5fa3e4192b8e8a3432df927f2ba30243930c786bb3c",
-				"private": "9f530290cb71059f1fee0147e88076caa53dceddfcde4b826d61dd2a8945ad712cb97b1af650c5960ab9d5fa3e4192b8e8a3432df927f2ba30243930c786bb3c"
-			}
-		}
-	]
-}
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/keys/timestamp.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/keys/timestamp.json
deleted file mode 100644
index dd1cc81..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/keys/timestamp.json
+++ /dev/null
@@ -1 +0,0 @@
-{"encrypted":false,"data":[{"keytype":"ed25519","scheme":"ed25519","keyid_hash_algorithms":["sha512"],"keyval":{"public":"4df070f02a97f5d0f0e7cbb3554e7ae0b6733a56ff7dfc1ac52094a3aded9c64","private":"2393a13f038713a2d2ae7a80d0bdf5bd8e018e35967c3bdfd8ca8b115e47c01d4df070f02a97f5d0f0e7cbb3554e7ae0b6733a56ff7dfc1ac52094a3aded9c64"}}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/1.root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/1.root.json
deleted file mode 100644
index d6e3979..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/1.root.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"root","consistent_snapshot":true,"expires":"2100-01-01T00:00:00Z","keys":{"3901e5474c946f204ec6a239ad261a8ccab4949fc6178cef1d48eb01a040521d":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"e1cb1f371c8f7a31dd0b39309c5d02af11ffaa1a7c71778d2b885ce77757a5e3"},"scheme":"ed25519"},"4e8daa3c2904f32d334729b603ded23b5cf950c20564a2a48b77c24dcde407c3":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"e382c952a736d52be2ab82e486d3f3b27e60e221b636087f3fc3cb71beda0ade"},"scheme":"ed25519"},"7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"88c224c1d6175f3dbb6870edd3e138ccf8f714d6cb6f4cccdaf74f989c207cef"},"scheme":"ed25519"},"eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"2cb97b1af650c5960ab9d5fa3e4192b8e8a3432df927f2ba30243930c786bb3c"},"scheme":"ed25519"}},"roles":{"root":{"keyids":["4e8daa3c2904f32d334729b603ded23b5cf950c20564a2a48b77c24dcde407c3"],"threshold":1},"snapshot":{"keyids":["7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321"],"threshold":1},"targets":{"keyids":["eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f"],"threshold":1},"timestamp":{"keyids":["3901e5474c946f204ec6a239ad261a8ccab4949fc6178cef1d48eb01a040521d"],"threshold":1}},"spec_version":"1.0","version":1},"signatures":[{"keyid":"4e8daa3c2904f32d334729b603ded23b5cf950c20564a2a48b77c24dcde407c3","sig":"ba1c7544af8cdee5cb70eee5bf7871d20b34ef1c480854513e9590746ad2686db9bec7fc1259a0f5206e113dc4aab18fc251d173fa0b3cbfdb95ee92d5c5d50b"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/1.root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/1.root.json
new file mode 120000
index 0000000..741d218
--- /dev/null
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/1.root.json
@@ -0,0 +1 @@
+../../3/repository/1.root.json
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/1.snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/1.snapshot.json
deleted file mode 100644
index 6785251..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/1.snapshot.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"snapshot","expires":"2100-01-01T00:00:00Z","meta":{"root.json":{"hashes":{"sha512":"c30accb049704fa7b471e4c5869648158f3395b368898c8fa91c56c9e8838d9ffbb810e01cf648a04408a3fffa32125d4f0a16b3326e8c7bc86e6f1fbd5136a6"},"length":1704,"version":1},"targets.json":{"hashes":{"sha512":"4a09a98bfafccc0de35d0d4f683c817ee1d410b1432200cbfa8f6ec844d1ff00f183d27b4e4588f7239604a079ff0f4711fba15cceb02e69e1d928024462e112"},"length":505,"version":1}},"spec_version":"1.0","version":1},"signatures":[{"keyid":"7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321","sig":"00f4cadd08a9c414b112594d5efebecff11dac46b0e68907da7837eebd46e4f929b068dc53785f54adfba503c55a298678f4ebb7ff10a76c05ada43019af7206"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/1.snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/1.snapshot.json
new file mode 120000
index 0000000..f87f7ed
--- /dev/null
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/1.snapshot.json
@@ -0,0 +1 @@
+../../3/repository/1.snapshot.json
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/1.targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/1.targets.json
deleted file mode 100644
index 633e87f..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/1.targets.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"targets","expires":"2100-01-01T00:00:00Z","spec_version":"1.0","targets":{"0":{"hashes":{"sha512":"31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"},"length":1}},"version":1},"signatures":[{"keyid":"eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f","sig":"09f3b7faeb4098137fd7fb365f1396307a7d9240d0df527f7fb4a2861c2bc869611636897146e0d2ba2afd9df348f4b99fb19dbe1ff16ce652d9617b09533806"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/1.targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/1.targets.json
new file mode 120000
index 0000000..b0002ec
--- /dev/null
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/1.targets.json
@@ -0,0 +1 @@
+../../3/repository/1.targets.json
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/2.root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/2.root.json
deleted file mode 100644
index ecba9d9..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/2.root.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"root","consistent_snapshot":true,"expires":"2100-01-01T00:00:00Z","keys":{"2ffb4fd85c3a009d7c42d4f074a9b5156e2242c421fa801fd81eda01c434d23f":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"4df070f02a97f5d0f0e7cbb3554e7ae0b6733a56ff7dfc1ac52094a3aded9c64"},"scheme":"ed25519"},"4e8daa3c2904f32d334729b603ded23b5cf950c20564a2a48b77c24dcde407c3":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"e382c952a736d52be2ab82e486d3f3b27e60e221b636087f3fc3cb71beda0ade"},"scheme":"ed25519"},"7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"88c224c1d6175f3dbb6870edd3e138ccf8f714d6cb6f4cccdaf74f989c207cef"},"scheme":"ed25519"},"eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"2cb97b1af650c5960ab9d5fa3e4192b8e8a3432df927f2ba30243930c786bb3c"},"scheme":"ed25519"}},"roles":{"root":{"keyids":["4e8daa3c2904f32d334729b603ded23b5cf950c20564a2a48b77c24dcde407c3"],"threshold":1},"snapshot":{"keyids":["7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321"],"threshold":1},"targets":{"keyids":["eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f"],"threshold":1},"timestamp":{"keyids":["2ffb4fd85c3a009d7c42d4f074a9b5156e2242c421fa801fd81eda01c434d23f"],"threshold":1}},"spec_version":"1.0","version":2},"signatures":[{"keyid":"4e8daa3c2904f32d334729b603ded23b5cf950c20564a2a48b77c24dcde407c3","sig":"1d4b8e3ba03158c64029e4f1d9e580905d1ed1a0c87242e09edd36ed6104ed8587b20bfe3a7669d040028149fe945818f150cff5ad302bdf6071e0bfb5ba5206"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/2.root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/2.root.json
new file mode 120000
index 0000000..fb9b350
--- /dev/null
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/2.root.json
@@ -0,0 +1 @@
+../../3/repository/2.root.json
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/2.snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/2.snapshot.json
deleted file mode 100644
index 1a64206..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/2.snapshot.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"snapshot","expires":"2100-01-01T00:00:00Z","meta":{"root.json":{"hashes":{"sha512":"bfe96f67a4f04ee6466f17912d1011a88a8c3a27b24b9ad62121af5a3222cdbb09a8f9d82446498b4a13603d3b305e7278d51a59470422a4de361e375db8df84"},"length":1704,"version":2},"targets.json":{"hashes":{"sha512":"bfb9550cac278a45a1b7d88fc177831c289227c310c30fb5638d0946ba6f09b6942576e6c950e8c864d5ad1300fd446fb9fb1c3e05e6facf1794abfc72039da4"},"length":673,"version":2}},"spec_version":"1.0","version":2},"signatures":[{"keyid":"7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321","sig":"d30f405c3ff0c0917da5f6bce6d03e8f3ba521b0a545517ef3af0d451f88bced5985b119e6fc60dd4c714b43cfec0742471b9eff97d5200605b44a0976783106"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/2.snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/2.snapshot.json
new file mode 120000
index 0000000..e96983b
--- /dev/null
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/2.snapshot.json
@@ -0,0 +1 @@
+../../3/repository/2.snapshot.json
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/2.targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/2.targets.json
deleted file mode 100644
index 31d08bd..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/2.targets.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"targets","expires":"2100-01-01T00:00:00Z","spec_version":"1.0","targets":{"0":{"hashes":{"sha512":"31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"},"length":1},"1":{"hashes":{"sha512":"4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a"},"length":1}},"version":2},"signatures":[{"keyid":"eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f","sig":"7b69960653d7dbacd867655f7802487d028430c4df53ca94a8eaa65cd4f84986532ab34ab6aa349f391dc03b0ef94c5af5bfc7ba3a428ddba581bd2c26dc9702"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/2.targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/2.targets.json
new file mode 120000
index 0000000..dbb2a75
--- /dev/null
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/2.targets.json
@@ -0,0 +1 @@
+../../3/repository/2.targets.json
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/27b3a3586c86fdd05e941098c10f71419f531d94bac36a272b5b978877652e7994ec657333d2e3894a2c1f53263eec729c8595f492f67b3eaafcc47b75e746c8.snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/27b3a3586c86fdd05e941098c10f71419f531d94bac36a272b5b978877652e7994ec657333d2e3894a2c1f53263eec729c8595f492f67b3eaafcc47b75e746c8.snapshot.json
deleted file mode 100644
index 6785251..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/27b3a3586c86fdd05e941098c10f71419f531d94bac36a272b5b978877652e7994ec657333d2e3894a2c1f53263eec729c8595f492f67b3eaafcc47b75e746c8.snapshot.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"snapshot","expires":"2100-01-01T00:00:00Z","meta":{"root.json":{"hashes":{"sha512":"c30accb049704fa7b471e4c5869648158f3395b368898c8fa91c56c9e8838d9ffbb810e01cf648a04408a3fffa32125d4f0a16b3326e8c7bc86e6f1fbd5136a6"},"length":1704,"version":1},"targets.json":{"hashes":{"sha512":"4a09a98bfafccc0de35d0d4f683c817ee1d410b1432200cbfa8f6ec844d1ff00f183d27b4e4588f7239604a079ff0f4711fba15cceb02e69e1d928024462e112"},"length":505,"version":1}},"spec_version":"1.0","version":1},"signatures":[{"keyid":"7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321","sig":"00f4cadd08a9c414b112594d5efebecff11dac46b0e68907da7837eebd46e4f929b068dc53785f54adfba503c55a298678f4ebb7ff10a76c05ada43019af7206"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/2ac1085fa604d17ca1a04065046421498512666c260d8c22251ca78d43a12e41a0356683ecacd1d2f22c684964ba3c1b0d5735bc4541eb5c94feb3fadb6057ec.snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/2ac1085fa604d17ca1a04065046421498512666c260d8c22251ca78d43a12e41a0356683ecacd1d2f22c684964ba3c1b0d5735bc4541eb5c94feb3fadb6057ec.snapshot.json
deleted file mode 100644
index 4b636e7..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/2ac1085fa604d17ca1a04065046421498512666c260d8c22251ca78d43a12e41a0356683ecacd1d2f22c684964ba3c1b0d5735bc4541eb5c94feb3fadb6057ec.snapshot.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"snapshot","expires":"2100-01-01T00:00:00Z","meta":{"root.json":{"hashes":{"sha512":"99ffcefa3fb33952e13acef9a46f1510a528eb3d5ffe99014fef5468d4131c1fbc113e2eda90b41daa119bb6b02e8c75da00550acdc3c1cdca3be78378b6af06"},"length":1704,"version":4},"targets.json":{"hashes":{"sha512":"4a306013447ca3eaf6f19d41eac1460b2d5d9fd3fcac6ae2abe5b290a8a90c394a4b6f9e0964feda539362ffe1ce5156f2d0b030a002e202a2dd0c6caa719287"},"length":1177,"version":5}},"spec_version":"1.0","version":5},"signatures":[{"keyid":"7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321","sig":"734b2eaa0e79b828c30b6e98c64eeaf399f49be608f9043e185eca18436997ee09064aba26fb3a26906473a7fcbdb941056c369d7049db1cd1ace139e785700b"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/3.root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/3.root.json
deleted file mode 100644
index e3c13aa..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/3.root.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"root","consistent_snapshot":true,"expires":"2100-01-01T00:00:00Z","keys":{"2ffb4fd85c3a009d7c42d4f074a9b5156e2242c421fa801fd81eda01c434d23f":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"4df070f02a97f5d0f0e7cbb3554e7ae0b6733a56ff7dfc1ac52094a3aded9c64"},"scheme":"ed25519"},"7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"88c224c1d6175f3dbb6870edd3e138ccf8f714d6cb6f4cccdaf74f989c207cef"},"scheme":"ed25519"},"d9e08f115261bf9e9c92cda6faf73313c6ac20813b5094d989e10d9df43a2385":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"d856ec7d531a2fb84e78b6030efff92ee2b152b7bc8708bbbd32de155e60469d"},"scheme":"ed25519"},"eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"2cb97b1af650c5960ab9d5fa3e4192b8e8a3432df927f2ba30243930c786bb3c"},"scheme":"ed25519"}},"roles":{"root":{"keyids":["d9e08f115261bf9e9c92cda6faf73313c6ac20813b5094d989e10d9df43a2385"],"threshold":1},"snapshot":{"keyids":["7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321"],"threshold":1},"targets":{"keyids":["eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f"],"threshold":1},"timestamp":{"keyids":["2ffb4fd85c3a009d7c42d4f074a9b5156e2242c421fa801fd81eda01c434d23f"],"threshold":1}},"spec_version":"1.0","version":3},"signatures":[{"keyid":"4e8daa3c2904f32d334729b603ded23b5cf950c20564a2a48b77c24dcde407c3","sig":"62f7995910e61d7e29f41fefaf1899c70591da779e163913ddcf3b212bf09890b25ff3f3f276b44c8a41393c9fb3dce484722a7811c7c2b8e17391c5cfd7cf06"},{"keyid":"d9e08f115261bf9e9c92cda6faf73313c6ac20813b5094d989e10d9df43a2385","sig":"c051c45a6a2359f8004dc1261e5a7029ced6270dc1812bd274d5bdfeae597eb3d902c666e3b434f18e7607005d1e6c1b88d1613cbcaef40b55224a75c1ba0701"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/3.root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/3.root.json
new file mode 120000
index 0000000..65e6c5b
--- /dev/null
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/3.root.json
@@ -0,0 +1 @@
+../../3/repository/3.root.json
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/3.snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/3.snapshot.json
deleted file mode 100644
index c59a15c..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/3.snapshot.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"snapshot","expires":"2100-01-01T00:00:00Z","meta":{"root.json":{"hashes":{"sha512":"bfe96f67a4f04ee6466f17912d1011a88a8c3a27b24b9ad62121af5a3222cdbb09a8f9d82446498b4a13603d3b305e7278d51a59470422a4de361e375db8df84"},"length":1704,"version":2},"targets.json":{"hashes":{"sha512":"4660bb716c66653e60915e132972e9c60e000644c56d892f54303ccaf5392100d22a613e93c0acd196f230156d9278ce48cf4acc7b278e39d027bb77430a1474"},"length":841,"version":3}},"spec_version":"1.0","version":3},"signatures":[{"keyid":"7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321","sig":"1f8c0d14621c8ff42effa12de2e38cd5191cf54fdd6dcb9c748f96cb75c074f6412382f1e20ec066a7d7ed06181aec8938c0d3b2af54e5ec0381a42a53c39c02"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/3.snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/3.snapshot.json
new file mode 120000
index 0000000..f2fd560
--- /dev/null
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/3.snapshot.json
@@ -0,0 +1 @@
+../../3/repository/3.snapshot.json
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/3.targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/3.targets.json
deleted file mode 100644
index 2980b4b..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/3.targets.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"targets","expires":"2100-01-01T00:00:00Z","spec_version":"1.0","targets":{"0":{"hashes":{"sha512":"31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"},"length":1},"1":{"hashes":{"sha512":"4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a"},"length":1},"2":{"hashes":{"sha512":"40b244112641dd78dd4f93b6c9190dd46e0099194d5a44257b7efad6ef9ff4683da1eda0244448cb343aa688f5d3efd7314dafe580ac0bcbf115aeca9e8dc114"},"length":1}},"version":3},"signatures":[{"keyid":"eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f","sig":"e908928beca0a61f7f33fb99fb74227373b2f45983aeed065b8e14256818d911c55443e2782a02ce351af5e8aaf9eec149815aed84ced089bde66f358382060e"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/3.targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/3.targets.json
new file mode 120000
index 0000000..ca61e77
--- /dev/null
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/3.targets.json
@@ -0,0 +1 @@
+../../3/repository/3.targets.json
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/4.root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/4.root.json
deleted file mode 100644
index 5cb9301..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/4.root.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"root","consistent_snapshot":true,"expires":"2100-01-01T00:00:00Z","keys":{"2ffb4fd85c3a009d7c42d4f074a9b5156e2242c421fa801fd81eda01c434d23f":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"4df070f02a97f5d0f0e7cbb3554e7ae0b6733a56ff7dfc1ac52094a3aded9c64"},"scheme":"ed25519"},"7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"88c224c1d6175f3dbb6870edd3e138ccf8f714d6cb6f4cccdaf74f989c207cef"},"scheme":"ed25519"},"d9e08f115261bf9e9c92cda6faf73313c6ac20813b5094d989e10d9df43a2385":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"d856ec7d531a2fb84e78b6030efff92ee2b152b7bc8708bbbd32de155e60469d"},"scheme":"ed25519"},"eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"2cb97b1af650c5960ab9d5fa3e4192b8e8a3432df927f2ba30243930c786bb3c"},"scheme":"ed25519"}},"roles":{"root":{"keyids":["d9e08f115261bf9e9c92cda6faf73313c6ac20813b5094d989e10d9df43a2385"],"threshold":1},"snapshot":{"keyids":["7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321"],"threshold":1},"targets":{"keyids":["eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f"],"threshold":1},"timestamp":{"keyids":["2ffb4fd85c3a009d7c42d4f074a9b5156e2242c421fa801fd81eda01c434d23f"],"threshold":1}},"spec_version":"1.0","version":4},"signatures":[{"keyid":"d9e08f115261bf9e9c92cda6faf73313c6ac20813b5094d989e10d9df43a2385","sig":"90d2d6f073ec43a3991a4fcc579e15d68cf5bc24059d2871c58fdcec05f17420bcc3fcec6e93010ffcf03852b3f33bc1567d3a986f0d726d0df910b44de9010d"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/4.root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/4.root.json
new file mode 120000
index 0000000..c3662ce
--- /dev/null
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/4.root.json
@@ -0,0 +1 @@
+../../3/repository/4.root.json
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/4.snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/4.snapshot.json
deleted file mode 100644
index 3e27316..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/4.snapshot.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"snapshot","expires":"2100-01-01T00:00:00Z","meta":{"root.json":{"hashes":{"sha512":"442997801bc8613be35f2da13622ee110d2bb4ad2638e7ce327e218352bcd78a535294e6cabfa43628e27d419bdaf15b084fa3ca7da8faa2b5af6ca4f144f29f"},"length":1918,"version":3},"targets.json":{"hashes":{"sha512":"ceff5553a373f97d9ac2fef9162e04941461c308c55821918c6e7113cfdaddc4fb1f478ef16360cc92e0e7e37f7bc3a68a8483d6c40141e7c5c9a5eebddb1ae5"},"length":1009,"version":4}},"spec_version":"1.0","version":4},"signatures":[{"keyid":"7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321","sig":"bc8851b180b933f967c3bae4ff24f86c464cbfb470e6ef03594c5d6133987009ba329a10ef54d39226e09267dc55d81a1c66fd4fad23ccb03a052bcc81ffe002"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/4.snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/4.snapshot.json
new file mode 120000
index 0000000..a2f839a
--- /dev/null
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/4.snapshot.json
@@ -0,0 +1 @@
+../../3/repository/4.snapshot.json
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/4.targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/4.targets.json
deleted file mode 100644
index 335291b..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/4.targets.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"targets","expires":"2100-01-01T00:00:00Z","spec_version":"1.0","targets":{"0":{"hashes":{"sha512":"31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"},"length":1},"1":{"hashes":{"sha512":"4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a"},"length":1},"2":{"hashes":{"sha512":"40b244112641dd78dd4f93b6c9190dd46e0099194d5a44257b7efad6ef9ff4683da1eda0244448cb343aa688f5d3efd7314dafe580ac0bcbf115aeca9e8dc114"},"length":1},"3":{"hashes":{"sha512":"3bafbf08882a2d10133093a1b8433f50563b93c14acd05b79028eb1d12799027241450980651994501423a66c276ae26c43b739bc65c4e16b10c3af6c202aebb"},"length":1}},"version":4},"signatures":[{"keyid":"eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f","sig":"0fc15d44da54f13a30631c2264ba0cbd4c0ad5efb9a2aa71451d7258f98cb5b3597f1165dce688a05f8001f7ec2a51eee6382835121e8176ffdafe4e38c0050e"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/4.targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/4.targets.json
new file mode 120000
index 0000000..9f7a784
--- /dev/null
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/4.targets.json
@@ -0,0 +1 @@
+../../3/repository/4.targets.json
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/442997801bc8613be35f2da13622ee110d2bb4ad2638e7ce327e218352bcd78a535294e6cabfa43628e27d419bdaf15b084fa3ca7da8faa2b5af6ca4f144f29f.root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/442997801bc8613be35f2da13622ee110d2bb4ad2638e7ce327e218352bcd78a535294e6cabfa43628e27d419bdaf15b084fa3ca7da8faa2b5af6ca4f144f29f.root.json
deleted file mode 100644
index e3c13aa..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/442997801bc8613be35f2da13622ee110d2bb4ad2638e7ce327e218352bcd78a535294e6cabfa43628e27d419bdaf15b084fa3ca7da8faa2b5af6ca4f144f29f.root.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"root","consistent_snapshot":true,"expires":"2100-01-01T00:00:00Z","keys":{"2ffb4fd85c3a009d7c42d4f074a9b5156e2242c421fa801fd81eda01c434d23f":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"4df070f02a97f5d0f0e7cbb3554e7ae0b6733a56ff7dfc1ac52094a3aded9c64"},"scheme":"ed25519"},"7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"88c224c1d6175f3dbb6870edd3e138ccf8f714d6cb6f4cccdaf74f989c207cef"},"scheme":"ed25519"},"d9e08f115261bf9e9c92cda6faf73313c6ac20813b5094d989e10d9df43a2385":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"d856ec7d531a2fb84e78b6030efff92ee2b152b7bc8708bbbd32de155e60469d"},"scheme":"ed25519"},"eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"2cb97b1af650c5960ab9d5fa3e4192b8e8a3432df927f2ba30243930c786bb3c"},"scheme":"ed25519"}},"roles":{"root":{"keyids":["d9e08f115261bf9e9c92cda6faf73313c6ac20813b5094d989e10d9df43a2385"],"threshold":1},"snapshot":{"keyids":["7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321"],"threshold":1},"targets":{"keyids":["eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f"],"threshold":1},"timestamp":{"keyids":["2ffb4fd85c3a009d7c42d4f074a9b5156e2242c421fa801fd81eda01c434d23f"],"threshold":1}},"spec_version":"1.0","version":3},"signatures":[{"keyid":"4e8daa3c2904f32d334729b603ded23b5cf950c20564a2a48b77c24dcde407c3","sig":"62f7995910e61d7e29f41fefaf1899c70591da779e163913ddcf3b212bf09890b25ff3f3f276b44c8a41393c9fb3dce484722a7811c7c2b8e17391c5cfd7cf06"},{"keyid":"d9e08f115261bf9e9c92cda6faf73313c6ac20813b5094d989e10d9df43a2385","sig":"c051c45a6a2359f8004dc1261e5a7029ced6270dc1812bd274d5bdfeae597eb3d902c666e3b434f18e7607005d1e6c1b88d1613cbcaef40b55224a75c1ba0701"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/4660bb716c66653e60915e132972e9c60e000644c56d892f54303ccaf5392100d22a613e93c0acd196f230156d9278ce48cf4acc7b278e39d027bb77430a1474.targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/4660bb716c66653e60915e132972e9c60e000644c56d892f54303ccaf5392100d22a613e93c0acd196f230156d9278ce48cf4acc7b278e39d027bb77430a1474.targets.json
deleted file mode 100644
index 2980b4b..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/4660bb716c66653e60915e132972e9c60e000644c56d892f54303ccaf5392100d22a613e93c0acd196f230156d9278ce48cf4acc7b278e39d027bb77430a1474.targets.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"targets","expires":"2100-01-01T00:00:00Z","spec_version":"1.0","targets":{"0":{"hashes":{"sha512":"31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"},"length":1},"1":{"hashes":{"sha512":"4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a"},"length":1},"2":{"hashes":{"sha512":"40b244112641dd78dd4f93b6c9190dd46e0099194d5a44257b7efad6ef9ff4683da1eda0244448cb343aa688f5d3efd7314dafe580ac0bcbf115aeca9e8dc114"},"length":1}},"version":3},"signatures":[{"keyid":"eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f","sig":"e908928beca0a61f7f33fb99fb74227373b2f45983aeed065b8e14256818d911c55443e2782a02ce351af5e8aaf9eec149815aed84ced089bde66f358382060e"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/4a09a98bfafccc0de35d0d4f683c817ee1d410b1432200cbfa8f6ec844d1ff00f183d27b4e4588f7239604a079ff0f4711fba15cceb02e69e1d928024462e112.targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/4a09a98bfafccc0de35d0d4f683c817ee1d410b1432200cbfa8f6ec844d1ff00f183d27b4e4588f7239604a079ff0f4711fba15cceb02e69e1d928024462e112.targets.json
deleted file mode 100644
index 633e87f..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/4a09a98bfafccc0de35d0d4f683c817ee1d410b1432200cbfa8f6ec844d1ff00f183d27b4e4588f7239604a079ff0f4711fba15cceb02e69e1d928024462e112.targets.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"targets","expires":"2100-01-01T00:00:00Z","spec_version":"1.0","targets":{"0":{"hashes":{"sha512":"31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"},"length":1}},"version":1},"signatures":[{"keyid":"eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f","sig":"09f3b7faeb4098137fd7fb365f1396307a7d9240d0df527f7fb4a2861c2bc869611636897146e0d2ba2afd9df348f4b99fb19dbe1ff16ce652d9617b09533806"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/4a306013447ca3eaf6f19d41eac1460b2d5d9fd3fcac6ae2abe5b290a8a90c394a4b6f9e0964feda539362ffe1ce5156f2d0b030a002e202a2dd0c6caa719287.targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/4a306013447ca3eaf6f19d41eac1460b2d5d9fd3fcac6ae2abe5b290a8a90c394a4b6f9e0964feda539362ffe1ce5156f2d0b030a002e202a2dd0c6caa719287.targets.json
deleted file mode 100644
index 5d96aba..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/4a306013447ca3eaf6f19d41eac1460b2d5d9fd3fcac6ae2abe5b290a8a90c394a4b6f9e0964feda539362ffe1ce5156f2d0b030a002e202a2dd0c6caa719287.targets.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"targets","expires":"2100-01-01T00:00:00Z","spec_version":"1.0","targets":{"0":{"hashes":{"sha512":"31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"},"length":1},"1":{"hashes":{"sha512":"4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a"},"length":1},"2":{"hashes":{"sha512":"40b244112641dd78dd4f93b6c9190dd46e0099194d5a44257b7efad6ef9ff4683da1eda0244448cb343aa688f5d3efd7314dafe580ac0bcbf115aeca9e8dc114"},"length":1},"3":{"hashes":{"sha512":"3bafbf08882a2d10133093a1b8433f50563b93c14acd05b79028eb1d12799027241450980651994501423a66c276ae26c43b739bc65c4e16b10c3af6c202aebb"},"length":1},"4":{"hashes":{"sha512":"a321d8b405e3ef2604959847b36d171eebebc4a8941dc70a4784935a4fca5d5813de84dfa049f06549aa61b20848c1633ce81b675286ea8fb53db240d831c568"},"length":1}},"version":5},"signatures":[{"keyid":"eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f","sig":"027fbebf542248744f81dfd2bcaf4a877d05bc5c0fff2aa49c8cd6fb35da9bc904064dc40155c488f6eb5cae31423a8525da85ab7a95bd37821bb95971b9c70f"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/5.root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/5.root.json
new file mode 100644
index 0000000..4e4912d
--- /dev/null
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/5.root.json
@@ -0,0 +1,83 @@
+{
+	"signatures": [
+		{
+			"keyid": "4c663b6d0b9f2c74a19b6791c1417c8d1916e2d84461be1a8148e4386c89582d",
+			"sig": "a8bf62746b62a58f80c81bdbbdc67d142f1db9e6681ac0e46bf7d33aeac527e86af8294a35fea4cfd6c750d4f1333287c201837b2b37fce7a440ea58bdb0d907"
+		}
+	],
+	"signed": {
+		"_type": "root",
+		"consistent_snapshot": true,
+		"expires": "2100-01-01T00:00:00Z",
+		"keys": {
+			"4c663b6d0b9f2c74a19b6791c1417c8d1916e2d84461be1a8148e4386c89582d": {
+				"keyid_hash_algorithms": [
+					"sha256"
+				],
+				"keytype": "ed25519",
+				"keyval": {
+					"public": "153986a7370e002f377dd68797e7466c421180c1571e233de2f8ab41c8af4f54"
+				},
+				"scheme": "ed25519"
+			},
+			"79b5760e4c96b6becc12bec4260c9c1d533b9b70628ade2b229ef02b772b10b0": {
+				"keyid_hash_algorithms": [
+					"sha256"
+				],
+				"keytype": "ed25519",
+				"keyval": {
+					"public": "3ab34b0c2d4eadccaa0f0cf22ced07b552394063a9de2806993d022360dffc76"
+				},
+				"scheme": "ed25519"
+			},
+			"a3eba2113e37b749b908101bdb7b856a44f2853641830c0f939730aca3e30360": {
+				"keyid_hash_algorithms": [
+					"sha256"
+				],
+				"keytype": "ed25519",
+				"keyval": {
+					"public": "aee574e56780ea1709a8b56e02d4ffdd9a3a1deaed61e2eb0701f376a4422e42"
+				},
+				"scheme": "ed25519"
+			},
+			"bed15bf57ba4deb4e09667099d45d119504420983d16fd0927ebfb0c25184e7f": {
+				"keyid_hash_algorithms": [
+					"sha256"
+				],
+				"keytype": "ed25519",
+				"keyval": {
+					"public": "722dbc861813bb5b568524d62083e875c08e66fed1694d9161d253fa163dd86f"
+				},
+				"scheme": "ed25519"
+			}
+		},
+		"roles": {
+			"root": {
+				"keyids": [
+					"4c663b6d0b9f2c74a19b6791c1417c8d1916e2d84461be1a8148e4386c89582d"
+				],
+				"threshold": 1
+			},
+			"snapshot": {
+				"keyids": [
+					"bed15bf57ba4deb4e09667099d45d119504420983d16fd0927ebfb0c25184e7f"
+				],
+				"threshold": 1
+			},
+			"targets": {
+				"keyids": [
+					"a3eba2113e37b749b908101bdb7b856a44f2853641830c0f939730aca3e30360"
+				],
+				"threshold": 1
+			},
+			"timestamp": {
+				"keyids": [
+					"79b5760e4c96b6becc12bec4260c9c1d533b9b70628ade2b229ef02b772b10b0"
+				],
+				"threshold": 1
+			}
+		},
+		"spec_version": "1.0",
+		"version": 5
+	}
+}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/5.snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/5.snapshot.json
index 4b636e7..e62aef9 100644
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/5.snapshot.json
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/5.snapshot.json
@@ -1 +1,30 @@
-{"signed":{"_type":"snapshot","expires":"2100-01-01T00:00:00Z","meta":{"root.json":{"hashes":{"sha512":"99ffcefa3fb33952e13acef9a46f1510a528eb3d5ffe99014fef5468d4131c1fbc113e2eda90b41daa119bb6b02e8c75da00550acdc3c1cdca3be78378b6af06"},"length":1704,"version":4},"targets.json":{"hashes":{"sha512":"4a306013447ca3eaf6f19d41eac1460b2d5d9fd3fcac6ae2abe5b290a8a90c394a4b6f9e0964feda539362ffe1ce5156f2d0b030a002e202a2dd0c6caa719287"},"length":1177,"version":5}},"spec_version":"1.0","version":5},"signatures":[{"keyid":"7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321","sig":"734b2eaa0e79b828c30b6e98c64eeaf399f49be608f9043e185eca18436997ee09064aba26fb3a26906473a7fcbdb941056c369d7049db1cd1ace139e785700b"}]}
\ No newline at end of file
+{
+	"signatures": [
+		{
+			"keyid": "bed15bf57ba4deb4e09667099d45d119504420983d16fd0927ebfb0c25184e7f",
+			"sig": "6c6b90af042c63f79a7d8079a26bd58fdcb8d84c829fd62aa554b4e9df6d31dfb5a6efb7744b814f7536ace6196c2e0b2768794fa40abf85b49dcc661d0f9a06"
+		}
+	],
+	"signed": {
+		"_type": "snapshot",
+		"expires": "2100-01-01T00:00:00Z",
+		"meta": {
+			"root.json": {
+				"hashes": {
+					"sha512": "7a60ff2c4e027e05c318e9a0dc891c46e9899994b50c2ac0dad0bd6f439c69a71486606adf309969f981de6b20630e27f0e529e020c41c638b9f0895ccbd797b"
+				},
+				"length": 2117,
+				"version": 5
+			},
+			"targets.json": {
+				"hashes": {
+					"sha512": "25ba8ef109680040b2e28dde51389397c51f4ba12acb1ea1b70dfc7e1bc5eceec71b1cbfb4747c47af8d9cdf76baa53ab5b2403eef226be1ae7a8d7794474ebf"
+				},
+				"length": 1392,
+				"version": 5
+			}
+		},
+		"spec_version": "1.0",
+		"version": 5
+	}
+}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/5.targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/5.targets.json
index 5d96aba..163e9e8 100644
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/5.targets.json
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/5.targets.json
@@ -1 +1,46 @@
-{"signed":{"_type":"targets","expires":"2100-01-01T00:00:00Z","spec_version":"1.0","targets":{"0":{"hashes":{"sha512":"31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"},"length":1},"1":{"hashes":{"sha512":"4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a"},"length":1},"2":{"hashes":{"sha512":"40b244112641dd78dd4f93b6c9190dd46e0099194d5a44257b7efad6ef9ff4683da1eda0244448cb343aa688f5d3efd7314dafe580ac0bcbf115aeca9e8dc114"},"length":1},"3":{"hashes":{"sha512":"3bafbf08882a2d10133093a1b8433f50563b93c14acd05b79028eb1d12799027241450980651994501423a66c276ae26c43b739bc65c4e16b10c3af6c202aebb"},"length":1},"4":{"hashes":{"sha512":"a321d8b405e3ef2604959847b36d171eebebc4a8941dc70a4784935a4fca5d5813de84dfa049f06549aa61b20848c1633ce81b675286ea8fb53db240d831c568"},"length":1}},"version":5},"signatures":[{"keyid":"eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f","sig":"027fbebf542248744f81dfd2bcaf4a877d05bc5c0fff2aa49c8cd6fb35da9bc904064dc40155c488f6eb5cae31423a8525da85ab7a95bd37821bb95971b9c70f"}]}
\ No newline at end of file
+{
+	"signatures": [
+		{
+			"keyid": "a3eba2113e37b749b908101bdb7b856a44f2853641830c0f939730aca3e30360",
+			"sig": "68f2346cdbe045e8558b2ccd86be66e15466955167557c704b51d7163838f670c53ab9247c16a4ed0cd4ecc981a7e2a04a350b01548f97654499d6f9c17c4202"
+		}
+	],
+	"signed": {
+		"_type": "targets",
+		"expires": "2100-01-01T00:00:00Z",
+		"spec_version": "1.0",
+		"targets": {
+			"0": {
+				"hashes": {
+					"sha512": "31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"
+				},
+				"length": 1
+			},
+			"1": {
+				"hashes": {
+					"sha512": "4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a"
+				},
+				"length": 1
+			},
+			"2": {
+				"hashes": {
+					"sha512": "40b244112641dd78dd4f93b6c9190dd46e0099194d5a44257b7efad6ef9ff4683da1eda0244448cb343aa688f5d3efd7314dafe580ac0bcbf115aeca9e8dc114"
+				},
+				"length": 1
+			},
+			"3": {
+				"hashes": {
+					"sha512": "3bafbf08882a2d10133093a1b8433f50563b93c14acd05b79028eb1d12799027241450980651994501423a66c276ae26c43b739bc65c4e16b10c3af6c202aebb"
+				},
+				"length": 1
+			},
+			"4": {
+				"hashes": {
+					"sha512": "a321d8b405e3ef2604959847b36d171eebebc4a8941dc70a4784935a4fca5d5813de84dfa049f06549aa61b20848c1633ce81b675286ea8fb53db240d831c568"
+				},
+				"length": 1
+			}
+		},
+		"version": 5
+	}
+}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/6020ba3baf522dfaf99d316154045d133909ba9dfd0462cba10858cbf9386f30cd931d23f2c1533a41b686439dda02b33ef63fae1e7fe4090933b4e31b2c8b2e.snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/6020ba3baf522dfaf99d316154045d133909ba9dfd0462cba10858cbf9386f30cd931d23f2c1533a41b686439dda02b33ef63fae1e7fe4090933b4e31b2c8b2e.snapshot.json
deleted file mode 100644
index c59a15c..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/6020ba3baf522dfaf99d316154045d133909ba9dfd0462cba10858cbf9386f30cd931d23f2c1533a41b686439dda02b33ef63fae1e7fe4090933b4e31b2c8b2e.snapshot.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"snapshot","expires":"2100-01-01T00:00:00Z","meta":{"root.json":{"hashes":{"sha512":"bfe96f67a4f04ee6466f17912d1011a88a8c3a27b24b9ad62121af5a3222cdbb09a8f9d82446498b4a13603d3b305e7278d51a59470422a4de361e375db8df84"},"length":1704,"version":2},"targets.json":{"hashes":{"sha512":"4660bb716c66653e60915e132972e9c60e000644c56d892f54303ccaf5392100d22a613e93c0acd196f230156d9278ce48cf4acc7b278e39d027bb77430a1474"},"length":841,"version":3}},"spec_version":"1.0","version":3},"signatures":[{"keyid":"7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321","sig":"1f8c0d14621c8ff42effa12de2e38cd5191cf54fdd6dcb9c748f96cb75c074f6412382f1e20ec066a7d7ed06181aec8938c0d3b2af54e5ec0381a42a53c39c02"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/7ff09cead126fb7f2c923ef024074c51b626e2d3dfce31159312186d3c10c838faac51cae57c95e1032ede047800450eff71a0a8d3b45167640ebbe45cad4dcd.snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/7ff09cead126fb7f2c923ef024074c51b626e2d3dfce31159312186d3c10c838faac51cae57c95e1032ede047800450eff71a0a8d3b45167640ebbe45cad4dcd.snapshot.json
deleted file mode 100644
index 1a64206..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/7ff09cead126fb7f2c923ef024074c51b626e2d3dfce31159312186d3c10c838faac51cae57c95e1032ede047800450eff71a0a8d3b45167640ebbe45cad4dcd.snapshot.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"snapshot","expires":"2100-01-01T00:00:00Z","meta":{"root.json":{"hashes":{"sha512":"bfe96f67a4f04ee6466f17912d1011a88a8c3a27b24b9ad62121af5a3222cdbb09a8f9d82446498b4a13603d3b305e7278d51a59470422a4de361e375db8df84"},"length":1704,"version":2},"targets.json":{"hashes":{"sha512":"bfb9550cac278a45a1b7d88fc177831c289227c310c30fb5638d0946ba6f09b6942576e6c950e8c864d5ad1300fd446fb9fb1c3e05e6facf1794abfc72039da4"},"length":673,"version":2}},"spec_version":"1.0","version":2},"signatures":[{"keyid":"7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321","sig":"d30f405c3ff0c0917da5f6bce6d03e8f3ba521b0a545517ef3af0d451f88bced5985b119e6fc60dd4c714b43cfec0742471b9eff97d5200605b44a0976783106"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/99ffcefa3fb33952e13acef9a46f1510a528eb3d5ffe99014fef5468d4131c1fbc113e2eda90b41daa119bb6b02e8c75da00550acdc3c1cdca3be78378b6af06.root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/99ffcefa3fb33952e13acef9a46f1510a528eb3d5ffe99014fef5468d4131c1fbc113e2eda90b41daa119bb6b02e8c75da00550acdc3c1cdca3be78378b6af06.root.json
deleted file mode 100644
index 5cb9301..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/99ffcefa3fb33952e13acef9a46f1510a528eb3d5ffe99014fef5468d4131c1fbc113e2eda90b41daa119bb6b02e8c75da00550acdc3c1cdca3be78378b6af06.root.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"root","consistent_snapshot":true,"expires":"2100-01-01T00:00:00Z","keys":{"2ffb4fd85c3a009d7c42d4f074a9b5156e2242c421fa801fd81eda01c434d23f":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"4df070f02a97f5d0f0e7cbb3554e7ae0b6733a56ff7dfc1ac52094a3aded9c64"},"scheme":"ed25519"},"7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"88c224c1d6175f3dbb6870edd3e138ccf8f714d6cb6f4cccdaf74f989c207cef"},"scheme":"ed25519"},"d9e08f115261bf9e9c92cda6faf73313c6ac20813b5094d989e10d9df43a2385":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"d856ec7d531a2fb84e78b6030efff92ee2b152b7bc8708bbbd32de155e60469d"},"scheme":"ed25519"},"eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"2cb97b1af650c5960ab9d5fa3e4192b8e8a3432df927f2ba30243930c786bb3c"},"scheme":"ed25519"}},"roles":{"root":{"keyids":["d9e08f115261bf9e9c92cda6faf73313c6ac20813b5094d989e10d9df43a2385"],"threshold":1},"snapshot":{"keyids":["7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321"],"threshold":1},"targets":{"keyids":["eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f"],"threshold":1},"timestamp":{"keyids":["2ffb4fd85c3a009d7c42d4f074a9b5156e2242c421fa801fd81eda01c434d23f"],"threshold":1}},"spec_version":"1.0","version":4},"signatures":[{"keyid":"d9e08f115261bf9e9c92cda6faf73313c6ac20813b5094d989e10d9df43a2385","sig":"90d2d6f073ec43a3991a4fcc579e15d68cf5bc24059d2871c58fdcec05f17420bcc3fcec6e93010ffcf03852b3f33bc1567d3a986f0d726d0df910b44de9010d"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/9f5fc2d9ce69a25bb762d051aaddfc3b4f22cc6a36ecd776c5ea582016226ae37c2210d9b40483a7d7b997c7a78319883f7215dc03419b49b978ebc592fb7df2.snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/9f5fc2d9ce69a25bb762d051aaddfc3b4f22cc6a36ecd776c5ea582016226ae37c2210d9b40483a7d7b997c7a78319883f7215dc03419b49b978ebc592fb7df2.snapshot.json
deleted file mode 100644
index 3e27316..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/9f5fc2d9ce69a25bb762d051aaddfc3b4f22cc6a36ecd776c5ea582016226ae37c2210d9b40483a7d7b997c7a78319883f7215dc03419b49b978ebc592fb7df2.snapshot.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"snapshot","expires":"2100-01-01T00:00:00Z","meta":{"root.json":{"hashes":{"sha512":"442997801bc8613be35f2da13622ee110d2bb4ad2638e7ce327e218352bcd78a535294e6cabfa43628e27d419bdaf15b084fa3ca7da8faa2b5af6ca4f144f29f"},"length":1918,"version":3},"targets.json":{"hashes":{"sha512":"ceff5553a373f97d9ac2fef9162e04941461c308c55821918c6e7113cfdaddc4fb1f478ef16360cc92e0e7e37f7bc3a68a8483d6c40141e7c5c9a5eebddb1ae5"},"length":1009,"version":4}},"spec_version":"1.0","version":4},"signatures":[{"keyid":"7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321","sig":"bc8851b180b933f967c3bae4ff24f86c464cbfb470e6ef03594c5d6133987009ba329a10ef54d39226e09267dc55d81a1c66fd4fad23ccb03a052bcc81ffe002"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/bfb9550cac278a45a1b7d88fc177831c289227c310c30fb5638d0946ba6f09b6942576e6c950e8c864d5ad1300fd446fb9fb1c3e05e6facf1794abfc72039da4.targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/bfb9550cac278a45a1b7d88fc177831c289227c310c30fb5638d0946ba6f09b6942576e6c950e8c864d5ad1300fd446fb9fb1c3e05e6facf1794abfc72039da4.targets.json
deleted file mode 100644
index 31d08bd..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/bfb9550cac278a45a1b7d88fc177831c289227c310c30fb5638d0946ba6f09b6942576e6c950e8c864d5ad1300fd446fb9fb1c3e05e6facf1794abfc72039da4.targets.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"targets","expires":"2100-01-01T00:00:00Z","spec_version":"1.0","targets":{"0":{"hashes":{"sha512":"31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"},"length":1},"1":{"hashes":{"sha512":"4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a"},"length":1}},"version":2},"signatures":[{"keyid":"eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f","sig":"7b69960653d7dbacd867655f7802487d028430c4df53ca94a8eaa65cd4f84986532ab34ab6aa349f391dc03b0ef94c5af5bfc7ba3a428ddba581bd2c26dc9702"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/bfe96f67a4f04ee6466f17912d1011a88a8c3a27b24b9ad62121af5a3222cdbb09a8f9d82446498b4a13603d3b305e7278d51a59470422a4de361e375db8df84.root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/bfe96f67a4f04ee6466f17912d1011a88a8c3a27b24b9ad62121af5a3222cdbb09a8f9d82446498b4a13603d3b305e7278d51a59470422a4de361e375db8df84.root.json
deleted file mode 100644
index ecba9d9..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/bfe96f67a4f04ee6466f17912d1011a88a8c3a27b24b9ad62121af5a3222cdbb09a8f9d82446498b4a13603d3b305e7278d51a59470422a4de361e375db8df84.root.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"root","consistent_snapshot":true,"expires":"2100-01-01T00:00:00Z","keys":{"2ffb4fd85c3a009d7c42d4f074a9b5156e2242c421fa801fd81eda01c434d23f":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"4df070f02a97f5d0f0e7cbb3554e7ae0b6733a56ff7dfc1ac52094a3aded9c64"},"scheme":"ed25519"},"4e8daa3c2904f32d334729b603ded23b5cf950c20564a2a48b77c24dcde407c3":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"e382c952a736d52be2ab82e486d3f3b27e60e221b636087f3fc3cb71beda0ade"},"scheme":"ed25519"},"7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"88c224c1d6175f3dbb6870edd3e138ccf8f714d6cb6f4cccdaf74f989c207cef"},"scheme":"ed25519"},"eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"2cb97b1af650c5960ab9d5fa3e4192b8e8a3432df927f2ba30243930c786bb3c"},"scheme":"ed25519"}},"roles":{"root":{"keyids":["4e8daa3c2904f32d334729b603ded23b5cf950c20564a2a48b77c24dcde407c3"],"threshold":1},"snapshot":{"keyids":["7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321"],"threshold":1},"targets":{"keyids":["eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f"],"threshold":1},"timestamp":{"keyids":["2ffb4fd85c3a009d7c42d4f074a9b5156e2242c421fa801fd81eda01c434d23f"],"threshold":1}},"spec_version":"1.0","version":2},"signatures":[{"keyid":"4e8daa3c2904f32d334729b603ded23b5cf950c20564a2a48b77c24dcde407c3","sig":"1d4b8e3ba03158c64029e4f1d9e580905d1ed1a0c87242e09edd36ed6104ed8587b20bfe3a7669d040028149fe945818f150cff5ad302bdf6071e0bfb5ba5206"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/c30accb049704fa7b471e4c5869648158f3395b368898c8fa91c56c9e8838d9ffbb810e01cf648a04408a3fffa32125d4f0a16b3326e8c7bc86e6f1fbd5136a6.root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/c30accb049704fa7b471e4c5869648158f3395b368898c8fa91c56c9e8838d9ffbb810e01cf648a04408a3fffa32125d4f0a16b3326e8c7bc86e6f1fbd5136a6.root.json
deleted file mode 100644
index d6e3979..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/c30accb049704fa7b471e4c5869648158f3395b368898c8fa91c56c9e8838d9ffbb810e01cf648a04408a3fffa32125d4f0a16b3326e8c7bc86e6f1fbd5136a6.root.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"root","consistent_snapshot":true,"expires":"2100-01-01T00:00:00Z","keys":{"3901e5474c946f204ec6a239ad261a8ccab4949fc6178cef1d48eb01a040521d":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"e1cb1f371c8f7a31dd0b39309c5d02af11ffaa1a7c71778d2b885ce77757a5e3"},"scheme":"ed25519"},"4e8daa3c2904f32d334729b603ded23b5cf950c20564a2a48b77c24dcde407c3":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"e382c952a736d52be2ab82e486d3f3b27e60e221b636087f3fc3cb71beda0ade"},"scheme":"ed25519"},"7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"88c224c1d6175f3dbb6870edd3e138ccf8f714d6cb6f4cccdaf74f989c207cef"},"scheme":"ed25519"},"eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"2cb97b1af650c5960ab9d5fa3e4192b8e8a3432df927f2ba30243930c786bb3c"},"scheme":"ed25519"}},"roles":{"root":{"keyids":["4e8daa3c2904f32d334729b603ded23b5cf950c20564a2a48b77c24dcde407c3"],"threshold":1},"snapshot":{"keyids":["7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321"],"threshold":1},"targets":{"keyids":["eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f"],"threshold":1},"timestamp":{"keyids":["3901e5474c946f204ec6a239ad261a8ccab4949fc6178cef1d48eb01a040521d"],"threshold":1}},"spec_version":"1.0","version":1},"signatures":[{"keyid":"4e8daa3c2904f32d334729b603ded23b5cf950c20564a2a48b77c24dcde407c3","sig":"ba1c7544af8cdee5cb70eee5bf7871d20b34ef1c480854513e9590746ad2686db9bec7fc1259a0f5206e113dc4aab18fc251d173fa0b3cbfdb95ee92d5c5d50b"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/ceff5553a373f97d9ac2fef9162e04941461c308c55821918c6e7113cfdaddc4fb1f478ef16360cc92e0e7e37f7bc3a68a8483d6c40141e7c5c9a5eebddb1ae5.targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/ceff5553a373f97d9ac2fef9162e04941461c308c55821918c6e7113cfdaddc4fb1f478ef16360cc92e0e7e37f7bc3a68a8483d6c40141e7c5c9a5eebddb1ae5.targets.json
deleted file mode 100644
index 335291b..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/ceff5553a373f97d9ac2fef9162e04941461c308c55821918c6e7113cfdaddc4fb1f478ef16360cc92e0e7e37f7bc3a68a8483d6c40141e7c5c9a5eebddb1ae5.targets.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"targets","expires":"2100-01-01T00:00:00Z","spec_version":"1.0","targets":{"0":{"hashes":{"sha512":"31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"},"length":1},"1":{"hashes":{"sha512":"4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a"},"length":1},"2":{"hashes":{"sha512":"40b244112641dd78dd4f93b6c9190dd46e0099194d5a44257b7efad6ef9ff4683da1eda0244448cb343aa688f5d3efd7314dafe580ac0bcbf115aeca9e8dc114"},"length":1},"3":{"hashes":{"sha512":"3bafbf08882a2d10133093a1b8433f50563b93c14acd05b79028eb1d12799027241450980651994501423a66c276ae26c43b739bc65c4e16b10c3af6c202aebb"},"length":1}},"version":4},"signatures":[{"keyid":"eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f","sig":"0fc15d44da54f13a30631c2264ba0cbd4c0ad5efb9a2aa71451d7258f98cb5b3597f1165dce688a05f8001f7ec2a51eee6382835121e8176ffdafe4e38c0050e"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/root.json
index 5cb9301..4e4912d 100644
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/root.json
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/root.json
@@ -1 +1,83 @@
-{"signed":{"_type":"root","consistent_snapshot":true,"expires":"2100-01-01T00:00:00Z","keys":{"2ffb4fd85c3a009d7c42d4f074a9b5156e2242c421fa801fd81eda01c434d23f":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"4df070f02a97f5d0f0e7cbb3554e7ae0b6733a56ff7dfc1ac52094a3aded9c64"},"scheme":"ed25519"},"7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"88c224c1d6175f3dbb6870edd3e138ccf8f714d6cb6f4cccdaf74f989c207cef"},"scheme":"ed25519"},"d9e08f115261bf9e9c92cda6faf73313c6ac20813b5094d989e10d9df43a2385":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"d856ec7d531a2fb84e78b6030efff92ee2b152b7bc8708bbbd32de155e60469d"},"scheme":"ed25519"},"eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"2cb97b1af650c5960ab9d5fa3e4192b8e8a3432df927f2ba30243930c786bb3c"},"scheme":"ed25519"}},"roles":{"root":{"keyids":["d9e08f115261bf9e9c92cda6faf73313c6ac20813b5094d989e10d9df43a2385"],"threshold":1},"snapshot":{"keyids":["7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321"],"threshold":1},"targets":{"keyids":["eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f"],"threshold":1},"timestamp":{"keyids":["2ffb4fd85c3a009d7c42d4f074a9b5156e2242c421fa801fd81eda01c434d23f"],"threshold":1}},"spec_version":"1.0","version":4},"signatures":[{"keyid":"d9e08f115261bf9e9c92cda6faf73313c6ac20813b5094d989e10d9df43a2385","sig":"90d2d6f073ec43a3991a4fcc579e15d68cf5bc24059d2871c58fdcec05f17420bcc3fcec6e93010ffcf03852b3f33bc1567d3a986f0d726d0df910b44de9010d"}]}
\ No newline at end of file
+{
+	"signatures": [
+		{
+			"keyid": "4c663b6d0b9f2c74a19b6791c1417c8d1916e2d84461be1a8148e4386c89582d",
+			"sig": "a8bf62746b62a58f80c81bdbbdc67d142f1db9e6681ac0e46bf7d33aeac527e86af8294a35fea4cfd6c750d4f1333287c201837b2b37fce7a440ea58bdb0d907"
+		}
+	],
+	"signed": {
+		"_type": "root",
+		"consistent_snapshot": true,
+		"expires": "2100-01-01T00:00:00Z",
+		"keys": {
+			"4c663b6d0b9f2c74a19b6791c1417c8d1916e2d84461be1a8148e4386c89582d": {
+				"keyid_hash_algorithms": [
+					"sha256"
+				],
+				"keytype": "ed25519",
+				"keyval": {
+					"public": "153986a7370e002f377dd68797e7466c421180c1571e233de2f8ab41c8af4f54"
+				},
+				"scheme": "ed25519"
+			},
+			"79b5760e4c96b6becc12bec4260c9c1d533b9b70628ade2b229ef02b772b10b0": {
+				"keyid_hash_algorithms": [
+					"sha256"
+				],
+				"keytype": "ed25519",
+				"keyval": {
+					"public": "3ab34b0c2d4eadccaa0f0cf22ced07b552394063a9de2806993d022360dffc76"
+				},
+				"scheme": "ed25519"
+			},
+			"a3eba2113e37b749b908101bdb7b856a44f2853641830c0f939730aca3e30360": {
+				"keyid_hash_algorithms": [
+					"sha256"
+				],
+				"keytype": "ed25519",
+				"keyval": {
+					"public": "aee574e56780ea1709a8b56e02d4ffdd9a3a1deaed61e2eb0701f376a4422e42"
+				},
+				"scheme": "ed25519"
+			},
+			"bed15bf57ba4deb4e09667099d45d119504420983d16fd0927ebfb0c25184e7f": {
+				"keyid_hash_algorithms": [
+					"sha256"
+				],
+				"keytype": "ed25519",
+				"keyval": {
+					"public": "722dbc861813bb5b568524d62083e875c08e66fed1694d9161d253fa163dd86f"
+				},
+				"scheme": "ed25519"
+			}
+		},
+		"roles": {
+			"root": {
+				"keyids": [
+					"4c663b6d0b9f2c74a19b6791c1417c8d1916e2d84461be1a8148e4386c89582d"
+				],
+				"threshold": 1
+			},
+			"snapshot": {
+				"keyids": [
+					"bed15bf57ba4deb4e09667099d45d119504420983d16fd0927ebfb0c25184e7f"
+				],
+				"threshold": 1
+			},
+			"targets": {
+				"keyids": [
+					"a3eba2113e37b749b908101bdb7b856a44f2853641830c0f939730aca3e30360"
+				],
+				"threshold": 1
+			},
+			"timestamp": {
+				"keyids": [
+					"79b5760e4c96b6becc12bec4260c9c1d533b9b70628ade2b229ef02b772b10b0"
+				],
+				"threshold": 1
+			}
+		},
+		"spec_version": "1.0",
+		"version": 5
+	}
+}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/snapshot.json
index 4b636e7..e62aef9 100644
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/snapshot.json
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/snapshot.json
@@ -1 +1,30 @@
-{"signed":{"_type":"snapshot","expires":"2100-01-01T00:00:00Z","meta":{"root.json":{"hashes":{"sha512":"99ffcefa3fb33952e13acef9a46f1510a528eb3d5ffe99014fef5468d4131c1fbc113e2eda90b41daa119bb6b02e8c75da00550acdc3c1cdca3be78378b6af06"},"length":1704,"version":4},"targets.json":{"hashes":{"sha512":"4a306013447ca3eaf6f19d41eac1460b2d5d9fd3fcac6ae2abe5b290a8a90c394a4b6f9e0964feda539362ffe1ce5156f2d0b030a002e202a2dd0c6caa719287"},"length":1177,"version":5}},"spec_version":"1.0","version":5},"signatures":[{"keyid":"7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321","sig":"734b2eaa0e79b828c30b6e98c64eeaf399f49be608f9043e185eca18436997ee09064aba26fb3a26906473a7fcbdb941056c369d7049db1cd1ace139e785700b"}]}
\ No newline at end of file
+{
+	"signatures": [
+		{
+			"keyid": "bed15bf57ba4deb4e09667099d45d119504420983d16fd0927ebfb0c25184e7f",
+			"sig": "6c6b90af042c63f79a7d8079a26bd58fdcb8d84c829fd62aa554b4e9df6d31dfb5a6efb7744b814f7536ace6196c2e0b2768794fa40abf85b49dcc661d0f9a06"
+		}
+	],
+	"signed": {
+		"_type": "snapshot",
+		"expires": "2100-01-01T00:00:00Z",
+		"meta": {
+			"root.json": {
+				"hashes": {
+					"sha512": "7a60ff2c4e027e05c318e9a0dc891c46e9899994b50c2ac0dad0bd6f439c69a71486606adf309969f981de6b20630e27f0e529e020c41c638b9f0895ccbd797b"
+				},
+				"length": 2117,
+				"version": 5
+			},
+			"targets.json": {
+				"hashes": {
+					"sha512": "25ba8ef109680040b2e28dde51389397c51f4ba12acb1ea1b70dfc7e1bc5eceec71b1cbfb4747c47af8d9cdf76baa53ab5b2403eef226be1ae7a8d7794474ebf"
+				},
+				"length": 1392,
+				"version": 5
+			}
+		},
+		"spec_version": "1.0",
+		"version": 5
+	}
+}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/targets.json
index 5d96aba..163e9e8 100644
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/targets.json
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/targets.json
@@ -1 +1,46 @@
-{"signed":{"_type":"targets","expires":"2100-01-01T00:00:00Z","spec_version":"1.0","targets":{"0":{"hashes":{"sha512":"31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"},"length":1},"1":{"hashes":{"sha512":"4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a"},"length":1},"2":{"hashes":{"sha512":"40b244112641dd78dd4f93b6c9190dd46e0099194d5a44257b7efad6ef9ff4683da1eda0244448cb343aa688f5d3efd7314dafe580ac0bcbf115aeca9e8dc114"},"length":1},"3":{"hashes":{"sha512":"3bafbf08882a2d10133093a1b8433f50563b93c14acd05b79028eb1d12799027241450980651994501423a66c276ae26c43b739bc65c4e16b10c3af6c202aebb"},"length":1},"4":{"hashes":{"sha512":"a321d8b405e3ef2604959847b36d171eebebc4a8941dc70a4784935a4fca5d5813de84dfa049f06549aa61b20848c1633ce81b675286ea8fb53db240d831c568"},"length":1}},"version":5},"signatures":[{"keyid":"eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f","sig":"027fbebf542248744f81dfd2bcaf4a877d05bc5c0fff2aa49c8cd6fb35da9bc904064dc40155c488f6eb5cae31423a8525da85ab7a95bd37821bb95971b9c70f"}]}
\ No newline at end of file
+{
+	"signatures": [
+		{
+			"keyid": "a3eba2113e37b749b908101bdb7b856a44f2853641830c0f939730aca3e30360",
+			"sig": "68f2346cdbe045e8558b2ccd86be66e15466955167557c704b51d7163838f670c53ab9247c16a4ed0cd4ecc981a7e2a04a350b01548f97654499d6f9c17c4202"
+		}
+	],
+	"signed": {
+		"_type": "targets",
+		"expires": "2100-01-01T00:00:00Z",
+		"spec_version": "1.0",
+		"targets": {
+			"0": {
+				"hashes": {
+					"sha512": "31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"
+				},
+				"length": 1
+			},
+			"1": {
+				"hashes": {
+					"sha512": "4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a"
+				},
+				"length": 1
+			},
+			"2": {
+				"hashes": {
+					"sha512": "40b244112641dd78dd4f93b6c9190dd46e0099194d5a44257b7efad6ef9ff4683da1eda0244448cb343aa688f5d3efd7314dafe580ac0bcbf115aeca9e8dc114"
+				},
+				"length": 1
+			},
+			"3": {
+				"hashes": {
+					"sha512": "3bafbf08882a2d10133093a1b8433f50563b93c14acd05b79028eb1d12799027241450980651994501423a66c276ae26c43b739bc65c4e16b10c3af6c202aebb"
+				},
+				"length": 1
+			},
+			"4": {
+				"hashes": {
+					"sha512": "a321d8b405e3ef2604959847b36d171eebebc4a8941dc70a4784935a4fca5d5813de84dfa049f06549aa61b20848c1633ce81b675286ea8fb53db240d831c568"
+				},
+				"length": 1
+			}
+		},
+		"version": 5
+	}
+}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/targets/0.0 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/targets/0.0
deleted file mode 100644
index c227083..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/targets/0.0
+++ /dev/null
@@ -1 +0,0 @@
-0
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/targets/0.1 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/targets/0.1
deleted file mode 100644
index 56a6051..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/targets/0.1
+++ /dev/null
@@ -1 +0,0 @@
-1
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/targets/0.2 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/targets/0.2
deleted file mode 100644
index d8263ee..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/targets/0.2
+++ /dev/null
@@ -1 +0,0 @@
-2
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/targets/0.3 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/targets/0.3
deleted file mode 100644
index e440e5c..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/targets/0.3
+++ /dev/null
@@ -1 +0,0 @@
-3
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/targets/0.4 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/targets/0.4
deleted file mode 100644
index bf0d87a..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/targets/0.4
+++ /dev/null
@@ -1 +0,0 @@
-4
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/targets/31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99.0 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/targets/31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99.0
deleted file mode 100644
index c227083..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/targets/31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99.0
+++ /dev/null
@@ -1 +0,0 @@
-0
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/targets/31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99.0 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/targets/31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99.0
new file mode 120000
index 0000000..8bca78f
--- /dev/null
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/targets/31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99.0
@@ -0,0 +1 @@
+../../../3/repository/targets/31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99.0
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/targets/3bafbf08882a2d10133093a1b8433f50563b93c14acd05b79028eb1d12799027241450980651994501423a66c276ae26c43b739bc65c4e16b10c3af6c202aebb.3 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/targets/3bafbf08882a2d10133093a1b8433f50563b93c14acd05b79028eb1d12799027241450980651994501423a66c276ae26c43b739bc65c4e16b10c3af6c202aebb.3
deleted file mode 100644
index e440e5c..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/targets/3bafbf08882a2d10133093a1b8433f50563b93c14acd05b79028eb1d12799027241450980651994501423a66c276ae26c43b739bc65c4e16b10c3af6c202aebb.3
+++ /dev/null
@@ -1 +0,0 @@
-3
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/targets/3bafbf08882a2d10133093a1b8433f50563b93c14acd05b79028eb1d12799027241450980651994501423a66c276ae26c43b739bc65c4e16b10c3af6c202aebb.3 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/targets/3bafbf08882a2d10133093a1b8433f50563b93c14acd05b79028eb1d12799027241450980651994501423a66c276ae26c43b739bc65c4e16b10c3af6c202aebb.3
new file mode 120000
index 0000000..814339f
--- /dev/null
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/targets/3bafbf08882a2d10133093a1b8433f50563b93c14acd05b79028eb1d12799027241450980651994501423a66c276ae26c43b739bc65c4e16b10c3af6c202aebb.3
@@ -0,0 +1 @@
+../../../3/repository/targets/3bafbf08882a2d10133093a1b8433f50563b93c14acd05b79028eb1d12799027241450980651994501423a66c276ae26c43b739bc65c4e16b10c3af6c202aebb.3
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/targets/40b244112641dd78dd4f93b6c9190dd46e0099194d5a44257b7efad6ef9ff4683da1eda0244448cb343aa688f5d3efd7314dafe580ac0bcbf115aeca9e8dc114.2 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/targets/40b244112641dd78dd4f93b6c9190dd46e0099194d5a44257b7efad6ef9ff4683da1eda0244448cb343aa688f5d3efd7314dafe580ac0bcbf115aeca9e8dc114.2
deleted file mode 100644
index d8263ee..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/targets/40b244112641dd78dd4f93b6c9190dd46e0099194d5a44257b7efad6ef9ff4683da1eda0244448cb343aa688f5d3efd7314dafe580ac0bcbf115aeca9e8dc114.2
+++ /dev/null
@@ -1 +0,0 @@
-2
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/targets/40b244112641dd78dd4f93b6c9190dd46e0099194d5a44257b7efad6ef9ff4683da1eda0244448cb343aa688f5d3efd7314dafe580ac0bcbf115aeca9e8dc114.2 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/targets/40b244112641dd78dd4f93b6c9190dd46e0099194d5a44257b7efad6ef9ff4683da1eda0244448cb343aa688f5d3efd7314dafe580ac0bcbf115aeca9e8dc114.2
new file mode 120000
index 0000000..dc5c46d
--- /dev/null
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/targets/40b244112641dd78dd4f93b6c9190dd46e0099194d5a44257b7efad6ef9ff4683da1eda0244448cb343aa688f5d3efd7314dafe580ac0bcbf115aeca9e8dc114.2
@@ -0,0 +1 @@
+../../../3/repository/targets/40b244112641dd78dd4f93b6c9190dd46e0099194d5a44257b7efad6ef9ff4683da1eda0244448cb343aa688f5d3efd7314dafe580ac0bcbf115aeca9e8dc114.2
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/targets/4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a.1 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/targets/4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a.1
deleted file mode 100644
index 56a6051..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/targets/4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a.1
+++ /dev/null
@@ -1 +0,0 @@
-1
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/targets/4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a.1 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/targets/4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a.1
new file mode 120000
index 0000000..16b7967
--- /dev/null
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/targets/4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a.1
@@ -0,0 +1 @@
+../../../3/repository/targets/4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a.1
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/timestamp.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/timestamp.json
index 59f2e6f..028d631 100644
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/timestamp.json
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/4/repository/timestamp.json
@@ -1 +1,23 @@
-{"signed":{"_type":"timestamp","expires":"2100-01-01T00:00:00Z","meta":{"snapshot.json":{"hashes":{"sha512":"2ac1085fa604d17ca1a04065046421498512666c260d8c22251ca78d43a12e41a0356683ecacd1d2f22c684964ba3c1b0d5735bc4541eb5c94feb3fadb6057ec"},"length":720,"version":5}},"spec_version":"1.0","version":5},"signatures":[{"keyid":"2ffb4fd85c3a009d7c42d4f074a9b5156e2242c421fa801fd81eda01c434d23f","sig":"950f2e4c37186176ce3d17214109f1da302f143c9732ce48cf4760f97403dc8f5b2fe41b6fc729a928ddc911c3fd52794f61f73b54c9722787a613a8dfe8ff01"}]}
\ No newline at end of file
+{
+	"signatures": [
+		{
+			"keyid": "79b5760e4c96b6becc12bec4260c9c1d533b9b70628ade2b229ef02b772b10b0",
+			"sig": "6341fa975ecf98a7144a458ed4dc6a32b4d3bd0121fc0831679a582a9628cff71f8b13fe5b14f4fc8227f5ae8cfbc40998ed3ccfec84a91ee1e7ce6996678003"
+		}
+	],
+	"signed": {
+		"_type": "timestamp",
+		"expires": "2100-01-01T00:00:00Z",
+		"meta": {
+			"snapshot.json": {
+				"hashes": {
+					"sha512": "d1e96adc64da3b4d67016060b8ee9034e486e288595d51d5c24fcd037d4e756a6cff8a9e244da5de9b2bb6ab5bb7f3e7238ffebad0a1a3d50587d01c28f98c15"
+				},
+				"length": 848,
+				"version": 5
+			}
+		},
+		"spec_version": "1.0",
+		"version": 5
+	}
+}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/keys/root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/keys/root.json
deleted file mode 100644
index 99e9b34..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/keys/root.json
+++ /dev/null
@@ -1 +0,0 @@
-{"encrypted":false,"data":[{"keytype":"ed25519","scheme":"ed25519","keyid_hash_algorithms":["sha512"],"keyval":{"public":"d856ec7d531a2fb84e78b6030efff92ee2b152b7bc8708bbbd32de155e60469d","private":"5c5812258adcf9ba2b28605677759410d73d5ef047d2d3176d89af4c062952fdd856ec7d531a2fb84e78b6030efff92ee2b152b7bc8708bbbd32de155e60469d"}}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/keys/snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/keys/snapshot.json
deleted file mode 100644
index 10f3195..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/keys/snapshot.json
+++ /dev/null
@@ -1,27 +0,0 @@
-{
-	"encrypted": false,
-	"data": [
-		{
-			"keytype": "ed25519",
-			"scheme": "ed25519",
-			"keyid_hash_algorithms": [
-				"sha512"
-			],
-			"keyval": {
-				"public": "88c224c1d6175f3dbb6870edd3e138ccf8f714d6cb6f4cccdaf74f989c207cef",
-				"private": "56943269321253b65cbc2fb7a476ce165283fcb7fec69d977f131c96ec410ebe88c224c1d6175f3dbb6870edd3e138ccf8f714d6cb6f4cccdaf74f989c207cef"
-			}
-		},
-		{
-			"keytype": "ed25519",
-			"scheme": "ed25519",
-			"keyid_hash_algorithms": [
-				"sha512"
-			],
-			"keyval": {
-				"public": "80d4eba80ae98d790c974ffb9555fe5a830a8c9c48f532d25aa538c05528d8be",
-				"private": "9f0e1e30cf4bf70af9d0833abfb74c0049b1e9faf5806907031a1ab6e82ee1f480d4eba80ae98d790c974ffb9555fe5a830a8c9c48f532d25aa538c05528d8be"
-			}
-		}
-	]
-}
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/keys/targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/keys/targets.json
deleted file mode 100644
index c24ecf5..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/keys/targets.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
-	"encrypted": false,
-	"data": [
-		{
-			"keytype": "ed25519",
-			"scheme": "ed25519",
-			"keyid_hash_algorithms": [
-				"sha512"
-			],
-			"keyval": {
-				"public": "2cb97b1af650c5960ab9d5fa3e4192b8e8a3432df927f2ba30243930c786bb3c",
-				"private": "9f530290cb71059f1fee0147e88076caa53dceddfcde4b826d61dd2a8945ad712cb97b1af650c5960ab9d5fa3e4192b8e8a3432df927f2ba30243930c786bb3c"
-			}
-		}
-	]
-}
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/keys/timestamp.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/keys/timestamp.json
deleted file mode 100644
index dd1cc81..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/keys/timestamp.json
+++ /dev/null
@@ -1 +0,0 @@
-{"encrypted":false,"data":[{"keytype":"ed25519","scheme":"ed25519","keyid_hash_algorithms":["sha512"],"keyval":{"public":"4df070f02a97f5d0f0e7cbb3554e7ae0b6733a56ff7dfc1ac52094a3aded9c64","private":"2393a13f038713a2d2ae7a80d0bdf5bd8e018e35967c3bdfd8ca8b115e47c01d4df070f02a97f5d0f0e7cbb3554e7ae0b6733a56ff7dfc1ac52094a3aded9c64"}}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/1.root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/1.root.json
deleted file mode 100644
index d6e3979..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/1.root.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"root","consistent_snapshot":true,"expires":"2100-01-01T00:00:00Z","keys":{"3901e5474c946f204ec6a239ad261a8ccab4949fc6178cef1d48eb01a040521d":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"e1cb1f371c8f7a31dd0b39309c5d02af11ffaa1a7c71778d2b885ce77757a5e3"},"scheme":"ed25519"},"4e8daa3c2904f32d334729b603ded23b5cf950c20564a2a48b77c24dcde407c3":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"e382c952a736d52be2ab82e486d3f3b27e60e221b636087f3fc3cb71beda0ade"},"scheme":"ed25519"},"7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"88c224c1d6175f3dbb6870edd3e138ccf8f714d6cb6f4cccdaf74f989c207cef"},"scheme":"ed25519"},"eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"2cb97b1af650c5960ab9d5fa3e4192b8e8a3432df927f2ba30243930c786bb3c"},"scheme":"ed25519"}},"roles":{"root":{"keyids":["4e8daa3c2904f32d334729b603ded23b5cf950c20564a2a48b77c24dcde407c3"],"threshold":1},"snapshot":{"keyids":["7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321"],"threshold":1},"targets":{"keyids":["eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f"],"threshold":1},"timestamp":{"keyids":["3901e5474c946f204ec6a239ad261a8ccab4949fc6178cef1d48eb01a040521d"],"threshold":1}},"spec_version":"1.0","version":1},"signatures":[{"keyid":"4e8daa3c2904f32d334729b603ded23b5cf950c20564a2a48b77c24dcde407c3","sig":"ba1c7544af8cdee5cb70eee5bf7871d20b34ef1c480854513e9590746ad2686db9bec7fc1259a0f5206e113dc4aab18fc251d173fa0b3cbfdb95ee92d5c5d50b"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/1.root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/1.root.json
new file mode 120000
index 0000000..fb796e3
--- /dev/null
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/1.root.json
@@ -0,0 +1 @@
+../../4/repository/1.root.json
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/1.snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/1.snapshot.json
deleted file mode 100644
index 6785251..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/1.snapshot.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"snapshot","expires":"2100-01-01T00:00:00Z","meta":{"root.json":{"hashes":{"sha512":"c30accb049704fa7b471e4c5869648158f3395b368898c8fa91c56c9e8838d9ffbb810e01cf648a04408a3fffa32125d4f0a16b3326e8c7bc86e6f1fbd5136a6"},"length":1704,"version":1},"targets.json":{"hashes":{"sha512":"4a09a98bfafccc0de35d0d4f683c817ee1d410b1432200cbfa8f6ec844d1ff00f183d27b4e4588f7239604a079ff0f4711fba15cceb02e69e1d928024462e112"},"length":505,"version":1}},"spec_version":"1.0","version":1},"signatures":[{"keyid":"7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321","sig":"00f4cadd08a9c414b112594d5efebecff11dac46b0e68907da7837eebd46e4f929b068dc53785f54adfba503c55a298678f4ebb7ff10a76c05ada43019af7206"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/1.snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/1.snapshot.json
new file mode 120000
index 0000000..f7fb098
--- /dev/null
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/1.snapshot.json
@@ -0,0 +1 @@
+../../4/repository/1.snapshot.json
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/1.targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/1.targets.json
deleted file mode 100644
index 633e87f..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/1.targets.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"targets","expires":"2100-01-01T00:00:00Z","spec_version":"1.0","targets":{"0":{"hashes":{"sha512":"31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"},"length":1}},"version":1},"signatures":[{"keyid":"eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f","sig":"09f3b7faeb4098137fd7fb365f1396307a7d9240d0df527f7fb4a2861c2bc869611636897146e0d2ba2afd9df348f4b99fb19dbe1ff16ce652d9617b09533806"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/1.targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/1.targets.json
new file mode 120000
index 0000000..127f609
--- /dev/null
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/1.targets.json
@@ -0,0 +1 @@
+../../4/repository/1.targets.json
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/2.root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/2.root.json
deleted file mode 100644
index ecba9d9..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/2.root.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"root","consistent_snapshot":true,"expires":"2100-01-01T00:00:00Z","keys":{"2ffb4fd85c3a009d7c42d4f074a9b5156e2242c421fa801fd81eda01c434d23f":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"4df070f02a97f5d0f0e7cbb3554e7ae0b6733a56ff7dfc1ac52094a3aded9c64"},"scheme":"ed25519"},"4e8daa3c2904f32d334729b603ded23b5cf950c20564a2a48b77c24dcde407c3":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"e382c952a736d52be2ab82e486d3f3b27e60e221b636087f3fc3cb71beda0ade"},"scheme":"ed25519"},"7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"88c224c1d6175f3dbb6870edd3e138ccf8f714d6cb6f4cccdaf74f989c207cef"},"scheme":"ed25519"},"eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"2cb97b1af650c5960ab9d5fa3e4192b8e8a3432df927f2ba30243930c786bb3c"},"scheme":"ed25519"}},"roles":{"root":{"keyids":["4e8daa3c2904f32d334729b603ded23b5cf950c20564a2a48b77c24dcde407c3"],"threshold":1},"snapshot":{"keyids":["7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321"],"threshold":1},"targets":{"keyids":["eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f"],"threshold":1},"timestamp":{"keyids":["2ffb4fd85c3a009d7c42d4f074a9b5156e2242c421fa801fd81eda01c434d23f"],"threshold":1}},"spec_version":"1.0","version":2},"signatures":[{"keyid":"4e8daa3c2904f32d334729b603ded23b5cf950c20564a2a48b77c24dcde407c3","sig":"1d4b8e3ba03158c64029e4f1d9e580905d1ed1a0c87242e09edd36ed6104ed8587b20bfe3a7669d040028149fe945818f150cff5ad302bdf6071e0bfb5ba5206"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/2.root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/2.root.json
new file mode 120000
index 0000000..5a3e454
--- /dev/null
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/2.root.json
@@ -0,0 +1 @@
+../../4/repository/2.root.json
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/2.snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/2.snapshot.json
deleted file mode 100644
index 1a64206..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/2.snapshot.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"snapshot","expires":"2100-01-01T00:00:00Z","meta":{"root.json":{"hashes":{"sha512":"bfe96f67a4f04ee6466f17912d1011a88a8c3a27b24b9ad62121af5a3222cdbb09a8f9d82446498b4a13603d3b305e7278d51a59470422a4de361e375db8df84"},"length":1704,"version":2},"targets.json":{"hashes":{"sha512":"bfb9550cac278a45a1b7d88fc177831c289227c310c30fb5638d0946ba6f09b6942576e6c950e8c864d5ad1300fd446fb9fb1c3e05e6facf1794abfc72039da4"},"length":673,"version":2}},"spec_version":"1.0","version":2},"signatures":[{"keyid":"7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321","sig":"d30f405c3ff0c0917da5f6bce6d03e8f3ba521b0a545517ef3af0d451f88bced5985b119e6fc60dd4c714b43cfec0742471b9eff97d5200605b44a0976783106"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/2.snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/2.snapshot.json
new file mode 120000
index 0000000..5b418d6
--- /dev/null
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/2.snapshot.json
@@ -0,0 +1 @@
+../../4/repository/2.snapshot.json
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/2.targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/2.targets.json
deleted file mode 100644
index 31d08bd..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/2.targets.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"targets","expires":"2100-01-01T00:00:00Z","spec_version":"1.0","targets":{"0":{"hashes":{"sha512":"31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"},"length":1},"1":{"hashes":{"sha512":"4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a"},"length":1}},"version":2},"signatures":[{"keyid":"eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f","sig":"7b69960653d7dbacd867655f7802487d028430c4df53ca94a8eaa65cd4f84986532ab34ab6aa349f391dc03b0ef94c5af5bfc7ba3a428ddba581bd2c26dc9702"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/2.targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/2.targets.json
new file mode 120000
index 0000000..04b0be4
--- /dev/null
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/2.targets.json
@@ -0,0 +1 @@
+../../4/repository/2.targets.json
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/27b3a3586c86fdd05e941098c10f71419f531d94bac36a272b5b978877652e7994ec657333d2e3894a2c1f53263eec729c8595f492f67b3eaafcc47b75e746c8.snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/27b3a3586c86fdd05e941098c10f71419f531d94bac36a272b5b978877652e7994ec657333d2e3894a2c1f53263eec729c8595f492f67b3eaafcc47b75e746c8.snapshot.json
deleted file mode 100644
index 6785251..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/27b3a3586c86fdd05e941098c10f71419f531d94bac36a272b5b978877652e7994ec657333d2e3894a2c1f53263eec729c8595f492f67b3eaafcc47b75e746c8.snapshot.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"snapshot","expires":"2100-01-01T00:00:00Z","meta":{"root.json":{"hashes":{"sha512":"c30accb049704fa7b471e4c5869648158f3395b368898c8fa91c56c9e8838d9ffbb810e01cf648a04408a3fffa32125d4f0a16b3326e8c7bc86e6f1fbd5136a6"},"length":1704,"version":1},"targets.json":{"hashes":{"sha512":"4a09a98bfafccc0de35d0d4f683c817ee1d410b1432200cbfa8f6ec844d1ff00f183d27b4e4588f7239604a079ff0f4711fba15cceb02e69e1d928024462e112"},"length":505,"version":1}},"spec_version":"1.0","version":1},"signatures":[{"keyid":"7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321","sig":"00f4cadd08a9c414b112594d5efebecff11dac46b0e68907da7837eebd46e4f929b068dc53785f54adfba503c55a298678f4ebb7ff10a76c05ada43019af7206"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/2ac1085fa604d17ca1a04065046421498512666c260d8c22251ca78d43a12e41a0356683ecacd1d2f22c684964ba3c1b0d5735bc4541eb5c94feb3fadb6057ec.snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/2ac1085fa604d17ca1a04065046421498512666c260d8c22251ca78d43a12e41a0356683ecacd1d2f22c684964ba3c1b0d5735bc4541eb5c94feb3fadb6057ec.snapshot.json
deleted file mode 100644
index 4b636e7..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/2ac1085fa604d17ca1a04065046421498512666c260d8c22251ca78d43a12e41a0356683ecacd1d2f22c684964ba3c1b0d5735bc4541eb5c94feb3fadb6057ec.snapshot.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"snapshot","expires":"2100-01-01T00:00:00Z","meta":{"root.json":{"hashes":{"sha512":"99ffcefa3fb33952e13acef9a46f1510a528eb3d5ffe99014fef5468d4131c1fbc113e2eda90b41daa119bb6b02e8c75da00550acdc3c1cdca3be78378b6af06"},"length":1704,"version":4},"targets.json":{"hashes":{"sha512":"4a306013447ca3eaf6f19d41eac1460b2d5d9fd3fcac6ae2abe5b290a8a90c394a4b6f9e0964feda539362ffe1ce5156f2d0b030a002e202a2dd0c6caa719287"},"length":1177,"version":5}},"spec_version":"1.0","version":5},"signatures":[{"keyid":"7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321","sig":"734b2eaa0e79b828c30b6e98c64eeaf399f49be608f9043e185eca18436997ee09064aba26fb3a26906473a7fcbdb941056c369d7049db1cd1ace139e785700b"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/3.root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/3.root.json
deleted file mode 100644
index e3c13aa..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/3.root.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"root","consistent_snapshot":true,"expires":"2100-01-01T00:00:00Z","keys":{"2ffb4fd85c3a009d7c42d4f074a9b5156e2242c421fa801fd81eda01c434d23f":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"4df070f02a97f5d0f0e7cbb3554e7ae0b6733a56ff7dfc1ac52094a3aded9c64"},"scheme":"ed25519"},"7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"88c224c1d6175f3dbb6870edd3e138ccf8f714d6cb6f4cccdaf74f989c207cef"},"scheme":"ed25519"},"d9e08f115261bf9e9c92cda6faf73313c6ac20813b5094d989e10d9df43a2385":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"d856ec7d531a2fb84e78b6030efff92ee2b152b7bc8708bbbd32de155e60469d"},"scheme":"ed25519"},"eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"2cb97b1af650c5960ab9d5fa3e4192b8e8a3432df927f2ba30243930c786bb3c"},"scheme":"ed25519"}},"roles":{"root":{"keyids":["d9e08f115261bf9e9c92cda6faf73313c6ac20813b5094d989e10d9df43a2385"],"threshold":1},"snapshot":{"keyids":["7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321"],"threshold":1},"targets":{"keyids":["eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f"],"threshold":1},"timestamp":{"keyids":["2ffb4fd85c3a009d7c42d4f074a9b5156e2242c421fa801fd81eda01c434d23f"],"threshold":1}},"spec_version":"1.0","version":3},"signatures":[{"keyid":"4e8daa3c2904f32d334729b603ded23b5cf950c20564a2a48b77c24dcde407c3","sig":"62f7995910e61d7e29f41fefaf1899c70591da779e163913ddcf3b212bf09890b25ff3f3f276b44c8a41393c9fb3dce484722a7811c7c2b8e17391c5cfd7cf06"},{"keyid":"d9e08f115261bf9e9c92cda6faf73313c6ac20813b5094d989e10d9df43a2385","sig":"c051c45a6a2359f8004dc1261e5a7029ced6270dc1812bd274d5bdfeae597eb3d902c666e3b434f18e7607005d1e6c1b88d1613cbcaef40b55224a75c1ba0701"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/3.root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/3.root.json
new file mode 120000
index 0000000..d1cb251
--- /dev/null
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/3.root.json
@@ -0,0 +1 @@
+../../4/repository/3.root.json
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/3.snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/3.snapshot.json
deleted file mode 100644
index c59a15c..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/3.snapshot.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"snapshot","expires":"2100-01-01T00:00:00Z","meta":{"root.json":{"hashes":{"sha512":"bfe96f67a4f04ee6466f17912d1011a88a8c3a27b24b9ad62121af5a3222cdbb09a8f9d82446498b4a13603d3b305e7278d51a59470422a4de361e375db8df84"},"length":1704,"version":2},"targets.json":{"hashes":{"sha512":"4660bb716c66653e60915e132972e9c60e000644c56d892f54303ccaf5392100d22a613e93c0acd196f230156d9278ce48cf4acc7b278e39d027bb77430a1474"},"length":841,"version":3}},"spec_version":"1.0","version":3},"signatures":[{"keyid":"7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321","sig":"1f8c0d14621c8ff42effa12de2e38cd5191cf54fdd6dcb9c748f96cb75c074f6412382f1e20ec066a7d7ed06181aec8938c0d3b2af54e5ec0381a42a53c39c02"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/3.snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/3.snapshot.json
new file mode 120000
index 0000000..d23c05c
--- /dev/null
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/3.snapshot.json
@@ -0,0 +1 @@
+../../4/repository/3.snapshot.json
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/3.targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/3.targets.json
deleted file mode 100644
index 2980b4b..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/3.targets.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"targets","expires":"2100-01-01T00:00:00Z","spec_version":"1.0","targets":{"0":{"hashes":{"sha512":"31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"},"length":1},"1":{"hashes":{"sha512":"4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a"},"length":1},"2":{"hashes":{"sha512":"40b244112641dd78dd4f93b6c9190dd46e0099194d5a44257b7efad6ef9ff4683da1eda0244448cb343aa688f5d3efd7314dafe580ac0bcbf115aeca9e8dc114"},"length":1}},"version":3},"signatures":[{"keyid":"eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f","sig":"e908928beca0a61f7f33fb99fb74227373b2f45983aeed065b8e14256818d911c55443e2782a02ce351af5e8aaf9eec149815aed84ced089bde66f358382060e"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/3.targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/3.targets.json
new file mode 120000
index 0000000..2854154
--- /dev/null
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/3.targets.json
@@ -0,0 +1 @@
+../../4/repository/3.targets.json
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/4.root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/4.root.json
deleted file mode 100644
index 5cb9301..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/4.root.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"root","consistent_snapshot":true,"expires":"2100-01-01T00:00:00Z","keys":{"2ffb4fd85c3a009d7c42d4f074a9b5156e2242c421fa801fd81eda01c434d23f":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"4df070f02a97f5d0f0e7cbb3554e7ae0b6733a56ff7dfc1ac52094a3aded9c64"},"scheme":"ed25519"},"7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"88c224c1d6175f3dbb6870edd3e138ccf8f714d6cb6f4cccdaf74f989c207cef"},"scheme":"ed25519"},"d9e08f115261bf9e9c92cda6faf73313c6ac20813b5094d989e10d9df43a2385":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"d856ec7d531a2fb84e78b6030efff92ee2b152b7bc8708bbbd32de155e60469d"},"scheme":"ed25519"},"eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"2cb97b1af650c5960ab9d5fa3e4192b8e8a3432df927f2ba30243930c786bb3c"},"scheme":"ed25519"}},"roles":{"root":{"keyids":["d9e08f115261bf9e9c92cda6faf73313c6ac20813b5094d989e10d9df43a2385"],"threshold":1},"snapshot":{"keyids":["7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321"],"threshold":1},"targets":{"keyids":["eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f"],"threshold":1},"timestamp":{"keyids":["2ffb4fd85c3a009d7c42d4f074a9b5156e2242c421fa801fd81eda01c434d23f"],"threshold":1}},"spec_version":"1.0","version":4},"signatures":[{"keyid":"d9e08f115261bf9e9c92cda6faf73313c6ac20813b5094d989e10d9df43a2385","sig":"90d2d6f073ec43a3991a4fcc579e15d68cf5bc24059d2871c58fdcec05f17420bcc3fcec6e93010ffcf03852b3f33bc1567d3a986f0d726d0df910b44de9010d"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/4.root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/4.root.json
new file mode 120000
index 0000000..bda6d08
--- /dev/null
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/4.root.json
@@ -0,0 +1 @@
+../../4/repository/4.root.json
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/4.snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/4.snapshot.json
deleted file mode 100644
index 3e27316..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/4.snapshot.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"snapshot","expires":"2100-01-01T00:00:00Z","meta":{"root.json":{"hashes":{"sha512":"442997801bc8613be35f2da13622ee110d2bb4ad2638e7ce327e218352bcd78a535294e6cabfa43628e27d419bdaf15b084fa3ca7da8faa2b5af6ca4f144f29f"},"length":1918,"version":3},"targets.json":{"hashes":{"sha512":"ceff5553a373f97d9ac2fef9162e04941461c308c55821918c6e7113cfdaddc4fb1f478ef16360cc92e0e7e37f7bc3a68a8483d6c40141e7c5c9a5eebddb1ae5"},"length":1009,"version":4}},"spec_version":"1.0","version":4},"signatures":[{"keyid":"7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321","sig":"bc8851b180b933f967c3bae4ff24f86c464cbfb470e6ef03594c5d6133987009ba329a10ef54d39226e09267dc55d81a1c66fd4fad23ccb03a052bcc81ffe002"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/4.snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/4.snapshot.json
new file mode 120000
index 0000000..b7aefb2
--- /dev/null
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/4.snapshot.json
@@ -0,0 +1 @@
+../../4/repository/4.snapshot.json
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/4.targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/4.targets.json
deleted file mode 100644
index 335291b..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/4.targets.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"targets","expires":"2100-01-01T00:00:00Z","spec_version":"1.0","targets":{"0":{"hashes":{"sha512":"31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"},"length":1},"1":{"hashes":{"sha512":"4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a"},"length":1},"2":{"hashes":{"sha512":"40b244112641dd78dd4f93b6c9190dd46e0099194d5a44257b7efad6ef9ff4683da1eda0244448cb343aa688f5d3efd7314dafe580ac0bcbf115aeca9e8dc114"},"length":1},"3":{"hashes":{"sha512":"3bafbf08882a2d10133093a1b8433f50563b93c14acd05b79028eb1d12799027241450980651994501423a66c276ae26c43b739bc65c4e16b10c3af6c202aebb"},"length":1}},"version":4},"signatures":[{"keyid":"eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f","sig":"0fc15d44da54f13a30631c2264ba0cbd4c0ad5efb9a2aa71451d7258f98cb5b3597f1165dce688a05f8001f7ec2a51eee6382835121e8176ffdafe4e38c0050e"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/4.targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/4.targets.json
new file mode 120000
index 0000000..fef64e4
--- /dev/null
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/4.targets.json
@@ -0,0 +1 @@
+../../4/repository/4.targets.json
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/442997801bc8613be35f2da13622ee110d2bb4ad2638e7ce327e218352bcd78a535294e6cabfa43628e27d419bdaf15b084fa3ca7da8faa2b5af6ca4f144f29f.root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/442997801bc8613be35f2da13622ee110d2bb4ad2638e7ce327e218352bcd78a535294e6cabfa43628e27d419bdaf15b084fa3ca7da8faa2b5af6ca4f144f29f.root.json
deleted file mode 100644
index e3c13aa..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/442997801bc8613be35f2da13622ee110d2bb4ad2638e7ce327e218352bcd78a535294e6cabfa43628e27d419bdaf15b084fa3ca7da8faa2b5af6ca4f144f29f.root.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"root","consistent_snapshot":true,"expires":"2100-01-01T00:00:00Z","keys":{"2ffb4fd85c3a009d7c42d4f074a9b5156e2242c421fa801fd81eda01c434d23f":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"4df070f02a97f5d0f0e7cbb3554e7ae0b6733a56ff7dfc1ac52094a3aded9c64"},"scheme":"ed25519"},"7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"88c224c1d6175f3dbb6870edd3e138ccf8f714d6cb6f4cccdaf74f989c207cef"},"scheme":"ed25519"},"d9e08f115261bf9e9c92cda6faf73313c6ac20813b5094d989e10d9df43a2385":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"d856ec7d531a2fb84e78b6030efff92ee2b152b7bc8708bbbd32de155e60469d"},"scheme":"ed25519"},"eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"2cb97b1af650c5960ab9d5fa3e4192b8e8a3432df927f2ba30243930c786bb3c"},"scheme":"ed25519"}},"roles":{"root":{"keyids":["d9e08f115261bf9e9c92cda6faf73313c6ac20813b5094d989e10d9df43a2385"],"threshold":1},"snapshot":{"keyids":["7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321"],"threshold":1},"targets":{"keyids":["eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f"],"threshold":1},"timestamp":{"keyids":["2ffb4fd85c3a009d7c42d4f074a9b5156e2242c421fa801fd81eda01c434d23f"],"threshold":1}},"spec_version":"1.0","version":3},"signatures":[{"keyid":"4e8daa3c2904f32d334729b603ded23b5cf950c20564a2a48b77c24dcde407c3","sig":"62f7995910e61d7e29f41fefaf1899c70591da779e163913ddcf3b212bf09890b25ff3f3f276b44c8a41393c9fb3dce484722a7811c7c2b8e17391c5cfd7cf06"},{"keyid":"d9e08f115261bf9e9c92cda6faf73313c6ac20813b5094d989e10d9df43a2385","sig":"c051c45a6a2359f8004dc1261e5a7029ced6270dc1812bd274d5bdfeae597eb3d902c666e3b434f18e7607005d1e6c1b88d1613cbcaef40b55224a75c1ba0701"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/4660bb716c66653e60915e132972e9c60e000644c56d892f54303ccaf5392100d22a613e93c0acd196f230156d9278ce48cf4acc7b278e39d027bb77430a1474.targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/4660bb716c66653e60915e132972e9c60e000644c56d892f54303ccaf5392100d22a613e93c0acd196f230156d9278ce48cf4acc7b278e39d027bb77430a1474.targets.json
deleted file mode 100644
index 2980b4b..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/4660bb716c66653e60915e132972e9c60e000644c56d892f54303ccaf5392100d22a613e93c0acd196f230156d9278ce48cf4acc7b278e39d027bb77430a1474.targets.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"targets","expires":"2100-01-01T00:00:00Z","spec_version":"1.0","targets":{"0":{"hashes":{"sha512":"31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"},"length":1},"1":{"hashes":{"sha512":"4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a"},"length":1},"2":{"hashes":{"sha512":"40b244112641dd78dd4f93b6c9190dd46e0099194d5a44257b7efad6ef9ff4683da1eda0244448cb343aa688f5d3efd7314dafe580ac0bcbf115aeca9e8dc114"},"length":1}},"version":3},"signatures":[{"keyid":"eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f","sig":"e908928beca0a61f7f33fb99fb74227373b2f45983aeed065b8e14256818d911c55443e2782a02ce351af5e8aaf9eec149815aed84ced089bde66f358382060e"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/4a09a98bfafccc0de35d0d4f683c817ee1d410b1432200cbfa8f6ec844d1ff00f183d27b4e4588f7239604a079ff0f4711fba15cceb02e69e1d928024462e112.targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/4a09a98bfafccc0de35d0d4f683c817ee1d410b1432200cbfa8f6ec844d1ff00f183d27b4e4588f7239604a079ff0f4711fba15cceb02e69e1d928024462e112.targets.json
deleted file mode 100644
index 633e87f..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/4a09a98bfafccc0de35d0d4f683c817ee1d410b1432200cbfa8f6ec844d1ff00f183d27b4e4588f7239604a079ff0f4711fba15cceb02e69e1d928024462e112.targets.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"targets","expires":"2100-01-01T00:00:00Z","spec_version":"1.0","targets":{"0":{"hashes":{"sha512":"31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"},"length":1}},"version":1},"signatures":[{"keyid":"eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f","sig":"09f3b7faeb4098137fd7fb365f1396307a7d9240d0df527f7fb4a2861c2bc869611636897146e0d2ba2afd9df348f4b99fb19dbe1ff16ce652d9617b09533806"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/4a306013447ca3eaf6f19d41eac1460b2d5d9fd3fcac6ae2abe5b290a8a90c394a4b6f9e0964feda539362ffe1ce5156f2d0b030a002e202a2dd0c6caa719287.targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/4a306013447ca3eaf6f19d41eac1460b2d5d9fd3fcac6ae2abe5b290a8a90c394a4b6f9e0964feda539362ffe1ce5156f2d0b030a002e202a2dd0c6caa719287.targets.json
deleted file mode 100644
index 5d96aba..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/4a306013447ca3eaf6f19d41eac1460b2d5d9fd3fcac6ae2abe5b290a8a90c394a4b6f9e0964feda539362ffe1ce5156f2d0b030a002e202a2dd0c6caa719287.targets.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"targets","expires":"2100-01-01T00:00:00Z","spec_version":"1.0","targets":{"0":{"hashes":{"sha512":"31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"},"length":1},"1":{"hashes":{"sha512":"4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a"},"length":1},"2":{"hashes":{"sha512":"40b244112641dd78dd4f93b6c9190dd46e0099194d5a44257b7efad6ef9ff4683da1eda0244448cb343aa688f5d3efd7314dafe580ac0bcbf115aeca9e8dc114"},"length":1},"3":{"hashes":{"sha512":"3bafbf08882a2d10133093a1b8433f50563b93c14acd05b79028eb1d12799027241450980651994501423a66c276ae26c43b739bc65c4e16b10c3af6c202aebb"},"length":1},"4":{"hashes":{"sha512":"a321d8b405e3ef2604959847b36d171eebebc4a8941dc70a4784935a4fca5d5813de84dfa049f06549aa61b20848c1633ce81b675286ea8fb53db240d831c568"},"length":1}},"version":5},"signatures":[{"keyid":"eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f","sig":"027fbebf542248744f81dfd2bcaf4a877d05bc5c0fff2aa49c8cd6fb35da9bc904064dc40155c488f6eb5cae31423a8525da85ab7a95bd37821bb95971b9c70f"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/4a850c2a7175cd105d2e1d843a3967a9d1c5ab440a076f7161476ec2e379766f8776c0f23905b8f60a60e6d682ee0f1629ac7501009002217852dac6694b3c01.targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/4a850c2a7175cd105d2e1d843a3967a9d1c5ab440a076f7161476ec2e379766f8776c0f23905b8f60a60e6d682ee0f1629ac7501009002217852dac6694b3c01.targets.json
deleted file mode 100644
index 3890620..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/4a850c2a7175cd105d2e1d843a3967a9d1c5ab440a076f7161476ec2e379766f8776c0f23905b8f60a60e6d682ee0f1629ac7501009002217852dac6694b3c01.targets.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"targets","expires":"2100-01-01T00:00:00Z","spec_version":"1.0","targets":{"0":{"hashes":{"sha512":"31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"},"length":1},"1":{"hashes":{"sha512":"4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a"},"length":1},"2":{"hashes":{"sha512":"40b244112641dd78dd4f93b6c9190dd46e0099194d5a44257b7efad6ef9ff4683da1eda0244448cb343aa688f5d3efd7314dafe580ac0bcbf115aeca9e8dc114"},"length":1},"3":{"hashes":{"sha512":"3bafbf08882a2d10133093a1b8433f50563b93c14acd05b79028eb1d12799027241450980651994501423a66c276ae26c43b739bc65c4e16b10c3af6c202aebb"},"length":1},"4":{"hashes":{"sha512":"a321d8b405e3ef2604959847b36d171eebebc4a8941dc70a4784935a4fca5d5813de84dfa049f06549aa61b20848c1633ce81b675286ea8fb53db240d831c568"},"length":1},"5":{"hashes":{"sha512":"06df05371981a237d0ed11472fae7c94c9ac0eff1d05413516710d17b10a4fb6f4517bda4a695f02d0a73dd4db543b4653df28f5d09dab86f92ffb9b86d01e25"},"length":1}},"version":6},"signatures":[{"keyid":"eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f","sig":"914e88e5d3b1019e84733746e3b4afa2a010468cf241bc106066b50ddf898ab3fd2411a3514e9bc651d18b4216f92b104e35c4dbdc988201bfaa398767e37809"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/5.root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/5.root.json
new file mode 120000
index 0000000..f99552a
--- /dev/null
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/5.root.json
@@ -0,0 +1 @@
+../../4/repository/5.root.json
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/5.snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/5.snapshot.json
deleted file mode 100644
index 4b636e7..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/5.snapshot.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"snapshot","expires":"2100-01-01T00:00:00Z","meta":{"root.json":{"hashes":{"sha512":"99ffcefa3fb33952e13acef9a46f1510a528eb3d5ffe99014fef5468d4131c1fbc113e2eda90b41daa119bb6b02e8c75da00550acdc3c1cdca3be78378b6af06"},"length":1704,"version":4},"targets.json":{"hashes":{"sha512":"4a306013447ca3eaf6f19d41eac1460b2d5d9fd3fcac6ae2abe5b290a8a90c394a4b6f9e0964feda539362ffe1ce5156f2d0b030a002e202a2dd0c6caa719287"},"length":1177,"version":5}},"spec_version":"1.0","version":5},"signatures":[{"keyid":"7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321","sig":"734b2eaa0e79b828c30b6e98c64eeaf399f49be608f9043e185eca18436997ee09064aba26fb3a26906473a7fcbdb941056c369d7049db1cd1ace139e785700b"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/5.snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/5.snapshot.json
new file mode 120000
index 0000000..4e98537
--- /dev/null
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/5.snapshot.json
@@ -0,0 +1 @@
+../../4/repository/5.snapshot.json
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/5.targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/5.targets.json
deleted file mode 100644
index 5d96aba..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/5.targets.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"targets","expires":"2100-01-01T00:00:00Z","spec_version":"1.0","targets":{"0":{"hashes":{"sha512":"31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"},"length":1},"1":{"hashes":{"sha512":"4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a"},"length":1},"2":{"hashes":{"sha512":"40b244112641dd78dd4f93b6c9190dd46e0099194d5a44257b7efad6ef9ff4683da1eda0244448cb343aa688f5d3efd7314dafe580ac0bcbf115aeca9e8dc114"},"length":1},"3":{"hashes":{"sha512":"3bafbf08882a2d10133093a1b8433f50563b93c14acd05b79028eb1d12799027241450980651994501423a66c276ae26c43b739bc65c4e16b10c3af6c202aebb"},"length":1},"4":{"hashes":{"sha512":"a321d8b405e3ef2604959847b36d171eebebc4a8941dc70a4784935a4fca5d5813de84dfa049f06549aa61b20848c1633ce81b675286ea8fb53db240d831c568"},"length":1}},"version":5},"signatures":[{"keyid":"eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f","sig":"027fbebf542248744f81dfd2bcaf4a877d05bc5c0fff2aa49c8cd6fb35da9bc904064dc40155c488f6eb5cae31423a8525da85ab7a95bd37821bb95971b9c70f"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/5.targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/5.targets.json
new file mode 120000
index 0000000..f877144
--- /dev/null
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/5.targets.json
@@ -0,0 +1 @@
+../../4/repository/5.targets.json
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/6.snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/6.snapshot.json
index 71f77ed..7c19996 100644
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/6.snapshot.json
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/6.snapshot.json
@@ -1 +1,30 @@
-{"signed":{"_type":"snapshot","expires":"2100-01-01T00:00:00Z","meta":{"root.json":{"hashes":{"sha512":"99ffcefa3fb33952e13acef9a46f1510a528eb3d5ffe99014fef5468d4131c1fbc113e2eda90b41daa119bb6b02e8c75da00550acdc3c1cdca3be78378b6af06"},"length":1704,"version":4},"targets.json":{"hashes":{"sha512":"4a850c2a7175cd105d2e1d843a3967a9d1c5ab440a076f7161476ec2e379766f8776c0f23905b8f60a60e6d682ee0f1629ac7501009002217852dac6694b3c01"},"length":1345,"version":6}},"spec_version":"1.0","version":6},"signatures":[{"keyid":"7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321","sig":"9236e498a249d0ffa177b25122460d16be9337346d9e8f853ff01cc9bd1f1caae821c6276182232b40d68bde59958f62fdb85a76c8033ea29af099c299f11f0f"}]}
\ No newline at end of file
+{
+	"signatures": [
+		{
+			"keyid": "bed15bf57ba4deb4e09667099d45d119504420983d16fd0927ebfb0c25184e7f",
+			"sig": "0e8dc07c124c26108fea54bf637b8133a6b9ba9defee8820ed8ebade9ed1f9b178163e712329179d3fe681e734d7d2078b3714e69e5e9d2a72abad3611c9560e"
+		}
+	],
+	"signed": {
+		"_type": "snapshot",
+		"expires": "2100-01-01T00:00:00Z",
+		"meta": {
+			"root.json": {
+				"hashes": {
+					"sha512": "7a60ff2c4e027e05c318e9a0dc891c46e9899994b50c2ac0dad0bd6f439c69a71486606adf309969f981de6b20630e27f0e529e020c41c638b9f0895ccbd797b"
+				},
+				"length": 2117,
+				"version": 5
+			},
+			"targets.json": {
+				"hashes": {
+					"sha512": "c57a6fd231341bea3adb36d5a9c07167ef26bf9b037470bef1dadfeb2cdafa73b39b30965e39175fa9be5426065073bbf859f149c366ae07ea2a0f6fb6730b00"
+				},
+				"length": 1593,
+				"version": 6
+			}
+		},
+		"spec_version": "1.0",
+		"version": 6
+	}
+}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/6.targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/6.targets.json
index 3890620..c528a43 100644
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/6.targets.json
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/6.targets.json
@@ -1 +1,52 @@
-{"signed":{"_type":"targets","expires":"2100-01-01T00:00:00Z","spec_version":"1.0","targets":{"0":{"hashes":{"sha512":"31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"},"length":1},"1":{"hashes":{"sha512":"4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a"},"length":1},"2":{"hashes":{"sha512":"40b244112641dd78dd4f93b6c9190dd46e0099194d5a44257b7efad6ef9ff4683da1eda0244448cb343aa688f5d3efd7314dafe580ac0bcbf115aeca9e8dc114"},"length":1},"3":{"hashes":{"sha512":"3bafbf08882a2d10133093a1b8433f50563b93c14acd05b79028eb1d12799027241450980651994501423a66c276ae26c43b739bc65c4e16b10c3af6c202aebb"},"length":1},"4":{"hashes":{"sha512":"a321d8b405e3ef2604959847b36d171eebebc4a8941dc70a4784935a4fca5d5813de84dfa049f06549aa61b20848c1633ce81b675286ea8fb53db240d831c568"},"length":1},"5":{"hashes":{"sha512":"06df05371981a237d0ed11472fae7c94c9ac0eff1d05413516710d17b10a4fb6f4517bda4a695f02d0a73dd4db543b4653df28f5d09dab86f92ffb9b86d01e25"},"length":1}},"version":6},"signatures":[{"keyid":"eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f","sig":"914e88e5d3b1019e84733746e3b4afa2a010468cf241bc106066b50ddf898ab3fd2411a3514e9bc651d18b4216f92b104e35c4dbdc988201bfaa398767e37809"}]}
\ No newline at end of file
+{
+	"signatures": [
+		{
+			"keyid": "a3eba2113e37b749b908101bdb7b856a44f2853641830c0f939730aca3e30360",
+			"sig": "1e80ae84c4badf194e2fd7225c120999d8f628598fa0e994a2ff7cac705ec2f14601a64ba5370fc668f3fb114975dd81c554400d757f41762c4e12eb4db35d02"
+		}
+	],
+	"signed": {
+		"_type": "targets",
+		"expires": "2100-01-01T00:00:00Z",
+		"spec_version": "1.0",
+		"targets": {
+			"0": {
+				"hashes": {
+					"sha512": "31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"
+				},
+				"length": 1
+			},
+			"1": {
+				"hashes": {
+					"sha512": "4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a"
+				},
+				"length": 1
+			},
+			"2": {
+				"hashes": {
+					"sha512": "40b244112641dd78dd4f93b6c9190dd46e0099194d5a44257b7efad6ef9ff4683da1eda0244448cb343aa688f5d3efd7314dafe580ac0bcbf115aeca9e8dc114"
+				},
+				"length": 1
+			},
+			"3": {
+				"hashes": {
+					"sha512": "3bafbf08882a2d10133093a1b8433f50563b93c14acd05b79028eb1d12799027241450980651994501423a66c276ae26c43b739bc65c4e16b10c3af6c202aebb"
+				},
+				"length": 1
+			},
+			"4": {
+				"hashes": {
+					"sha512": "a321d8b405e3ef2604959847b36d171eebebc4a8941dc70a4784935a4fca5d5813de84dfa049f06549aa61b20848c1633ce81b675286ea8fb53db240d831c568"
+				},
+				"length": 1
+			},
+			"5": {
+				"hashes": {
+					"sha512": "06df05371981a237d0ed11472fae7c94c9ac0eff1d05413516710d17b10a4fb6f4517bda4a695f02d0a73dd4db543b4653df28f5d09dab86f92ffb9b86d01e25"
+				},
+				"length": 1
+			}
+		},
+		"version": 6
+	}
+}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/6020ba3baf522dfaf99d316154045d133909ba9dfd0462cba10858cbf9386f30cd931d23f2c1533a41b686439dda02b33ef63fae1e7fe4090933b4e31b2c8b2e.snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/6020ba3baf522dfaf99d316154045d133909ba9dfd0462cba10858cbf9386f30cd931d23f2c1533a41b686439dda02b33ef63fae1e7fe4090933b4e31b2c8b2e.snapshot.json
deleted file mode 100644
index c59a15c..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/6020ba3baf522dfaf99d316154045d133909ba9dfd0462cba10858cbf9386f30cd931d23f2c1533a41b686439dda02b33ef63fae1e7fe4090933b4e31b2c8b2e.snapshot.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"snapshot","expires":"2100-01-01T00:00:00Z","meta":{"root.json":{"hashes":{"sha512":"bfe96f67a4f04ee6466f17912d1011a88a8c3a27b24b9ad62121af5a3222cdbb09a8f9d82446498b4a13603d3b305e7278d51a59470422a4de361e375db8df84"},"length":1704,"version":2},"targets.json":{"hashes":{"sha512":"4660bb716c66653e60915e132972e9c60e000644c56d892f54303ccaf5392100d22a613e93c0acd196f230156d9278ce48cf4acc7b278e39d027bb77430a1474"},"length":841,"version":3}},"spec_version":"1.0","version":3},"signatures":[{"keyid":"7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321","sig":"1f8c0d14621c8ff42effa12de2e38cd5191cf54fdd6dcb9c748f96cb75c074f6412382f1e20ec066a7d7ed06181aec8938c0d3b2af54e5ec0381a42a53c39c02"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/7ff09cead126fb7f2c923ef024074c51b626e2d3dfce31159312186d3c10c838faac51cae57c95e1032ede047800450eff71a0a8d3b45167640ebbe45cad4dcd.snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/7ff09cead126fb7f2c923ef024074c51b626e2d3dfce31159312186d3c10c838faac51cae57c95e1032ede047800450eff71a0a8d3b45167640ebbe45cad4dcd.snapshot.json
deleted file mode 100644
index 1a64206..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/7ff09cead126fb7f2c923ef024074c51b626e2d3dfce31159312186d3c10c838faac51cae57c95e1032ede047800450eff71a0a8d3b45167640ebbe45cad4dcd.snapshot.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"snapshot","expires":"2100-01-01T00:00:00Z","meta":{"root.json":{"hashes":{"sha512":"bfe96f67a4f04ee6466f17912d1011a88a8c3a27b24b9ad62121af5a3222cdbb09a8f9d82446498b4a13603d3b305e7278d51a59470422a4de361e375db8df84"},"length":1704,"version":2},"targets.json":{"hashes":{"sha512":"bfb9550cac278a45a1b7d88fc177831c289227c310c30fb5638d0946ba6f09b6942576e6c950e8c864d5ad1300fd446fb9fb1c3e05e6facf1794abfc72039da4"},"length":673,"version":2}},"spec_version":"1.0","version":2},"signatures":[{"keyid":"7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321","sig":"d30f405c3ff0c0917da5f6bce6d03e8f3ba521b0a545517ef3af0d451f88bced5985b119e6fc60dd4c714b43cfec0742471b9eff97d5200605b44a0976783106"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/99f0f824e31c7909cd8cc5a9ad94706248594eb06d26aed9cb26226f6cfa956cbb04b0a1557bed3853392a887a7435ce8463406a0a01e0bc3ac3d498898f3148.snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/99f0f824e31c7909cd8cc5a9ad94706248594eb06d26aed9cb26226f6cfa956cbb04b0a1557bed3853392a887a7435ce8463406a0a01e0bc3ac3d498898f3148.snapshot.json
deleted file mode 100644
index 71f77ed..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/99f0f824e31c7909cd8cc5a9ad94706248594eb06d26aed9cb26226f6cfa956cbb04b0a1557bed3853392a887a7435ce8463406a0a01e0bc3ac3d498898f3148.snapshot.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"snapshot","expires":"2100-01-01T00:00:00Z","meta":{"root.json":{"hashes":{"sha512":"99ffcefa3fb33952e13acef9a46f1510a528eb3d5ffe99014fef5468d4131c1fbc113e2eda90b41daa119bb6b02e8c75da00550acdc3c1cdca3be78378b6af06"},"length":1704,"version":4},"targets.json":{"hashes":{"sha512":"4a850c2a7175cd105d2e1d843a3967a9d1c5ab440a076f7161476ec2e379766f8776c0f23905b8f60a60e6d682ee0f1629ac7501009002217852dac6694b3c01"},"length":1345,"version":6}},"spec_version":"1.0","version":6},"signatures":[{"keyid":"7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321","sig":"9236e498a249d0ffa177b25122460d16be9337346d9e8f853ff01cc9bd1f1caae821c6276182232b40d68bde59958f62fdb85a76c8033ea29af099c299f11f0f"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/99ffcefa3fb33952e13acef9a46f1510a528eb3d5ffe99014fef5468d4131c1fbc113e2eda90b41daa119bb6b02e8c75da00550acdc3c1cdca3be78378b6af06.root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/99ffcefa3fb33952e13acef9a46f1510a528eb3d5ffe99014fef5468d4131c1fbc113e2eda90b41daa119bb6b02e8c75da00550acdc3c1cdca3be78378b6af06.root.json
deleted file mode 100644
index 5cb9301..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/99ffcefa3fb33952e13acef9a46f1510a528eb3d5ffe99014fef5468d4131c1fbc113e2eda90b41daa119bb6b02e8c75da00550acdc3c1cdca3be78378b6af06.root.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"root","consistent_snapshot":true,"expires":"2100-01-01T00:00:00Z","keys":{"2ffb4fd85c3a009d7c42d4f074a9b5156e2242c421fa801fd81eda01c434d23f":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"4df070f02a97f5d0f0e7cbb3554e7ae0b6733a56ff7dfc1ac52094a3aded9c64"},"scheme":"ed25519"},"7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"88c224c1d6175f3dbb6870edd3e138ccf8f714d6cb6f4cccdaf74f989c207cef"},"scheme":"ed25519"},"d9e08f115261bf9e9c92cda6faf73313c6ac20813b5094d989e10d9df43a2385":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"d856ec7d531a2fb84e78b6030efff92ee2b152b7bc8708bbbd32de155e60469d"},"scheme":"ed25519"},"eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"2cb97b1af650c5960ab9d5fa3e4192b8e8a3432df927f2ba30243930c786bb3c"},"scheme":"ed25519"}},"roles":{"root":{"keyids":["d9e08f115261bf9e9c92cda6faf73313c6ac20813b5094d989e10d9df43a2385"],"threshold":1},"snapshot":{"keyids":["7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321"],"threshold":1},"targets":{"keyids":["eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f"],"threshold":1},"timestamp":{"keyids":["2ffb4fd85c3a009d7c42d4f074a9b5156e2242c421fa801fd81eda01c434d23f"],"threshold":1}},"spec_version":"1.0","version":4},"signatures":[{"keyid":"d9e08f115261bf9e9c92cda6faf73313c6ac20813b5094d989e10d9df43a2385","sig":"90d2d6f073ec43a3991a4fcc579e15d68cf5bc24059d2871c58fdcec05f17420bcc3fcec6e93010ffcf03852b3f33bc1567d3a986f0d726d0df910b44de9010d"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/9f5fc2d9ce69a25bb762d051aaddfc3b4f22cc6a36ecd776c5ea582016226ae37c2210d9b40483a7d7b997c7a78319883f7215dc03419b49b978ebc592fb7df2.snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/9f5fc2d9ce69a25bb762d051aaddfc3b4f22cc6a36ecd776c5ea582016226ae37c2210d9b40483a7d7b997c7a78319883f7215dc03419b49b978ebc592fb7df2.snapshot.json
deleted file mode 100644
index 3e27316..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/9f5fc2d9ce69a25bb762d051aaddfc3b4f22cc6a36ecd776c5ea582016226ae37c2210d9b40483a7d7b997c7a78319883f7215dc03419b49b978ebc592fb7df2.snapshot.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"snapshot","expires":"2100-01-01T00:00:00Z","meta":{"root.json":{"hashes":{"sha512":"442997801bc8613be35f2da13622ee110d2bb4ad2638e7ce327e218352bcd78a535294e6cabfa43628e27d419bdaf15b084fa3ca7da8faa2b5af6ca4f144f29f"},"length":1918,"version":3},"targets.json":{"hashes":{"sha512":"ceff5553a373f97d9ac2fef9162e04941461c308c55821918c6e7113cfdaddc4fb1f478ef16360cc92e0e7e37f7bc3a68a8483d6c40141e7c5c9a5eebddb1ae5"},"length":1009,"version":4}},"spec_version":"1.0","version":4},"signatures":[{"keyid":"7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321","sig":"bc8851b180b933f967c3bae4ff24f86c464cbfb470e6ef03594c5d6133987009ba329a10ef54d39226e09267dc55d81a1c66fd4fad23ccb03a052bcc81ffe002"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/bfb9550cac278a45a1b7d88fc177831c289227c310c30fb5638d0946ba6f09b6942576e6c950e8c864d5ad1300fd446fb9fb1c3e05e6facf1794abfc72039da4.targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/bfb9550cac278a45a1b7d88fc177831c289227c310c30fb5638d0946ba6f09b6942576e6c950e8c864d5ad1300fd446fb9fb1c3e05e6facf1794abfc72039da4.targets.json
deleted file mode 100644
index 31d08bd..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/bfb9550cac278a45a1b7d88fc177831c289227c310c30fb5638d0946ba6f09b6942576e6c950e8c864d5ad1300fd446fb9fb1c3e05e6facf1794abfc72039da4.targets.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"targets","expires":"2100-01-01T00:00:00Z","spec_version":"1.0","targets":{"0":{"hashes":{"sha512":"31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"},"length":1},"1":{"hashes":{"sha512":"4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a"},"length":1}},"version":2},"signatures":[{"keyid":"eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f","sig":"7b69960653d7dbacd867655f7802487d028430c4df53ca94a8eaa65cd4f84986532ab34ab6aa349f391dc03b0ef94c5af5bfc7ba3a428ddba581bd2c26dc9702"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/bfe96f67a4f04ee6466f17912d1011a88a8c3a27b24b9ad62121af5a3222cdbb09a8f9d82446498b4a13603d3b305e7278d51a59470422a4de361e375db8df84.root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/bfe96f67a4f04ee6466f17912d1011a88a8c3a27b24b9ad62121af5a3222cdbb09a8f9d82446498b4a13603d3b305e7278d51a59470422a4de361e375db8df84.root.json
deleted file mode 100644
index ecba9d9..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/bfe96f67a4f04ee6466f17912d1011a88a8c3a27b24b9ad62121af5a3222cdbb09a8f9d82446498b4a13603d3b305e7278d51a59470422a4de361e375db8df84.root.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"root","consistent_snapshot":true,"expires":"2100-01-01T00:00:00Z","keys":{"2ffb4fd85c3a009d7c42d4f074a9b5156e2242c421fa801fd81eda01c434d23f":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"4df070f02a97f5d0f0e7cbb3554e7ae0b6733a56ff7dfc1ac52094a3aded9c64"},"scheme":"ed25519"},"4e8daa3c2904f32d334729b603ded23b5cf950c20564a2a48b77c24dcde407c3":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"e382c952a736d52be2ab82e486d3f3b27e60e221b636087f3fc3cb71beda0ade"},"scheme":"ed25519"},"7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"88c224c1d6175f3dbb6870edd3e138ccf8f714d6cb6f4cccdaf74f989c207cef"},"scheme":"ed25519"},"eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"2cb97b1af650c5960ab9d5fa3e4192b8e8a3432df927f2ba30243930c786bb3c"},"scheme":"ed25519"}},"roles":{"root":{"keyids":["4e8daa3c2904f32d334729b603ded23b5cf950c20564a2a48b77c24dcde407c3"],"threshold":1},"snapshot":{"keyids":["7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321"],"threshold":1},"targets":{"keyids":["eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f"],"threshold":1},"timestamp":{"keyids":["2ffb4fd85c3a009d7c42d4f074a9b5156e2242c421fa801fd81eda01c434d23f"],"threshold":1}},"spec_version":"1.0","version":2},"signatures":[{"keyid":"4e8daa3c2904f32d334729b603ded23b5cf950c20564a2a48b77c24dcde407c3","sig":"1d4b8e3ba03158c64029e4f1d9e580905d1ed1a0c87242e09edd36ed6104ed8587b20bfe3a7669d040028149fe945818f150cff5ad302bdf6071e0bfb5ba5206"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/c30accb049704fa7b471e4c5869648158f3395b368898c8fa91c56c9e8838d9ffbb810e01cf648a04408a3fffa32125d4f0a16b3326e8c7bc86e6f1fbd5136a6.root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/c30accb049704fa7b471e4c5869648158f3395b368898c8fa91c56c9e8838d9ffbb810e01cf648a04408a3fffa32125d4f0a16b3326e8c7bc86e6f1fbd5136a6.root.json
deleted file mode 100644
index d6e3979..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/c30accb049704fa7b471e4c5869648158f3395b368898c8fa91c56c9e8838d9ffbb810e01cf648a04408a3fffa32125d4f0a16b3326e8c7bc86e6f1fbd5136a6.root.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"root","consistent_snapshot":true,"expires":"2100-01-01T00:00:00Z","keys":{"3901e5474c946f204ec6a239ad261a8ccab4949fc6178cef1d48eb01a040521d":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"e1cb1f371c8f7a31dd0b39309c5d02af11ffaa1a7c71778d2b885ce77757a5e3"},"scheme":"ed25519"},"4e8daa3c2904f32d334729b603ded23b5cf950c20564a2a48b77c24dcde407c3":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"e382c952a736d52be2ab82e486d3f3b27e60e221b636087f3fc3cb71beda0ade"},"scheme":"ed25519"},"7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"88c224c1d6175f3dbb6870edd3e138ccf8f714d6cb6f4cccdaf74f989c207cef"},"scheme":"ed25519"},"eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"2cb97b1af650c5960ab9d5fa3e4192b8e8a3432df927f2ba30243930c786bb3c"},"scheme":"ed25519"}},"roles":{"root":{"keyids":["4e8daa3c2904f32d334729b603ded23b5cf950c20564a2a48b77c24dcde407c3"],"threshold":1},"snapshot":{"keyids":["7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321"],"threshold":1},"targets":{"keyids":["eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f"],"threshold":1},"timestamp":{"keyids":["3901e5474c946f204ec6a239ad261a8ccab4949fc6178cef1d48eb01a040521d"],"threshold":1}},"spec_version":"1.0","version":1},"signatures":[{"keyid":"4e8daa3c2904f32d334729b603ded23b5cf950c20564a2a48b77c24dcde407c3","sig":"ba1c7544af8cdee5cb70eee5bf7871d20b34ef1c480854513e9590746ad2686db9bec7fc1259a0f5206e113dc4aab18fc251d173fa0b3cbfdb95ee92d5c5d50b"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/ceff5553a373f97d9ac2fef9162e04941461c308c55821918c6e7113cfdaddc4fb1f478ef16360cc92e0e7e37f7bc3a68a8483d6c40141e7c5c9a5eebddb1ae5.targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/ceff5553a373f97d9ac2fef9162e04941461c308c55821918c6e7113cfdaddc4fb1f478ef16360cc92e0e7e37f7bc3a68a8483d6c40141e7c5c9a5eebddb1ae5.targets.json
deleted file mode 100644
index 335291b..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/ceff5553a373f97d9ac2fef9162e04941461c308c55821918c6e7113cfdaddc4fb1f478ef16360cc92e0e7e37f7bc3a68a8483d6c40141e7c5c9a5eebddb1ae5.targets.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"targets","expires":"2100-01-01T00:00:00Z","spec_version":"1.0","targets":{"0":{"hashes":{"sha512":"31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"},"length":1},"1":{"hashes":{"sha512":"4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a"},"length":1},"2":{"hashes":{"sha512":"40b244112641dd78dd4f93b6c9190dd46e0099194d5a44257b7efad6ef9ff4683da1eda0244448cb343aa688f5d3efd7314dafe580ac0bcbf115aeca9e8dc114"},"length":1},"3":{"hashes":{"sha512":"3bafbf08882a2d10133093a1b8433f50563b93c14acd05b79028eb1d12799027241450980651994501423a66c276ae26c43b739bc65c4e16b10c3af6c202aebb"},"length":1}},"version":4},"signatures":[{"keyid":"eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f","sig":"0fc15d44da54f13a30631c2264ba0cbd4c0ad5efb9a2aa71451d7258f98cb5b3597f1165dce688a05f8001f7ec2a51eee6382835121e8176ffdafe4e38c0050e"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/root.json
deleted file mode 100644
index 5cb9301..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/root.json
+++ /dev/null
@@ -1 +0,0 @@
-{"signed":{"_type":"root","consistent_snapshot":true,"expires":"2100-01-01T00:00:00Z","keys":{"2ffb4fd85c3a009d7c42d4f074a9b5156e2242c421fa801fd81eda01c434d23f":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"4df070f02a97f5d0f0e7cbb3554e7ae0b6733a56ff7dfc1ac52094a3aded9c64"},"scheme":"ed25519"},"7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"88c224c1d6175f3dbb6870edd3e138ccf8f714d6cb6f4cccdaf74f989c207cef"},"scheme":"ed25519"},"d9e08f115261bf9e9c92cda6faf73313c6ac20813b5094d989e10d9df43a2385":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"d856ec7d531a2fb84e78b6030efff92ee2b152b7bc8708bbbd32de155e60469d"},"scheme":"ed25519"},"eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f":{"keyid_hash_algorithms":["sha512"],"keytype":"ed25519","keyval":{"public":"2cb97b1af650c5960ab9d5fa3e4192b8e8a3432df927f2ba30243930c786bb3c"},"scheme":"ed25519"}},"roles":{"root":{"keyids":["d9e08f115261bf9e9c92cda6faf73313c6ac20813b5094d989e10d9df43a2385"],"threshold":1},"snapshot":{"keyids":["7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321"],"threshold":1},"targets":{"keyids":["eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f"],"threshold":1},"timestamp":{"keyids":["2ffb4fd85c3a009d7c42d4f074a9b5156e2242c421fa801fd81eda01c434d23f"],"threshold":1}},"spec_version":"1.0","version":4},"signatures":[{"keyid":"d9e08f115261bf9e9c92cda6faf73313c6ac20813b5094d989e10d9df43a2385","sig":"90d2d6f073ec43a3991a4fcc579e15d68cf5bc24059d2871c58fdcec05f17420bcc3fcec6e93010ffcf03852b3f33bc1567d3a986f0d726d0df910b44de9010d"}]}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/root.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/root.json
new file mode 120000
index 0000000..3d14058
--- /dev/null
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/root.json
@@ -0,0 +1 @@
+../../4/repository/root.json
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/snapshot.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/snapshot.json
index 71f77ed..7c19996 100644
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/snapshot.json
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/snapshot.json
@@ -1 +1,30 @@
-{"signed":{"_type":"snapshot","expires":"2100-01-01T00:00:00Z","meta":{"root.json":{"hashes":{"sha512":"99ffcefa3fb33952e13acef9a46f1510a528eb3d5ffe99014fef5468d4131c1fbc113e2eda90b41daa119bb6b02e8c75da00550acdc3c1cdca3be78378b6af06"},"length":1704,"version":4},"targets.json":{"hashes":{"sha512":"4a850c2a7175cd105d2e1d843a3967a9d1c5ab440a076f7161476ec2e379766f8776c0f23905b8f60a60e6d682ee0f1629ac7501009002217852dac6694b3c01"},"length":1345,"version":6}},"spec_version":"1.0","version":6},"signatures":[{"keyid":"7ae9a8a874c9f11b2d3a1a299ef6f0e8e6585b1e1ce251a5b0de6465b8809321","sig":"9236e498a249d0ffa177b25122460d16be9337346d9e8f853ff01cc9bd1f1caae821c6276182232b40d68bde59958f62fdb85a76c8033ea29af099c299f11f0f"}]}
\ No newline at end of file
+{
+	"signatures": [
+		{
+			"keyid": "bed15bf57ba4deb4e09667099d45d119504420983d16fd0927ebfb0c25184e7f",
+			"sig": "0e8dc07c124c26108fea54bf637b8133a6b9ba9defee8820ed8ebade9ed1f9b178163e712329179d3fe681e734d7d2078b3714e69e5e9d2a72abad3611c9560e"
+		}
+	],
+	"signed": {
+		"_type": "snapshot",
+		"expires": "2100-01-01T00:00:00Z",
+		"meta": {
+			"root.json": {
+				"hashes": {
+					"sha512": "7a60ff2c4e027e05c318e9a0dc891c46e9899994b50c2ac0dad0bd6f439c69a71486606adf309969f981de6b20630e27f0e529e020c41c638b9f0895ccbd797b"
+				},
+				"length": 2117,
+				"version": 5
+			},
+			"targets.json": {
+				"hashes": {
+					"sha512": "c57a6fd231341bea3adb36d5a9c07167ef26bf9b037470bef1dadfeb2cdafa73b39b30965e39175fa9be5426065073bbf859f149c366ae07ea2a0f6fb6730b00"
+				},
+				"length": 1593,
+				"version": 6
+			}
+		},
+		"spec_version": "1.0",
+		"version": 6
+	}
+}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/targets.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/targets.json
index 3890620..c528a43 100644
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/targets.json
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/targets.json
@@ -1 +1,52 @@
-{"signed":{"_type":"targets","expires":"2100-01-01T00:00:00Z","spec_version":"1.0","targets":{"0":{"hashes":{"sha512":"31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"},"length":1},"1":{"hashes":{"sha512":"4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a"},"length":1},"2":{"hashes":{"sha512":"40b244112641dd78dd4f93b6c9190dd46e0099194d5a44257b7efad6ef9ff4683da1eda0244448cb343aa688f5d3efd7314dafe580ac0bcbf115aeca9e8dc114"},"length":1},"3":{"hashes":{"sha512":"3bafbf08882a2d10133093a1b8433f50563b93c14acd05b79028eb1d12799027241450980651994501423a66c276ae26c43b739bc65c4e16b10c3af6c202aebb"},"length":1},"4":{"hashes":{"sha512":"a321d8b405e3ef2604959847b36d171eebebc4a8941dc70a4784935a4fca5d5813de84dfa049f06549aa61b20848c1633ce81b675286ea8fb53db240d831c568"},"length":1},"5":{"hashes":{"sha512":"06df05371981a237d0ed11472fae7c94c9ac0eff1d05413516710d17b10a4fb6f4517bda4a695f02d0a73dd4db543b4653df28f5d09dab86f92ffb9b86d01e25"},"length":1}},"version":6},"signatures":[{"keyid":"eae325465e34f6a202a50b2eb42165366ca55b387ff686ce946f70d4cdb81b9f","sig":"914e88e5d3b1019e84733746e3b4afa2a010468cf241bc106066b50ddf898ab3fd2411a3514e9bc651d18b4216f92b104e35c4dbdc988201bfaa398767e37809"}]}
\ No newline at end of file
+{
+	"signatures": [
+		{
+			"keyid": "a3eba2113e37b749b908101bdb7b856a44f2853641830c0f939730aca3e30360",
+			"sig": "1e80ae84c4badf194e2fd7225c120999d8f628598fa0e994a2ff7cac705ec2f14601a64ba5370fc668f3fb114975dd81c554400d757f41762c4e12eb4db35d02"
+		}
+	],
+	"signed": {
+		"_type": "targets",
+		"expires": "2100-01-01T00:00:00Z",
+		"spec_version": "1.0",
+		"targets": {
+			"0": {
+				"hashes": {
+					"sha512": "31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99"
+				},
+				"length": 1
+			},
+			"1": {
+				"hashes": {
+					"sha512": "4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a"
+				},
+				"length": 1
+			},
+			"2": {
+				"hashes": {
+					"sha512": "40b244112641dd78dd4f93b6c9190dd46e0099194d5a44257b7efad6ef9ff4683da1eda0244448cb343aa688f5d3efd7314dafe580ac0bcbf115aeca9e8dc114"
+				},
+				"length": 1
+			},
+			"3": {
+				"hashes": {
+					"sha512": "3bafbf08882a2d10133093a1b8433f50563b93c14acd05b79028eb1d12799027241450980651994501423a66c276ae26c43b739bc65c4e16b10c3af6c202aebb"
+				},
+				"length": 1
+			},
+			"4": {
+				"hashes": {
+					"sha512": "a321d8b405e3ef2604959847b36d171eebebc4a8941dc70a4784935a4fca5d5813de84dfa049f06549aa61b20848c1633ce81b675286ea8fb53db240d831c568"
+				},
+				"length": 1
+			},
+			"5": {
+				"hashes": {
+					"sha512": "06df05371981a237d0ed11472fae7c94c9ac0eff1d05413516710d17b10a4fb6f4517bda4a695f02d0a73dd4db543b4653df28f5d09dab86f92ffb9b86d01e25"
+				},
+				"length": 1
+			}
+		},
+		"version": 6
+	}
+}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/targets/0.0 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/targets/0.0
deleted file mode 100644
index c227083..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/targets/0.0
+++ /dev/null
@@ -1 +0,0 @@
-0
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/targets/0.1 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/targets/0.1
deleted file mode 100644
index 56a6051..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/targets/0.1
+++ /dev/null
@@ -1 +0,0 @@
-1
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/targets/0.2 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/targets/0.2
deleted file mode 100644
index d8263ee..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/targets/0.2
+++ /dev/null
@@ -1 +0,0 @@
-2
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/targets/0.3 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/targets/0.3
deleted file mode 100644
index e440e5c..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/targets/0.3
+++ /dev/null
@@ -1 +0,0 @@
-3
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/targets/0.4 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/targets/0.4
deleted file mode 100644
index bf0d87a..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/targets/0.4
+++ /dev/null
@@ -1 +0,0 @@
-4
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/targets/0.5 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/targets/0.5
deleted file mode 100644
index 7813681..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/targets/0.5
+++ /dev/null
@@ -1 +0,0 @@
-5
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/targets/31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99.0 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/targets/31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99.0
deleted file mode 100644
index c227083..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/targets/31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99.0
+++ /dev/null
@@ -1 +0,0 @@
-0
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/targets/31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99.0 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/targets/31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99.0
new file mode 120000
index 0000000..c70b61b
--- /dev/null
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/targets/31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99.0
@@ -0,0 +1 @@
+../../../4/repository/targets/31bca02094eb78126a517b206a88c73cfa9ec6f704c7030d18212cace820f025f00bf0ea68dbf3f3a5436ca63b53bf7bf80ad8d5de7d8359d0b7fed9dbc3ab99.0
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/targets/3bafbf08882a2d10133093a1b8433f50563b93c14acd05b79028eb1d12799027241450980651994501423a66c276ae26c43b739bc65c4e16b10c3af6c202aebb.3 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/targets/3bafbf08882a2d10133093a1b8433f50563b93c14acd05b79028eb1d12799027241450980651994501423a66c276ae26c43b739bc65c4e16b10c3af6c202aebb.3
deleted file mode 100644
index e440e5c..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/targets/3bafbf08882a2d10133093a1b8433f50563b93c14acd05b79028eb1d12799027241450980651994501423a66c276ae26c43b739bc65c4e16b10c3af6c202aebb.3
+++ /dev/null
@@ -1 +0,0 @@
-3
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/targets/3bafbf08882a2d10133093a1b8433f50563b93c14acd05b79028eb1d12799027241450980651994501423a66c276ae26c43b739bc65c4e16b10c3af6c202aebb.3 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/targets/3bafbf08882a2d10133093a1b8433f50563b93c14acd05b79028eb1d12799027241450980651994501423a66c276ae26c43b739bc65c4e16b10c3af6c202aebb.3
new file mode 120000
index 0000000..1e66cb1
--- /dev/null
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/targets/3bafbf08882a2d10133093a1b8433f50563b93c14acd05b79028eb1d12799027241450980651994501423a66c276ae26c43b739bc65c4e16b10c3af6c202aebb.3
@@ -0,0 +1 @@
+../../../4/repository/targets/3bafbf08882a2d10133093a1b8433f50563b93c14acd05b79028eb1d12799027241450980651994501423a66c276ae26c43b739bc65c4e16b10c3af6c202aebb.3
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/targets/40b244112641dd78dd4f93b6c9190dd46e0099194d5a44257b7efad6ef9ff4683da1eda0244448cb343aa688f5d3efd7314dafe580ac0bcbf115aeca9e8dc114.2 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/targets/40b244112641dd78dd4f93b6c9190dd46e0099194d5a44257b7efad6ef9ff4683da1eda0244448cb343aa688f5d3efd7314dafe580ac0bcbf115aeca9e8dc114.2
deleted file mode 100644
index d8263ee..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/targets/40b244112641dd78dd4f93b6c9190dd46e0099194d5a44257b7efad6ef9ff4683da1eda0244448cb343aa688f5d3efd7314dafe580ac0bcbf115aeca9e8dc114.2
+++ /dev/null
@@ -1 +0,0 @@
-2
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/targets/40b244112641dd78dd4f93b6c9190dd46e0099194d5a44257b7efad6ef9ff4683da1eda0244448cb343aa688f5d3efd7314dafe580ac0bcbf115aeca9e8dc114.2 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/targets/40b244112641dd78dd4f93b6c9190dd46e0099194d5a44257b7efad6ef9ff4683da1eda0244448cb343aa688f5d3efd7314dafe580ac0bcbf115aeca9e8dc114.2
new file mode 120000
index 0000000..a02a231
--- /dev/null
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/targets/40b244112641dd78dd4f93b6c9190dd46e0099194d5a44257b7efad6ef9ff4683da1eda0244448cb343aa688f5d3efd7314dafe580ac0bcbf115aeca9e8dc114.2
@@ -0,0 +1 @@
+../../../4/repository/targets/40b244112641dd78dd4f93b6c9190dd46e0099194d5a44257b7efad6ef9ff4683da1eda0244448cb343aa688f5d3efd7314dafe580ac0bcbf115aeca9e8dc114.2
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/targets/4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a.1 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/targets/4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a.1
deleted file mode 100644
index 56a6051..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/targets/4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a.1
+++ /dev/null
@@ -1 +0,0 @@
-1
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/targets/4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a.1 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/targets/4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a.1
new file mode 120000
index 0000000..74d1328
--- /dev/null
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/targets/4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a.1
@@ -0,0 +1 @@
+../../../4/repository/targets/4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a.1
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/targets/a321d8b405e3ef2604959847b36d171eebebc4a8941dc70a4784935a4fca5d5813de84dfa049f06549aa61b20848c1633ce81b675286ea8fb53db240d831c568.4 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/targets/a321d8b405e3ef2604959847b36d171eebebc4a8941dc70a4784935a4fca5d5813de84dfa049f06549aa61b20848c1633ce81b675286ea8fb53db240d831c568.4
deleted file mode 100644
index bf0d87a..0000000
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/targets/a321d8b405e3ef2604959847b36d171eebebc4a8941dc70a4784935a4fca5d5813de84dfa049f06549aa61b20848c1633ce81b675286ea8fb53db240d831c568.4
+++ /dev/null
@@ -1 +0,0 @@
-4
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/targets/a321d8b405e3ef2604959847b36d171eebebc4a8941dc70a4784935a4fca5d5813de84dfa049f06549aa61b20848c1633ce81b675286ea8fb53db240d831c568.4 b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/targets/a321d8b405e3ef2604959847b36d171eebebc4a8941dc70a4784935a4fca5d5813de84dfa049f06549aa61b20848c1633ce81b675286ea8fb53db240d831c568.4
new file mode 120000
index 0000000..73a65ad
--- /dev/null
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/targets/a321d8b405e3ef2604959847b36d171eebebc4a8941dc70a4784935a4fca5d5813de84dfa049f06549aa61b20848c1633ce81b675286ea8fb53db240d831c568.4
@@ -0,0 +1 @@
+../../../4/repository/targets/a321d8b405e3ef2604959847b36d171eebebc4a8941dc70a4784935a4fca5d5813de84dfa049f06549aa61b20848c1633ce81b675286ea8fb53db240d831c568.4
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/timestamp.json b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/timestamp.json
index bfbeca4..85dd0d6 100644
--- a/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/timestamp.json
+++ b/client/testdata/go-tuf-transition-M4/consistent-snapshot-true/5/repository/timestamp.json
@@ -1 +1,23 @@
-{"signed":{"_type":"timestamp","expires":"2100-01-01T00:00:00Z","meta":{"snapshot.json":{"hashes":{"sha512":"99f0f824e31c7909cd8cc5a9ad94706248594eb06d26aed9cb26226f6cfa956cbb04b0a1557bed3853392a887a7435ce8463406a0a01e0bc3ac3d498898f3148"},"length":720,"version":6}},"spec_version":"1.0","version":6},"signatures":[{"keyid":"2ffb4fd85c3a009d7c42d4f074a9b5156e2242c421fa801fd81eda01c434d23f","sig":"196c2e3a475b631205fab117da162c73cb71247fb9539b36353c0dd53b904b6969f541163236f1f1e87e094e9cfb47916b12e7e9220835a10e56be99e6a4770d"}]}
\ No newline at end of file
+{
+	"signatures": [
+		{
+			"keyid": "79b5760e4c96b6becc12bec4260c9c1d533b9b70628ade2b229ef02b772b10b0",
+			"sig": "c928d7bd646cf71f1bc97efef782e5eccb7c88ebe0187708735a39f68dddd4e233702f72ba79a94f27cdb3cab3f568bc3c89598191d2f2dc6cfb968a0906c40d"
+		}
+	],
+	"signed": {
+		"_type": "timestamp",
+		"expires": "2100-01-01T00:00:00Z",
+		"meta": {
+			"snapshot.json": {
+				"hashes": {
+					"sha512": "afa8cb95af9715cbf1ef4cf0497daec22e43c96012fd0e34de928c3adef7b4c9e71f10188ffa6d83c06d81c9182421acb03d20bcd7cc32df9b051bf37a728e89"
+				},
+				"length": 848,
+				"version": 6
+			}
+		},
+		"spec_version": "1.0",
+		"version": 6
+	}
+}
\ No newline at end of file
diff --git a/client/testdata/go-tuf-transition-M4/generate.go b/client/testdata/go-tuf-transition-M4/generate.go
index 146988f..35562a5 100644
--- a/client/testdata/go-tuf-transition-M4/generate.go
+++ b/client/testdata/go-tuf-transition-M4/generate.go
@@ -33,28 +33,27 @@
 }
 
 func newRepo(dir string) *tuf.Repo {
-	repo, err := tuf.NewRepo(tuf.FileSystemStore(dir, nil))
+	repo, err := tuf.NewRepoIndent(tuf.FileSystemStore(dir, nil), "", "\t")
 	assertNotNil(err)
 
 	return repo
 }
 
-func commit(repo *tuf.Repo) {
+func commit(dir string, repo *tuf.Repo) {
 	assertNotNil(repo.SnapshotWithExpires(tuf.CompressionTypeNone, expirationDate))
 	assertNotNil(repo.TimestampWithExpires(expirationDate))
 	assertNotNil(repo.Commit())
+
+	// Remove the keys directory to make sure we don't accidentally use a key.
+	assertNotNil(os.RemoveAll(filepath.Join(dir, "keys")))
 }
 
-func genKeys(repo *tuf.Repo, roles []string) map[string][]string {
-	ids := make(map[string][]string)
-
-	for _, role := range roles {
-		id, err := repo.GenKeyWithExpires(role, expirationDate)
-		assertNotNil(err)
-		ids[role] = id
+func addKeys(repo *tuf.Repo, roleKeys map[string][]*sign.PrivateKey) {
+	for role, keys := range roleKeys {
+		for _, key := range keys {
+			assertNotNil(repo.AddPrivateKeyWithExpires(role, key, expirationDate))
+		}
 	}
-
-	return ids
 }
 
 func addTargets(repo *tuf.Repo, dir string, files map[string][]byte) {
@@ -68,94 +67,70 @@
 	assertNotNil(repo.AddTargetsWithExpires(paths, nil, expirationDate))
 }
 
-func revokeKey(repo *tuf.Repo, role string, ids []string) {
-	assertNotNil(repo.RevokeKeyWithExpires(role, ids[0], expirationDate))
-}
-
-// repoFilteredKeys filters out a key to make sure we can't sign with it. This
-// is to make sure key rotation worked.
-func filterKeys(dir string, role string, ids []string) {
-	path := filepath.Join(dir, "keys", fmt.Sprintf("%s.json", role))
-	b, err := ioutil.ReadFile(path)
-	assertNotNil(err)
-
-	keys := &persistedKeys{}
-	assertNotNil(json.Unmarshal(b, keys))
-
-	newKeys := []*sign.PrivateKey{}
-	for _, key := range keys.Data {
-		found := false
-		for _, id := range ids {
-			if key.PublicData().ContainsID(id) {
-				found = true
-				break
-			}
-		}
-		if !found {
-			newKeys = append(newKeys, key)
-		}
+func revokeKeys(repo *tuf.Repo, role string, keys []*sign.PrivateKey) {
+	for _, key := range keys {
+		assertNotNil(repo.RevokeKeyWithExpires(role, key.PublicData().IDs()[0], expirationDate))
 	}
-	keys.Data = newKeys
-
-	b, err = json.Marshal(keys)
-	assertNotNil(err)
-
-	err = ioutil.WriteFile(path, b, 0644)
-	assertNotNil(err)
 }
 
-func generateRepos(dir string) {
+func generateRepos(dir string, consistentSnapshot bool) {
+	f, err := os.Open("../keys.json")
+	assertNotNil(err)
+
+	var roleKeys map[string][][]*sign.PrivateKey
+	assertNotNil(json.NewDecoder(f).Decode(&roleKeys))
+
+	// Collect all the initial keys we'll use when creating repositories.
+	// We'll modify this to reflect rotated keys.
+	keys := map[string][]*sign.PrivateKey{
+		"root":      roleKeys["root"][0],
+		"targets":   roleKeys["targets"][0],
+		"snapshot":  roleKeys["snapshot"][0],
+		"timestamp": roleKeys["timestamp"][0],
+	}
+
 	// Create the initial repo.
 	dir0 := filepath.Join(dir, "0")
 	repo0 := newRepo(dir0)
-	ids := genKeys(repo0, []string{"root", "snapshot", "targets", "timestamp"})
+	repo0.Init(consistentSnapshot)
+	addKeys(repo0, keys)
 	addTargets(repo0, dir0, map[string][]byte{"0": []byte("0")})
-	commit(repo0)
+	commit(dir0, repo0)
 
-	// Rotate the timestamp keys.
-	dir1 := filepath.Join(dir, "1")
-	copyRepo(dir0, dir1)
-	repo1 := newRepo(dir1)
-	revokeKey(repo1, "timestamp", ids["timestamp"])
-	genKeys(repo1, []string{"timestamp"})
-	addTargets(repo1, dir1, map[string][]byte{"1": []byte("1")})
-	commit(repo1)
+	// Rotate all the keys to make sure that works.
+	oldDir := dir0
+	i := 1
+	for _, role := range []string{"root", "targets", "snapshot", "timestamp"} {
+		// Setup the repo.
+		stepName := fmt.Sprintf("%d", i)
+		d := filepath.Join(dir, stepName)
+		copyRepo(oldDir, d)
+		repo := newRepo(d)
+		addKeys(repo, keys)
 
-	// Filter out the old timestamp key to make sure we can't use it.
-	dir2 := filepath.Join(dir, "2")
-	copyRepo(dir1, dir2)
-	filterKeys(dir2, "timestamp", ids["timestamp"])
-	repo2 := newRepo(dir2)
-	addTargets(repo2, dir2, map[string][]byte{"2": []byte("2")})
-	commit(repo2)
+		// Actually rotate the keys
+		revokeKeys(repo, role, roleKeys[role][0])
+		addKeys(repo, map[string][]*sign.PrivateKey{
+			role: roleKeys[role][1],
+		})
+		keys[role] = roleKeys[role][1]
 
-	// Now, actually rotate the root keys.
-	dir3 := filepath.Join(dir, "3")
-	copyRepo(dir2, dir3)
-	repo3 := newRepo(dir3)
-	revokeKey(repo3, "root", ids["root"])
-	genKeys(repo3, []string{"root"})
-	addTargets(repo3, dir3, map[string][]byte{"3": []byte("3")})
-	commit(repo3)
+		// Add a target to make sure that works, then commit.
+		addTargets(repo, d, map[string][]byte{stepName: []byte(stepName)})
+		commit(d, repo)
 
-	// Filter out the old root key to make sure we can't use it.
-	dir4 := filepath.Join(dir, "4")
-	copyRepo(dir3, dir4)
-	filterKeys(dir4, "root", ids["root"])
-	// The only way to force go-tuf to re-sign the root.json is to generate
-	// or revoke a key. So why not do both?
-	repo4 := newRepo(dir4)
-	ids = genKeys(repo4, []string{"snapshot"})
-	revokeKey(repo4, "snapshot", ids["snapshot"])
-	addTargets(repo4, dir4, map[string][]byte{"4": []byte("4")})
-	commit(repo4)
+		i += 1
+		oldDir = d
+	}
 
 	// Add another target file to make sure the workflow worked.
-	dir5 := filepath.Join(dir, "5")
-	copyRepo(dir4, dir5)
-	repo5 := newRepo(dir5)
-	addTargets(repo5, dir5, map[string][]byte{"5": []byte("5")})
-	commit(repo5)
+	stepName := fmt.Sprintf("%d", i)
+	d := filepath.Join(dir, stepName)
+	copyRepo(oldDir, d)
+	repo := newRepo(d)
+	addKeys(repo, keys)
+	addTargets(repo, d, map[string][]byte{stepName: []byte(stepName)})
+	commit(d, repo)
 }
 
 func main() {
@@ -165,7 +140,7 @@
 	for _, consistentSnapshot := range []bool{false, true} {
 		name := fmt.Sprintf("consistent-snapshot-%t", consistentSnapshot)
 		log.Printf("generating %s", name)
-		generateRepos(filepath.Join(cwd, name))
+		generateRepos(filepath.Join(cwd, name), consistentSnapshot)
 	}
 
 }