Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions src/test/kotlin/ExtensionTest.kt
Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,18 @@ class ExtensionTest {
)
}

@Test
fun parseFrom_malformedRotDeviceLocked_successfullyParsed() {
val keyDescription =
KeyDescription.parseFrom(
testData
.resolve("invalid/malformed_rot_device_locked.pem")
.inputStream()
.asX509Certificate()
)
assertThat(keyDescription?.hardwareEnforced?.rootOfTrust?.deviceLocked).isTrue()
}

@Test
fun parseFrom_invalidPatchLevel_returnsNull(
@TestParameter("202400", "00000000", "2000231") patchLevel: String
Expand Down
83 changes: 83 additions & 0 deletions testdata/invalid/malformed_rot_device_locked.pem
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
-----BEGIN CERTIFICATE-----
MIIC8TCCApagAwIBAgIBATAKBggqhkjOPQQDAjA5MQwwCgYDVQQMDANURUUxKTAn
BgNVBAUTIDVlZThlMTAxN2U1N2RmZTg2ZGY0OGY5NDliNDJhYmRkMB4XDTcwMDEw
MTAwMDAwMFoXDTM3MTIxNTAwMDAwMFowHzEdMBsGA1UEAwwUQW5kcm9pZCBLZXlz
dG9yZSBLZXkwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAR4pkh2XmWk/4OMceyS
diXVDwq20dha3HN+APzstRgBcs6cvi+uPhIo9q+SIAB4yxA0hifxuNodBuk5YqyN
HXDKo4IBpzCCAaMwCwYDVR0PBAQDAgeAMIIBcQYKKwYBBAHWeQIBEQSCAWEwggFd
AgEDCgEBAgEECgEBBFkBmxFaF/3yazcTCUZwgNCuwbWgwcanozULkgVgZZ+nm5ei
GnUam/nwMTI7mSU2GdzEwxpKiroDNQBjIWIPLHCz6A8MUE9kdLX0h4mP5Yd88tnX
ws0lXiNfpwQAMGK/hT0IAgYBnFeLtqC/hUVSBFAwTjEoMCYEHmNvbS5nb29nbGUu
YW5kcm9pZC5hcHBzLnBob3RvcwIEAw0mazEiBCA9ehIjAZqjnZ6g40Nqt8CJa/tP
tnn03l/nwj8ybI+ZSjCBjaEFMQMCAQKiAwIBA6MEAgIBAKUFMQMCAQSqAwIBAb+D
dwIFAL+FPgMCAQC/hUBMMEoEIGyILSRpoKAyYfixE3vNgt1s6MJsAufxCJF8WjLv
pKh8AQEBCgEABCCWOcnpKag/lrtRmW16oBMOGy1uc3NOstxFXOKDHBJA0r+FQQUC
AwGGoL+FQgUCAwMV3zAfBgNVHSMEGDAWgBRh+jTnohXxR2eKa0lRutYiEPy10TAK
BggqhkjOPQQDAgNJADBGAiEAhHrAfOafMB04q6ySXttZEdASfvuWCfMlwetQnaUw
2cMCIQCqlCq0j5AiLPQDvgJmnrflsHK15eINmhAKrQydDFNnFw==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIB8zCCAXqgAwIBAgIRAIcPTRoSVuUbhEYaHCA+CwswCgYIKoZIzj0EAwIwOTEM
MAoGA1UEDAwDVEVFMSkwJwYDVQQFEyBiNzAxYmRlYmFhMGUxNjNjNDk4M2VmNDQ5
Y2YyMjczYTAeFw0yMTAxMTMyMTEwNTlaFw0zMTAxMTEyMTEwNTlaMDkxDDAKBgNV
BAwMA1RFRTEpMCcGA1UEBRMgNWVlOGUxMDE3ZTU3ZGZlODZkZjQ4Zjk0OWI0MmFi
ZGQwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASh25R5wKFkb3+HO0BQVGud9g7i
sdwfCodnaUdf8UNvONlJ3VpG3Q2He4mvYi+Hsf//ZjirYxt3UYzbMbSumByLo2Mw
YTAdBgNVHQ4EFgQUYfo056IV8UdnimtJUbrWIhD8tdEwHwYDVR0jBBgwFoAUgsAF
Cf3Gj3EYKjzaIEx2/7vO+h0wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC
AgQwCgYIKoZIzj0EAwIDZwAwZAIwQJkP5byK51/384Hdk+cYXh+oa02Aui79420s
Df6zf5RVWXDBYlu+uFnqs56CNjSdAjBwTEZdxUY4XUBxvjD4F7E1vHWEAu0My8uO
p15S8lhTEr3wBa3nwtZLkOn6LybVAZY=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIDlDCCAXygAwIBAgIRAMCYDGn+bv4sULuIPvxLWIQwDQYJKoZIhvcNAQELBQAw
GzEZMBcGA1UEBRMQZjkyMDA5ZTg1M2I2YjA0NTAeFw0yMTAxMTMyMTA5MjdaFw0z
MTAxMTEyMTA5MjdaMDkxDDAKBgNVBAwMA1RFRTEpMCcGA1UEBRMgYjcwMWJkZWJh
YTBlMTYzYzQ5ODNlZjQ0OWNmMjI3M2EwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAS0
4MJay37J4sxw7bsoKUL1AjhT8SNSFCC9s3tsvLd1rv57tvWLOq8w7N71ttWq6EJN
hw+JEjHLFnXhoiKjRIlyjcdeoj0PddtmW/ZoFuzTBcPfzPBQpl03v43ZfGWk+Uij
YzBhMB0GA1UdDgQWBBSCwAUJ/caPcRgqPNogTHb/u876HTAfBgNVHSMEGDAWgBQ2
YeEAfIgFCVGLRGxH/xpMyepPEjAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQE
AwICBDANBgkqhkiG9w0BAQsFAAOCAgEAMuU8AneoBiXrItzXOKFS9dB3fsBcWvVd
htnhDC1CaJ1469bla71nVJ8lZazEaBhBwU5207Gb5elK2phdN88uO6raPyZHinEE
A2FS1WcM5o4bsp8RrZLn/cfWjc0vD3zXSamFQec8btU4KJtjWSdB3NDgZX3TLpL1
8NLd2tnvm4K6me8sC7N/yexMKa/MSjtER6EAGWRDpW7AkAk3c4OixLF0Im/uZTAP
8qn1aEiHq22zHMWRAQ+83oO8rffza1Yipv3DdamGzGXTOd2J3fedn0LbBVpFJw8N
97PT87zI/wYp886+BXZCmUkkjtl5zFDVJH3gJSmuZGdSVvNY+UcqYufmW9vBQaN6
9IuRmlSD8Vvgz9WzvPkompcOQrTXZYCRL3NGx6oVXRQiJGDwrzru5IHYaSRCnpTD
FJDf4+9ND5Q0IBbpdcRJ1KAmiMa+0QwTQtDVeevT7ycm38svLR7EJMe4M16cxrYa
mkiZweeGeJyCte4N0eoHTDVGsnPf8pwYBw3hwPmb3WpN1rRKju4+TXf7495aFX8j
fT3i7DigqF6U9na1yL2SPJinAxrlNH/b91YIOResBzErUwKKcNDe/PnKes5/TMO6
ZbjPuzTu8aeHAFSVHA1Sq5T0gT+h45Sj/ICxFHZjva8ED5jc5aCOJwt81q40cZIr
YT8DjPCSYAE=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFHDCCAwSgAwIBAgIJANUP8luj8tazMA0GCSqGSIb3DQEBCwUAMBsxGTAXBgNV
BAUTEGY5MjAwOWU4NTNiNmIwNDUwHhcNMTkxMTIyMjAzNzU4WhcNMzQxMTE4MjAz
NzU4WjAbMRkwFwYDVQQFExBmOTIwMDllODUzYjZiMDQ1MIICIjANBgkqhkiG9w0B
AQEFAAOCAg8AMIICCgKCAgEAr7bHgiuxpwHsK7Qui8xUFmOr75gvMsd/dTEDDJdS
Sxtf6An7xyqpRR90PL2abxM1dEqlXnf2tqw1Ne4Xwl5jlRfdnJLmN0pTy/4lj4/7
tv0Sk3iiKkypnEUtR6WfMgH0QZfKHM1+di+y9TFRtv6y//0rb+T+W8a9nsNL/ggj
nar86461qO0rOs2cXjp3kOG1FEJ5MVmFmBGtnrKpa73XpXyTqRxB/M0n1n/W9nGq
C4FSYa04T6N5RIZGBN2z2MT5IKGbFlbC8UrW0DxW7AYImQQcHtGl/m00QLVWutHQ
oVJYnFPlXTcHYvASLu+RhhsbDmxMgJJ0mcDpvsC4PjvB+TxywElgS70vE0XmLD+O
JtvsBslHZvPBKCOdT0MS+tgSOIfga+z1Z1g7+DVagf7quvmag8jfPioyKvxnK/Eg
sTUVi2ghzq8wm27ud/mIM7AY2qEORR8Go3TVB4HzWQgpZrt3i5MIlCaY504LzSRi
igHCzAPlHws+W0rB5N+er5/2pJKnfBSDiCiFAVtCLOZ7gLiMm0jhO2B6tUXHI/+M
RPjy02i59lINMRRev56GKtcd9qO/0kUJWdZTdA2XoS82ixPvZtXQpUpuL12ab+9E
aDK8Z4RHJYYfCT3Q5vNAXaiWQ+8PTWm2QgBR/bkwSWc+NpUFgNPN9PvQi8WEg5Um
AGMCAwEAAaNjMGEwHQYDVR0OBBYEFDZh4QB8iAUJUYtEbEf/GkzJ6k8SMB8GA1Ud
IwQYMBaAFDZh4QB8iAUJUYtEbEf/GkzJ6k8SMA8GA1UdEwEB/wQFMAMBAf8wDgYD
VR0PAQH/BAQDAgIEMA0GCSqGSIb3DQEBCwUAA4ICAQBOMaBc8oumXb2voc7XCWnu
XKhBBK3e2KMGz39t7lA3XXRe2ZLLAkLM5y3J7tURkf5a1SutfdOyXAmeE6SRo83U
h6WszodmMkxK5GM4JGrnt4pBisu5igXEydaW7qq2CdC6DOGjG+mEkN8/TA6p3cno
L/sPyz6evdjLlSeJ8rFBH6xWyIZCbrcpYEJzXaUOEaxxXxgYz5/cTiVKN2M1G2ok
QBUIYSY6bjEL4aUN5cfo7ogP3UvliEo3Eo0YgwuzR2v0KR6C1cZqZJSTnghIC/vA
D32KdNQ+c3N+vl2OTsUVMC1GiWkngNx1OO1+kXW+YTnnTUOtOIswUP/Vqd5SYgAI
mMAfY8U9/iIgkQj6T2W6FsScy94IN9fFhE1UtzmLoBIuUFsVXJMTz+Jucth+IqoW
Fua9v1R93/k98p41pjtFX+H8DslVgfP097vju4KDlqN64xV1grw3ZLl4CiOe/A91
oeLm2UHOq6wn3esB4r2EIQKb6jTVGu5sYCcdWpXr0AUVqcABPdgL+H7qJguBw09o
jm6xNIrw2OocrDKsudk/okr/AwqEyPKw9WnMlQgLIKw1rODG2NvU9oR3GVGdMkUB
ZutL8VuFkERQGt6vQ2OCw0sV47VMkuYbacK/xyZFiRcrPJPb41zgbQj9XAEyLKCH
ex0SdDrx+tWUDqG8At2JHA==
-----END CERTIFICATE-----