tree: 0caf89ffbbb3d841d1c68a17ecd8c133c33347b2 [path history] [tgz]
  1. README.md
  2. test.apex
  3. test.apex.apk_digest
  4. test.apex.der
  5. v2-only-truncated-cd.apk
  6. v2-only-two-signers.apk
  7. v3-only-cert-and-public-key-mismatch.apk
  8. v3-only-empty.apk
  9. v3-only-no-certs-in-sig.apk
  10. v3-only-no-supported-sig-algs.apk
  11. v3-only-signatures-and-digests-block-mismatch.apk
  12. v3-only-unknown-additional-attr.apk
  13. v3-only-unknown-additional-attr.apk.apk_digest
  14. v3-only-unknown-additional-attr.apk.der
  15. v3-only-unknown-pair-in-apk-sig-block.apk
  16. v3-only-unknown-pair-in-apk-sig-block.apk.apk_digest
  17. v3-only-unknown-pair-in-apk-sig-block.apk.der
  18. v3-only-with-dsa-sha256-1024.apk
  19. v3-only-with-dsa-sha256-2048-sig-does-not-verify.apk
  20. v3-only-with-dsa-sha256-2048.apk
  21. v3-only-with-dsa-sha256-3072-digest-mismatch.apk
  22. v3-only-with-dsa-sha256-3072.apk
  23. v3-only-with-ecdsa-sha256-p256.apk
  24. v3-only-with-ecdsa-sha256-p256.apk.apk_digest
  25. v3-only-with-ecdsa-sha256-p256.apk.der
  26. v3-only-with-ecdsa-sha256-p384.apk
  27. v3-only-with-ecdsa-sha256-p384.apk.apk_digest
  28. v3-only-with-ecdsa-sha256-p384.apk.der
  29. v3-only-with-ecdsa-sha256-p521.apk
  30. v3-only-with-ecdsa-sha256-p521.apk.apk_digest
  31. v3-only-with-ecdsa-sha256-p521.apk.der
  32. v3-only-with-ecdsa-sha512-p256.apk
  33. v3-only-with-ecdsa-sha512-p256.apk.apk_digest
  34. v3-only-with-ecdsa-sha512-p256.apk.der
  35. v3-only-with-ecdsa-sha512-p384-wrong-apk-sig-block-magic.apk
  36. v3-only-with-ecdsa-sha512-p384.apk
  37. v3-only-with-ecdsa-sha512-p384.apk.apk_digest
  38. v3-only-with-ecdsa-sha512-p384.apk.der
  39. v3-only-with-ecdsa-sha512-p521-sig-does-not-verify.apk
  40. v3-only-with-ecdsa-sha512-p521.apk
  41. v3-only-with-ecdsa-sha512-p521.apk.apk_digest
  42. v3-only-with-ecdsa-sha512-p521.apk.der
  43. v3-only-with-ignorable-unsupported-sig-algs.apk
  44. v3-only-with-ignorable-unsupported-sig-algs.apk.apk_digest
  45. v3-only-with-ignorable-unsupported-sig-algs.apk.der
  46. v3-only-with-rsa-pkcs1-sha256-1024.apk
  47. v3-only-with-rsa-pkcs1-sha256-1024.apk.apk_digest
  48. v3-only-with-rsa-pkcs1-sha256-1024.apk.der
  49. v3-only-with-rsa-pkcs1-sha256-16384.apk
  50. v3-only-with-rsa-pkcs1-sha256-16384.apk.apk_digest
  51. v3-only-with-rsa-pkcs1-sha256-16384.apk.der
  52. v3-only-with-rsa-pkcs1-sha256-2048.apk
  53. v3-only-with-rsa-pkcs1-sha256-2048.apk.apk_digest
  54. v3-only-with-rsa-pkcs1-sha256-2048.apk.der
  55. v3-only-with-rsa-pkcs1-sha256-3072-sig-does-not-verify.apk
  56. v3-only-with-rsa-pkcs1-sha256-3072.apk
  57. v3-only-with-rsa-pkcs1-sha256-3072.apk.apk_digest
  58. v3-only-with-rsa-pkcs1-sha256-3072.apk.der
  59. v3-only-with-rsa-pkcs1-sha256-4096.apk
  60. v3-only-with-rsa-pkcs1-sha256-4096.apk.apk_digest
  61. v3-only-with-rsa-pkcs1-sha256-4096.apk.der
  62. v3-only-with-rsa-pkcs1-sha256-8192.apk
  63. v3-only-with-rsa-pkcs1-sha256-8192.apk.apk_digest
  64. v3-only-with-rsa-pkcs1-sha256-8192.apk.der
  65. v3-only-with-rsa-pkcs1-sha512-1024.apk
  66. v3-only-with-rsa-pkcs1-sha512-1024.apk.apk_digest
  67. v3-only-with-rsa-pkcs1-sha512-1024.apk.der
  68. v3-only-with-rsa-pkcs1-sha512-16384.apk
  69. v3-only-with-rsa-pkcs1-sha512-16384.apk.apk_digest
  70. v3-only-with-rsa-pkcs1-sha512-16384.apk.der
  71. v3-only-with-rsa-pkcs1-sha512-2048.apk
  72. v3-only-with-rsa-pkcs1-sha512-2048.apk.apk_digest
  73. v3-only-with-rsa-pkcs1-sha512-2048.apk.der
  74. v3-only-with-rsa-pkcs1-sha512-3072.apk
  75. v3-only-with-rsa-pkcs1-sha512-3072.apk.apk_digest
  76. v3-only-with-rsa-pkcs1-sha512-3072.apk.der
  77. v3-only-with-rsa-pkcs1-sha512-4096-apk-sig-block-size-mismatch.apk
  78. v3-only-with-rsa-pkcs1-sha512-4096.apk
  79. v3-only-with-rsa-pkcs1-sha512-4096.apk.apk_digest
  80. v3-only-with-rsa-pkcs1-sha512-4096.apk.der
  81. v3-only-with-rsa-pkcs1-sha512-8192-digest-mismatch.apk
  82. v3-only-with-rsa-pkcs1-sha512-8192.apk
  83. v3-only-with-rsa-pkcs1-sha512-8192.apk.apk_digest
  84. v3-only-with-rsa-pkcs1-sha512-8192.apk.der
  85. v3-only-with-stamp.apk
  86. v3-only-with-stamp.apk.apk_digest
  87. v3-only-with-stamp.apk.der
