From fd9c615d88b12c09be7f4a95153a4649c547931c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miloslav=20Trma=C4=8D?= Date: Mon, 30 May 2016 22:38:51 +0200 Subject: [PATCH] Add PolicyRequirement implementations Also move the declaration of the type from the mostly-public policy_types.go to policy_eval.go. --- .../manifest.json | 1 + .../dir-img-manifest-digest-error/signature-1 | 1 + .../fixtures/dir-img-mixed/manifest.json | 1 + signature/fixtures/dir-img-mixed/signature-1 | 1 + signature/fixtures/dir-img-mixed/signature-2 | 1 + .../dir-img-modified-manifest/manifest.json | 27 ++ .../dir-img-modified-manifest/signature-1 | 1 + .../fixtures/dir-img-no-manifest/signature-1 | 1 + .../fixtures/dir-img-unsigned/manifest.json | 1 + .../fixtures/dir-img-valid-2/manifest.json | 1 + .../fixtures/dir-img-valid-2/signature-1 | 1 + .../fixtures/dir-img-valid-2/signature-2 | Bin 0 -> 425 bytes .../fixtures/dir-img-valid/manifest.json | 1 + signature/fixtures/dir-img-valid/signature-1 | Bin 0 -> 427 bytes signature/policy_eval.go | 50 ++++ signature/policy_eval_baselayer.go | 18 ++ signature/policy_eval_baselayer_test.go | 24 ++ signature/policy_eval_signedby.go | 137 ++++++++++ signature/policy_eval_signedby_test.go | 239 ++++++++++++++++++ signature/policy_eval_simple.go | 25 ++ signature/policy_eval_simple_test.go | 32 +++ signature/policy_eval_test.go | 59 +++++ signature/policy_types.go | 1 - 23 files changed, 622 insertions(+), 1 deletion(-) create mode 120000 signature/fixtures/dir-img-manifest-digest-error/manifest.json create mode 120000 signature/fixtures/dir-img-manifest-digest-error/signature-1 create mode 120000 signature/fixtures/dir-img-mixed/manifest.json create mode 120000 signature/fixtures/dir-img-mixed/signature-1 create mode 120000 signature/fixtures/dir-img-mixed/signature-2 create mode 100644 signature/fixtures/dir-img-modified-manifest/manifest.json create mode 120000 signature/fixtures/dir-img-modified-manifest/signature-1 create mode 120000 signature/fixtures/dir-img-no-manifest/signature-1 create mode 120000 signature/fixtures/dir-img-unsigned/manifest.json create mode 120000 signature/fixtures/dir-img-valid-2/manifest.json create mode 120000 signature/fixtures/dir-img-valid-2/signature-1 create mode 100644 signature/fixtures/dir-img-valid-2/signature-2 create mode 120000 signature/fixtures/dir-img-valid/manifest.json create mode 100644 signature/fixtures/dir-img-valid/signature-1 create mode 100644 signature/policy_eval_baselayer.go create mode 100644 signature/policy_eval_baselayer_test.go create mode 100644 signature/policy_eval_signedby.go create mode 100644 signature/policy_eval_signedby_test.go create mode 100644 signature/policy_eval_simple.go create mode 100644 signature/policy_eval_simple_test.go create mode 100644 signature/policy_eval_test.go diff --git a/signature/fixtures/dir-img-manifest-digest-error/manifest.json b/signature/fixtures/dir-img-manifest-digest-error/manifest.json new file mode 120000 index 00000000..3dee14b4 --- /dev/null +++ b/signature/fixtures/dir-img-manifest-digest-error/manifest.json @@ -0,0 +1 @@ +../v2s1-invalid-signatures.manifest.json \ No newline at end of file diff --git a/signature/fixtures/dir-img-manifest-digest-error/signature-1 b/signature/fixtures/dir-img-manifest-digest-error/signature-1 new file mode 120000 index 00000000..f010fd4c --- /dev/null +++ b/signature/fixtures/dir-img-manifest-digest-error/signature-1 @@ -0,0 +1 @@ +../dir-img-valid/signature-1 \ No newline at end of file diff --git a/signature/fixtures/dir-img-mixed/manifest.json b/signature/fixtures/dir-img-mixed/manifest.json new file mode 120000 index 00000000..ff7d2ffa --- /dev/null +++ b/signature/fixtures/dir-img-mixed/manifest.json @@ -0,0 +1 @@ +../dir-img-valid/manifest.json \ No newline at end of file diff --git a/signature/fixtures/dir-img-mixed/signature-1 b/signature/fixtures/dir-img-mixed/signature-1 new file mode 120000 index 00000000..b27cdc45 --- /dev/null +++ b/signature/fixtures/dir-img-mixed/signature-1 @@ -0,0 +1 @@ +../invalid-blob.signature \ No newline at end of file diff --git a/signature/fixtures/dir-img-mixed/signature-2 b/signature/fixtures/dir-img-mixed/signature-2 new file mode 120000 index 00000000..f010fd4c --- /dev/null +++ b/signature/fixtures/dir-img-mixed/signature-2 @@ -0,0 +1 @@ +../dir-img-valid/signature-1 \ No newline at end of file diff --git a/signature/fixtures/dir-img-modified-manifest/manifest.json b/signature/fixtures/dir-img-modified-manifest/manifest.json new file mode 100644 index 00000000..82fde381 --- /dev/null +++ b/signature/fixtures/dir-img-modified-manifest/manifest.json @@ -0,0 +1,27 @@ +{ + "schemaVersion": 2, + "mediaType": "application/vnd.docker.distribution.manifest.v2+json", + "config": { + "mediaType": "application/vnd.docker.container.image.v1+json", + "size": 7023, + "digest": "sha256:b5b2b2c507a0944348e0303114d8d93aaaa081732b86451d9bce1f432a537bc7" + }, + "layers": [ + { + "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip", + "size": 32654, + "digest": "sha256:e692418e4cbaf90ca69d05a66403747baa33ee08806650b51fab815ad7fc331f" + }, + { + "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip", + "size": 16724, + "digest": "sha256:3c3a4604a545cdc127456d94e421cd355bca5b528f4a9c1905b15da2eb4a4c6b" + }, + { + "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip", + "size": 73109, + "digest": "sha256:ec4b8955958665577945c89419d1af06b5f7636b4ac3da7f12184802ad867736" + } + ], + "extra": "this manifest has been modified" +} diff --git a/signature/fixtures/dir-img-modified-manifest/signature-1 b/signature/fixtures/dir-img-modified-manifest/signature-1 new file mode 120000 index 00000000..f010fd4c --- /dev/null +++ b/signature/fixtures/dir-img-modified-manifest/signature-1 @@ -0,0 +1 @@ +../dir-img-valid/signature-1 \ No newline at end of file diff --git a/signature/fixtures/dir-img-no-manifest/signature-1 b/signature/fixtures/dir-img-no-manifest/signature-1 new file mode 120000 index 00000000..f010fd4c --- /dev/null +++ b/signature/fixtures/dir-img-no-manifest/signature-1 @@ -0,0 +1 @@ +../dir-img-valid/signature-1 \ No newline at end of file diff --git a/signature/fixtures/dir-img-unsigned/manifest.json b/signature/fixtures/dir-img-unsigned/manifest.json new file mode 120000 index 00000000..ff7d2ffa --- /dev/null +++ b/signature/fixtures/dir-img-unsigned/manifest.json @@ -0,0 +1 @@ +../dir-img-valid/manifest.json \ No newline at end of file diff --git a/signature/fixtures/dir-img-valid-2/manifest.json b/signature/fixtures/dir-img-valid-2/manifest.json new file mode 120000 index 00000000..ff7d2ffa --- /dev/null +++ b/signature/fixtures/dir-img-valid-2/manifest.json @@ -0,0 +1 @@ +../dir-img-valid/manifest.json \ No newline at end of file diff --git a/signature/fixtures/dir-img-valid-2/signature-1 b/signature/fixtures/dir-img-valid-2/signature-1 new file mode 120000 index 00000000..f010fd4c --- /dev/null +++ b/signature/fixtures/dir-img-valid-2/signature-1 @@ -0,0 +1 @@ +../dir-img-valid/signature-1 \ No newline at end of file diff --git a/signature/fixtures/dir-img-valid-2/signature-2 b/signature/fixtures/dir-img-valid-2/signature-2 new file mode 100644 index 0000000000000000000000000000000000000000..dbba8f422811e20ff5077fb33bed1c7b0c49484c GIT binary patch literal 425 zcmV;a0apH_0h_?f%)r5TyXccd_m-R!jHeGICNYHjEHbWEN-oMQ$xKenQL?I5%1lYk zE6FUW1hG@{le1Hcbc<5cQj1dal2eteluA;IOEUA)^>Y*RGSh%;tDHoTkW#IVQf6*q zdMc7Om=fKT%yf_vE2ZL$L?cr(DuwBQr}&!?ct{GXvvPgA@b9B$HJ0G&2JeBlA>KQ;=mPl?5Q@B$njoW+p2n=jW9q zX6B_9DHLa>=Ovbu7Nvp|=I25Dm0XkxR9uA6W1wfKXK1XOl3Jz&G%hn2=)}a_ z0wpU$6Eh$*FfcW&t?ih@!obMEz{bi13Md9HP61f(DZgc5SRvv3>p{5-e{}20e`Y_P zE4`Nw^4q4zQny`lU4iZWtgzB)=G`B(-b`J^858E^%~GoIY*RGSh%;tDHoTkW#IVQf6*q zdMc7Om=fKT%yf_vE2ZL$L?cr(DuwBQr}&!?ct{GXvvPgA@b9B$HJ0G&2JeBlA>KQ;=mPl?5Q@B$njoW+p2n=jW9q zX6B_9DHLa>=Ovbu7Nvp|=I25Dm0XkxR9uA6W1wfKXK1XOl3Jz&G%hn2=)}a_ z0wpU$6EhQIOAAX=liJ#jIV=o}91Lu%OrU^b;Nld31z)%@^M8+d`p;)&aHfmy<#WsS zIK8RVeU8%X-WmB$J1dW|Oj*WaDl(;Svh=AfLN^vEid+