tree: 4e2db4383cc8a559b28ef2307b3716c1c66e8899 [path history] [tgz]
  1. create.sh
  2. input.10000000
  3. input.10000000.descriptor
  4. input.10000000.hash
  5. input.1M
  6. input.1M.descriptor
  7. input.1M.hash
  8. input.272629760
  9. input.272629760.descriptor
  10. input.272629760.hash
  11. input.4K
  12. input.4K.descriptor
  13. input.4K.hash
  14. input.512
  15. input.512.descriptor
  16. input.512.hash
  17. README.md
  18. test.apex
  19. test.apex.apk_digest
  20. test.apex.der
  21. v2-only-truncated-cd.apk
  22. v2-only-two-signers.apk
  23. v3-only-cert-and-public-key-mismatch.apk
  24. v3-only-empty.apk
  25. v3-only-no-certs-in-sig.apk
  26. v3-only-no-supported-sig-algs.apk
  27. v3-only-signatures-and-digests-block-mismatch.apk
  28. v3-only-unknown-additional-attr.apk
  29. v3-only-unknown-additional-attr.apk.apk_digest
  30. v3-only-unknown-additional-attr.apk.der
  31. v3-only-unknown-pair-in-apk-sig-block.apk
  32. v3-only-unknown-pair-in-apk-sig-block.apk.apk_digest
  33. v3-only-unknown-pair-in-apk-sig-block.apk.der
  34. v3-only-with-dsa-sha256-1024.apk
  35. v3-only-with-dsa-sha256-2048-sig-does-not-verify.apk
  36. v3-only-with-dsa-sha256-2048.apk
  37. v3-only-with-dsa-sha256-3072-digest-mismatch.apk
  38. v3-only-with-dsa-sha256-3072.apk
  39. v3-only-with-ecdsa-sha256-p256.apk
  40. v3-only-with-ecdsa-sha256-p256.apk.apk_digest
  41. v3-only-with-ecdsa-sha256-p256.apk.der
  42. v3-only-with-ecdsa-sha256-p384.apk
  43. v3-only-with-ecdsa-sha256-p384.apk.apk_digest
  44. v3-only-with-ecdsa-sha256-p384.apk.der
  45. v3-only-with-ecdsa-sha256-p521.apk
  46. v3-only-with-ecdsa-sha256-p521.apk.apk_digest
  47. v3-only-with-ecdsa-sha256-p521.apk.der
  48. v3-only-with-ecdsa-sha512-p256.apk
  49. v3-only-with-ecdsa-sha512-p256.apk.apk_digest
  50. v3-only-with-ecdsa-sha512-p256.apk.der
  51. v3-only-with-ecdsa-sha512-p384-wrong-apk-sig-block-magic.apk
  52. v3-only-with-ecdsa-sha512-p384.apk
  53. v3-only-with-ecdsa-sha512-p384.apk.apk_digest
  54. v3-only-with-ecdsa-sha512-p384.apk.der
  55. v3-only-with-ecdsa-sha512-p521-sig-does-not-verify.apk
  56. v3-only-with-ecdsa-sha512-p521.apk
  57. v3-only-with-ecdsa-sha512-p521.apk.apk_digest
  58. v3-only-with-ecdsa-sha512-p521.apk.der
  59. v3-only-with-ignorable-unsupported-sig-algs.apk
  60. v3-only-with-ignorable-unsupported-sig-algs.apk.apk_digest
  61. v3-only-with-ignorable-unsupported-sig-algs.apk.der
  62. v3-only-with-rsa-pkcs1-sha256-1024.apk
  63. v3-only-with-rsa-pkcs1-sha256-1024.apk.apk_digest
  64. v3-only-with-rsa-pkcs1-sha256-1024.apk.der
  65. v3-only-with-rsa-pkcs1-sha256-16384.apk
  66. v3-only-with-rsa-pkcs1-sha256-16384.apk.apk_digest
  67. v3-only-with-rsa-pkcs1-sha256-16384.apk.der
  68. v3-only-with-rsa-pkcs1-sha256-2048.apk
  69. v3-only-with-rsa-pkcs1-sha256-2048.apk.apk_digest
  70. v3-only-with-rsa-pkcs1-sha256-2048.apk.der
  71. v3-only-with-rsa-pkcs1-sha256-3072-sig-does-not-verify.apk
  72. v3-only-with-rsa-pkcs1-sha256-3072.apk
  73. v3-only-with-rsa-pkcs1-sha256-3072.apk.apk_digest
  74. v3-only-with-rsa-pkcs1-sha256-3072.apk.der
  75. v3-only-with-rsa-pkcs1-sha256-4096.apk
  76. v3-only-with-rsa-pkcs1-sha256-4096.apk.apk_digest
  77. v3-only-with-rsa-pkcs1-sha256-4096.apk.der
  78. v3-only-with-rsa-pkcs1-sha256-8192.apk
  79. v3-only-with-rsa-pkcs1-sha256-8192.apk.apk_digest
  80. v3-only-with-rsa-pkcs1-sha256-8192.apk.der
  81. v3-only-with-rsa-pkcs1-sha512-1024.apk
  82. v3-only-with-rsa-pkcs1-sha512-1024.apk.apk_digest
  83. v3-only-with-rsa-pkcs1-sha512-1024.apk.der
  84. v3-only-with-rsa-pkcs1-sha512-16384.apk
  85. v3-only-with-rsa-pkcs1-sha512-16384.apk.apk_digest
  86. v3-only-with-rsa-pkcs1-sha512-16384.apk.der
  87. v3-only-with-rsa-pkcs1-sha512-2048.apk
  88. v3-only-with-rsa-pkcs1-sha512-2048.apk.apk_digest
  89. v3-only-with-rsa-pkcs1-sha512-2048.apk.der
  90. v3-only-with-rsa-pkcs1-sha512-3072.apk
  91. v3-only-with-rsa-pkcs1-sha512-3072.apk.apk_digest
  92. v3-only-with-rsa-pkcs1-sha512-3072.apk.der
  93. v3-only-with-rsa-pkcs1-sha512-4096-apk-sig-block-size-mismatch.apk
  94. v3-only-with-rsa-pkcs1-sha512-4096.apk
  95. v3-only-with-rsa-pkcs1-sha512-4096.apk.apk_digest
  96. v3-only-with-rsa-pkcs1-sha512-4096.apk.der
  97. v3-only-with-rsa-pkcs1-sha512-8192-digest-mismatch.apk
  98. v3-only-with-rsa-pkcs1-sha512-8192.apk
  99. v3-only-with-rsa-pkcs1-sha512-8192.apk.apk_digest
  100. v3-only-with-rsa-pkcs1-sha512-8192.apk.der
  101. v3-only-with-stamp.apk
  102. v3-only-with-stamp.apk.apk_digest
  103. v3-only-with-stamp.apk.der
  104. v31-rsa-2048_2-tgt-33-1-tgt-28.apk
  105. v4-digest-v3-Sha256withEC.apk
  106. v4-digest-v3-Sha256withEC.apk.idsig
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.