authfs: create a chunked reader with fs-verity verification
The new chunked reader uses a Merkle tree to verify each chunk read of
the corresponding backing file. The reader also accepts an
autheneticator for signature verification, though it is currently a fake
implementation due to the lack of PKCS#7 signature support in BoringSSL
(b/170494765).
Test: atest authfs_host_test_src_lib
Bug: 171310075
Change-Id: Ibf4151ab2a93f7515ad8c9c0462df6c21c10d767
diff --git a/authfs/testdata/cert.pem b/authfs/testdata/cert.pem
new file mode 100644
index 0000000..0a380f3
--- /dev/null
+++ b/authfs/testdata/cert.pem
@@ -0,0 +1,32 @@
+-----BEGIN CERTIFICATE-----
+MIIFmzCCA4OgAwIBAgIUbgQdchyPL/bN/LLgs8CPJU+fO10wDQYJKoZIhvcNAQEL
+BQAwXTELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcM
+DU1vdW50YWluIFZpZXcxDzANBgNVBAoMBkdvb2dsZTEQMA4GA1UECwwHQW5kcm9p
+ZDAeFw0yMDExMDIyMTM1MTRaFw0zMDEwMzEyMTM1MTRaMF0xCzAJBgNVBAYTAlVT
+MRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBWaWV3MQ8w
+DQYDVQQKDAZHb29nbGUxEDAOBgNVBAsMB0FuZHJvaWQwggIiMA0GCSqGSIb3DQEB
+AQUAA4ICDwAwggIKAoICAQDAHeyQArSPm8IE+Fx65zFVG4Sjicxdv8Pb5Be5rO+P
+JZ/QtQfNqBTVBKVP//Gp8tY79IlgiJYq69ZbofqPDwy/Q+9HfxdjLxp5uotYi9LP
+uYQTEmt3Lufu3oFHqyvhNVzm1sFEa9cYsQA7xtAZ5a4yQWKI2IBIR9kX6AvJQnoU
+KUg8c8QcXO6fjhO+zEcZo6rqYz7qMnpj28nKGPpuQlARqXFIXvSwVTz3D0GHri3x
+0Xzam5XG6h+KBdRQ8Zq3OEk8XaI/P4I8d/NgjWtDEjgNmLSkPFAshv9V4aZ1JCN7
+Oibp7vSCbr2ExeL859mxxLbk0WR3BfDmV6n3g7Rix93hO3NogBADp8P1blc23Iyh
+FcoiG3ub+668uQB8KurMmEDmNzOAAjsE2N6VNauDM+N7k7JXlAHk9No/D5uW3lfn
+ndNfAM/Wo8u3nPpFj92UilSoxgONKvSmta+zYraODylKDqZeuyU26u/UCSbf63Qf
+BirIq7p/ZAcADPODmINfjJaEMAHAVLxyMA83rX+d/ohsmDlfP7XB4cnKY1XJSGxm
+831F3VUr/1dBfZ21oavLLqE4B3EIB5hbp4KfLYsuMgMqPefWCONH9zVmuLTJJwSQ
+pe8LYKcYpjy3espes+63/c5pjfF8427z1anLxyz8lVVFnJaavsUPiQEpLQNBYARc
+QwIDAQABo1MwUTAdBgNVHQ4EFgQUv8uHLwpLoWE8AiLrqrfN3jJj61gwHwYDVR0j
+BBgwFoAUv8uHLwpLoWE8AiLrqrfN3jJj61gwDwYDVR0TAQH/BAUwAwEB/zANBgkq
+hkiG9w0BAQsFAAOCAgEAXqvjFadmSEGp9NhGGpgLMl6CqvJtyhe2FDfsvhAwfKdD
+qGcxuXN/HWctUYj/r+jASFfXHzse+O6lWo6MmSUP4mu/dEDyW8vTB8NHp9QgCVuC
+pCTWrfkEXwuq7ARHeFkaW1iSMwHosAilKibTNCHWqfmlmMeOF9e/JeAZbP6X8/5N
+u1y8vZEdMOA/JGEMjI4H27P+txCA8e24PjwGYbopH9URb6shRAR4W6r/Rp9+jhwR
+o/RUJfxavGXX69iR7MiwT756eSeihyE9+TQLYrGaPktDnZ18x/QjXFWOrAR1H9pe
+Pngma3L+/YyevVwbpLzZ724qpPFd1I5daZDgMebzZU6atbYBEQQCuiwvwEQ3ilUK
+pNjZyqN8rL0T20L5wr6PFDA3NOYlGWePYws3kB8DUOE9MFhtbzibDfSlrbRRaMP1
+n9N+HTtvMIRcGh02WxPsV2Z/AU6eSrX2XH55mh2SI9M9jmH0IkQieyAeeT9/qI6h
+eD3XrHdKr/uLL8C0sngueQjmbCoS1jAAEXJrPZgAouC6vUeKx0wc4lEX4rbDEO0m
+qXZwJ7W/0kHRHlUztbpdiYSo+WaOpk9XqUs/C/F8gNSazdawS1/weH3gnvBC6eXT
+gqHoGWlxMlRl5Qd5LdmZ1L1ASyjH5Yk8QhLCFoNjLYkEfAbDyc4hi5y5sccMDrA=
+-----END CERTIFICATE-----