libs/apkverify/tests/data/README.md

About test data

.apk

test.apex is copied from ADBD apex built in AOSP.

$ apksigner verify -v test.apex
Verifies
Verified using v1 scheme (JAR signing): false
Verified using v2 scheme (APK Signature Scheme v2): false
Verified using v3 scheme (APK Signature Scheme v3): true
Verified using v4 scheme (APK Signature Scheme v4): false
Verified for SourceStamp: false
Number of signers: 1

APK files are copied from tools/apksig/src/test/resources/com/android/apksig/.

.der

.der files contain the expected public keys. When validating the public keys in tests, if the corresponding .der file is missing, there will be some text as follows in the failure message:

$ echo -en \\x30\\x59\\x30\\x13\\x06\\x07\\x2a\\x86\\x48\\xce\\x3d\\x02\\x01\\x06\\x08\\x2a\\x86\\x48\\xce\\x3d\\x03\\x01\\x07\\x03\\x42\\x00\\x04\\xa6\\x5f\\x11\\x3d\\x22\\xcb\\x49\\x13\\x90\\x83\\x07\\xac\\x31\\xee\\x2b\\xa0\\xe9\\x13\\x8b\\x78\\x5f\\xac\\x65\\x36\\xd1\\x4e\\xa2\\xce\\x90\\xd2\\xb4\\xbf\\xe1\\x94\\xb5\\x0c\\xdc\\x8e\\x16\\x9f\\x54\\xa7\\x3a\\x99\\x1e\\xf0\\xfa\\x76\\x32\\x98\\x25\\xbe\\x07\\x8c\\xc7\\x82\\x74\\x07\\x03\\xda\\x44\\xb4\\xd7\\xeb > tests/data/v3-only-with-stamp.apk.der

You just need to execute this command in the folder libs/apkverify to generate the corresponding .der file. After it, you can run the test again, and the test will pass.

Otherwise, you can also use the command apksigner verify --min-sdk-version 24 --print-certs-pem tests/data/v3-only-with-stamp.apk to get the public key in .pem format and then convert it to .der with openssl.

.apk_digest

.apk_digest files contain the expected apk_digest. They are generated the same way as .der when validating the apk_digest.