From c0c758b201eb1daba9fec4cd919a934a6aa571b5 Mon Sep 17 00:00:00 2001
From: Denis Pynkin <denis.pynkin@collabora.com>
Date: Sun, 9 Feb 2020 23:53:32 +0300
Subject: [PATCH] imx6: add open part for HAB signing

This directory contain the open part of Apertis super root keys used for
signing U-Boot and FIT kernel image for i.MX-based boards (SabreLite).

The private keys and password are set in CI/CD as a secret, however all bits are available
in [open repository](https://gitlab.apertis.org/infrastructure/apertis-imx-srk).

Signed-off-by: Denis Pynkin <denis.pynkin@collabora.com>
---
 .../CSF1_1_sha256_2048_65537_v3_usr_crt.pem   |  79 ++++++++++++++++++
 .../IMG1_1_sha256_2048_65537_v3_usr_crt.pem   |  79 ++++++++++++++++++
 sign/imx6/SRK_1_2_3_4_table.bin               | Bin 0 -> 1088 bytes
 sign/imx6/readme.md                           |  14 ++++
 4 files changed, 172 insertions(+)
 create mode 100644 sign/imx6/CSF1_1_sha256_2048_65537_v3_usr_crt.pem
 create mode 100644 sign/imx6/IMG1_1_sha256_2048_65537_v3_usr_crt.pem
 create mode 100644 sign/imx6/SRK_1_2_3_4_table.bin
 create mode 100644 sign/imx6/readme.md

diff --git a/sign/imx6/CSF1_1_sha256_2048_65537_v3_usr_crt.pem b/sign/imx6/CSF1_1_sha256_2048_65537_v3_usr_crt.pem
new file mode 100644
index 00000000..89cbe7c1
--- /dev/null
+++ b/sign/imx6/CSF1_1_sha256_2048_65537_v3_usr_crt.pem
@@ -0,0 +1,79 @@
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number: 305419897 (0x12345679)
+        Signature Algorithm: sha256WithRSAEncryption
+        Issuer: CN=SRK1_sha256_2048_65537_v3_ca
+        Validity
+            Not Before: Jun 23 12:17:40 2019 GMT
+            Not After : Jun 18 12:17:40 2039 GMT
+        Subject: CN=CSF1_1_sha256_2048_65537_v3_usr
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                RSA Public-Key: (2048 bit)
+                Modulus:
+                    00:a9:e4:66:ab:90:b5:54:f4:1b:9d:37:2b:3d:dd:
+                    7f:e6:9f:e8:03:26:4f:a9:e0:64:e2:e7:6b:cf:c1:
+                    33:df:32:c8:a8:60:87:2a:58:c1:2c:03:58:e4:70:
+                    cb:89:b1:2a:86:8f:69:ea:70:e9:5e:22:7b:5c:9b:
+                    ab:8e:6d:f8:03:b7:23:d9:fa:c6:51:92:6e:fb:b2:
+                    2f:8c:eb:f4:ae:c8:74:3a:90:c3:ad:05:e1:1d:3a:
+                    1c:46:fb:b6:9a:d6:56:9a:20:bd:61:cc:73:cd:a2:
+                    ba:fd:4d:14:c1:fe:f2:88:bc:27:c6:5b:19:e9:86:
+                    52:9d:3d:4f:3e:c8:7c:ae:54:41:03:c6:c1:54:64:
+                    f9:f2:f3:71:f5:2f:b8:ed:4a:71:07:ce:76:1f:90:
+                    c3:38:a2:22:51:d3:88:04:c9:7b:b3:72:59:80:5c:
+                    06:31:68:5c:76:66:f9:f2:2a:39:be:0e:b1:37:76:
+                    c1:65:a4:39:3d:66:c2:3e:97:55:7d:d0:5b:24:95:
+                    79:bb:26:1f:2e:54:02:14:0c:84:e8:2c:28:f6:77:
+                    4b:f8:84:67:05:a3:d6:f5:9d:aa:4b:52:88:43:ed:
+                    de:d7:80:e8:69:47:e1:03:58:5d:0a:29:89:de:0c:
+                    bf:69:70:03:00:1d:13:12:e4:1e:56:c3:23:cb:6c:
+                    08:ad
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Basic Constraints: 
+                CA:FALSE
+            Netscape Comment: 
+                OpenSSL Generated Certificate
+            X509v3 Subject Key Identifier: 
+                F3:5A:26:E0:EC:25:14:9A:E8:C1:C2:58:58:4D:CA:F4:28:60:2D:F5
+            X509v3 Authority Key Identifier: 
+                keyid:26:24:AA:0E:88:E8:36:34:55:6A:03:DB:A7:7F:DA:95:8D:82:DF:CD
+
+    Signature Algorithm: sha256WithRSAEncryption
+         32:77:fb:f1:7d:ee:ef:5a:ce:36:fb:a8:6b:1e:73:87:63:22:
+         46:e6:04:36:f7:71:53:05:7c:c5:46:f7:e1:40:45:d7:e3:f2:
+         bc:6a:81:b6:71:8b:c8:3c:29:21:6a:79:ad:fe:03:d0:a9:05:
+         7c:b8:4b:59:ba:0f:3b:fe:dd:ff:56:b4:b1:ee:4a:fb:86:de:
+         71:bc:d9:29:1b:ae:48:ba:a0:df:9e:12:7b:9f:87:67:7a:bb:
+         b3:ce:28:8a:c1:bb:e0:2a:71:c4:37:40:87:e5:d6:76:fd:82:
+         07:7e:0f:e7:16:ff:74:69:b2:bd:1d:88:e8:4e:dd:bd:61:d4:
+         bf:8f:2c:56:df:10:62:c3:b7:d8:1e:c2:bf:c8:ba:9a:7d:35:
+         3b:a2:f4:34:37:b7:3e:a2:8b:6b:ac:c3:ab:20:88:32:cf:ff:
+         c2:fb:d1:28:e6:16:1d:6b:83:51:b9:54:de:09:6a:d0:11:78:
+         2a:58:ca:9c:82:8c:de:e9:e7:09:ed:db:24:55:13:43:2d:a9:
+         29:a2:4c:08:0a:4c:a4:fa:b8:f1:fa:ac:b1:06:09:dc:63:b3:
+         80:b2:9e:c2:84:91:24:92:76:e3:3d:23:05:02:cf:df:90:37:
+         74:50:74:6a:f2:61:d1:bc:00:44:73:0b:7f:58:2f:f0:71:47:
+         19:a5:aa:33
+-----BEGIN CERTIFICATE-----
+MIIDSjCCAjKgAwIBAgIEEjRWeTANBgkqhkiG9w0BAQsFADAnMSUwIwYDVQQDDBxT
+UksxX3NoYTI1Nl8yMDQ4XzY1NTM3X3YzX2NhMB4XDTE5MDYyMzEyMTc0MFoXDTM5
+MDYxODEyMTc0MFowKjEoMCYGA1UEAwwfQ1NGMV8xX3NoYTI1Nl8yMDQ4XzY1NTM3
+X3YzX3VzcjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKnkZquQtVT0
+G503Kz3df+af6AMmT6ngZOLna8/BM98yyKhghypYwSwDWORwy4mxKoaPaepw6V4i
+e1ybq45t+AO3I9n6xlGSbvuyL4zr9K7IdDqQw60F4R06HEb7tprWVpogvWHMc82i
+uv1NFMH+8oi8J8ZbGemGUp09Tz7IfK5UQQPGwVRk+fLzcfUvuO1KcQfOdh+Qwzii
+IlHTiATJe7NyWYBcBjFoXHZm+fIqOb4OsTd2wWWkOT1mwj6XVX3QWySVebsmHy5U
+AhQMhOgsKPZ3S/iEZwWj1vWdqktSiEPt3teA6GlH4QNYXQopid4Mv2lwAwAdExLk
+HlbDI8tsCK0CAwEAAaN7MHkwCQYDVR0TBAIwADAsBglghkgBhvhCAQ0EHxYdT3Bl
+blNTTCBHZW5lcmF0ZWQgQ2VydGlmaWNhdGUwHQYDVR0OBBYEFPNaJuDsJRSa6MHC
+WFhNyvQoYC31MB8GA1UdIwQYMBaAFCYkqg6I6DY0VWoD26d/2pWNgt/NMA0GCSqG
+SIb3DQEBCwUAA4IBAQAyd/vxfe7vWs42+6hrHnOHYyJG5gQ293FTBXzFRvfhQEXX
+4/K8aoG2cYvIPCkhanmt/gPQqQV8uEtZug87/t3/VrSx7kr7ht5xvNkpG65IuqDf
+nhJ7n4dneruzziiKwbvgKnHEN0CH5dZ2/YIHfg/nFv90abK9HYjoTt29YdS/jyxW
+3xBiw7fYHsK/yLqafTU7ovQ0N7c+ootrrMOrIIgyz//C+9Eo5hYda4NRuVTeCWrQ
+EXgqWMqcgoze6ecJ7dskVRNDLakpokwICkyk+rjx+qyxBgncY7OAsp7ChJEkknbj
+PSMFAs/fkDd0UHRq8mHRvABEcwt/WC/wcUcZpaoz
+-----END CERTIFICATE-----
diff --git a/sign/imx6/IMG1_1_sha256_2048_65537_v3_usr_crt.pem b/sign/imx6/IMG1_1_sha256_2048_65537_v3_usr_crt.pem
new file mode 100644
index 00000000..591289a4
--- /dev/null
+++ b/sign/imx6/IMG1_1_sha256_2048_65537_v3_usr_crt.pem
@@ -0,0 +1,79 @@
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number: 305419898 (0x1234567a)
+        Signature Algorithm: sha256WithRSAEncryption
+        Issuer: CN=SRK1_sha256_2048_65537_v3_ca
+        Validity
+            Not Before: Jun 23 12:17:41 2019 GMT
+            Not After : Jun 18 12:17:41 2039 GMT
+        Subject: CN=IMG1_1_sha256_2048_65537_v3_usr
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                RSA Public-Key: (2048 bit)
+                Modulus:
+                    00:d7:c4:06:6b:76:54:ad:29:7a:bf:ea:82:f5:0b:
+                    dd:07:a5:d2:13:71:4d:1e:2f:b9:1c:e1:45:6c:8c:
+                    a5:7f:d7:ed:98:39:83:bf:33:3f:16:e4:37:a1:c7:
+                    15:81:85:ca:81:8d:20:5d:de:5f:53:6c:ac:2b:3c:
+                    07:7d:69:86:a2:e9:d1:b4:20:78:b0:8e:0e:b9:5f:
+                    cf:a8:bd:01:cc:5b:ac:f2:22:da:6f:5f:da:03:2e:
+                    eb:4c:7c:85:9d:26:de:80:da:91:92:af:27:9c:36:
+                    f5:6a:5d:dc:b5:55:91:3a:35:18:fb:d8:64:99:89:
+                    8f:81:66:77:67:af:21:7b:06:54:d5:c2:e0:76:e1:
+                    d2:f4:20:47:2a:2f:7e:73:39:0e:0e:8b:6d:fc:9b:
+                    3a:90:6d:df:ad:41:0e:2a:d8:60:39:a4:bc:e6:05:
+                    35:84:15:51:04:43:59:d5:72:19:d9:9c:e7:4b:a3:
+                    42:b2:e6:51:22:48:9c:7b:4d:9d:f8:f6:e5:88:8e:
+                    fa:44:a8:b6:89:ae:4f:da:83:fd:91:63:0d:8d:eb:
+                    36:f0:e3:e9:2f:62:f8:83:92:9e:c7:39:b1:b3:3c:
+                    33:31:22:58:3b:83:3c:17:d6:1d:8c:53:28:e7:23:
+                    1d:15:a2:40:73:b4:e2:15:9c:fc:f0:3c:3d:e9:c2:
+                    8e:b3
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Basic Constraints: 
+                CA:FALSE
+            Netscape Comment: 
+                OpenSSL Generated Certificate
+            X509v3 Subject Key Identifier: 
+                A2:E1:DB:BC:1B:F1:93:54:50:A1:9E:44:B1:D6:FE:F9:B1:56:32:F8
+            X509v3 Authority Key Identifier: 
+                keyid:26:24:AA:0E:88:E8:36:34:55:6A:03:DB:A7:7F:DA:95:8D:82:DF:CD
+
+    Signature Algorithm: sha256WithRSAEncryption
+         53:4f:9c:c1:ff:52:a8:a4:8e:bf:c7:af:61:5d:67:46:24:e7:
+         a6:ce:eb:ac:25:2b:48:e3:75:1c:b4:64:4a:c8:19:a9:44:f9:
+         f1:5b:04:c3:2f:99:06:3b:d3:93:81:65:ba:12:5d:2b:82:c4:
+         98:b5:15:d6:10:c6:28:b6:b5:a4:f3:d1:93:1a:b2:5e:16:36:
+         4d:6c:85:59:bb:3a:51:52:d9:63:1c:70:2b:c3:6b:b7:69:24:
+         86:e2:54:a8:96:f7:7c:4a:81:2b:8e:97:8b:85:63:93:36:43:
+         aa:f2:54:ad:11:91:aa:a4:98:71:a1:27:c7:fe:b3:0a:ed:52:
+         c2:27:53:16:35:02:f9:30:c2:64:bf:0a:1f:b1:12:79:42:39:
+         21:df:fc:6b:23:d3:ae:34:27:68:f4:d2:dd:af:df:09:54:ef:
+         8b:30:b9:b9:11:22:c8:46:9d:fa:61:61:23:b9:69:38:eb:c2:
+         32:5f:2a:5e:67:e7:eb:21:3d:61:0a:9f:b4:58:d1:29:a1:9e:
+         ec:99:15:25:26:ff:06:2a:2d:50:a9:cf:db:f2:ec:a2:09:99:
+         7b:7d:81:d8:14:f3:ec:21:07:52:3f:a7:02:4b:7f:bd:03:6d:
+         cb:02:1e:39:cc:de:94:c5:11:3d:0f:39:2a:ad:d3:0c:3b:c6:
+         f9:95:aa:40
+-----BEGIN CERTIFICATE-----
+MIIDSjCCAjKgAwIBAgIEEjRWejANBgkqhkiG9w0BAQsFADAnMSUwIwYDVQQDDBxT
+UksxX3NoYTI1Nl8yMDQ4XzY1NTM3X3YzX2NhMB4XDTE5MDYyMzEyMTc0MVoXDTM5
+MDYxODEyMTc0MVowKjEoMCYGA1UEAwwfSU1HMV8xX3NoYTI1Nl8yMDQ4XzY1NTM3
+X3YzX3VzcjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANfEBmt2VK0p
+er/qgvUL3Qel0hNxTR4vuRzhRWyMpX/X7Zg5g78zPxbkN6HHFYGFyoGNIF3eX1Ns
+rCs8B31phqLp0bQgeLCODrlfz6i9AcxbrPIi2m9f2gMu60x8hZ0m3oDakZKvJ5w2
+9Wpd3LVVkTo1GPvYZJmJj4Fmd2evIXsGVNXC4Hbh0vQgRyovfnM5Dg6LbfybOpBt
+361BDirYYDmkvOYFNYQVUQRDWdVyGdmc50ujQrLmUSJInHtNnfj25YiO+kSotomu
+T9qD/ZFjDY3rNvDj6S9i+IOSnsc5sbM8MzEiWDuDPBfWHYxTKOcjHRWiQHO04hWc
+/PA8PenCjrMCAwEAAaN7MHkwCQYDVR0TBAIwADAsBglghkgBhvhCAQ0EHxYdT3Bl
+blNTTCBHZW5lcmF0ZWQgQ2VydGlmaWNhdGUwHQYDVR0OBBYEFKLh27wb8ZNUUKGe
+RLHW/vmxVjL4MB8GA1UdIwQYMBaAFCYkqg6I6DY0VWoD26d/2pWNgt/NMA0GCSqG
+SIb3DQEBCwUAA4IBAQBTT5zB/1KopI6/x69hXWdGJOemzuusJStI43UctGRKyBmp
+RPnxWwTDL5kGO9OTgWW6El0rgsSYtRXWEMYotrWk89GTGrJeFjZNbIVZuzpRUtlj
+HHArw2u3aSSG4lSolvd8SoErjpeLhWOTNkOq8lStEZGqpJhxoSfH/rMK7VLCJ1MW
+NQL5MMJkvwofsRJ5Qjkh3/xrI9OuNCdo9NLdr98JVO+LMLm5ESLIRp36YWEjuWk4
+68IyXypeZ+frIT1hCp+0WNEpoZ7smRUlJv8GKi1Qqc/b8uyiCZl7fYHYFPPsIQdS
+P6cCS3+9A23LAh45zN6UxRE9DzkqrdMMO8b5lapA
+-----END CERTIFICATE-----
diff --git a/sign/imx6/SRK_1_2_3_4_table.bin b/sign/imx6/SRK_1_2_3_4_table.bin
new file mode 100644
index 0000000000000000000000000000000000000000..66bd3b3f53e85a0f8c5947992fb9ee35b4328b93
GIT binary patch
literal 1088
zcmV-G1i$;&1VBLH0S_Sn004ji000B8Yz3Tv6=gQt%X&(tMW^vhc`N6fnj>d!{**E4
z`Mn-%$sBF^r7McX;pZxh1M7nD;Gz#J6{dKsIZAZtUM#HzB2WsN(jLsDU;=^JFC(-6
zXMMvUn3TsrU?xOdi5l8kg8I*JvND6$5#*`U65PuemXV^=!pG`<O_j0WP}Q-Uew5yR
z){1M^7|@W-IzRrynk7~`wm#Z4;#AB1R%rzaCgYtbTjA2crvYQ3$%m%g{&1KcZHed(
zZ`-bxi6zu+5YgVS()T?I^HD%XWWS+Dvy8pKJ^VAW#n#=ZRf_z4wT_uu_5O7bAdkXw
zij1oWlj!MAcF=Ghy#;1PaP$)a00H3v4<P^m0Du7i00Y=k3M~^B%Jy!w*C?86%51O!
z=l|mdB|h}my2`mZssQo7UKL%Rmw0we!fUh$nvy$Kus7xG&I|%$DXsiJa_x^xinr7O
zdqQx8pvL?Hn#}1U*2i*l(o5vKO6$k}{&cqMwNI&iXJt+SW7AIxGd}S^fIvKu5<lg*
zP`*D0`+1Ti1CX7<Zen$%-X;HoBzjw@W}dvgP@~EJxacMtV1L{~UF0pBh^`ltphg88
zvP(DBG-z;o1q)N&0$)=bH`Py&!4O<JSD(S8iKkgAs84aOqcO)0t&&Nc^b9X%1(%tp
zPM1+1wnh)Se}&UHKRf?@b7Vc&|6Tw<feLK5ciRB~0pS4;ApigXfB^si1GqV_K)vQ~
z#mP1_5i8Loy5D*U_#%>5{X{u!#%zKt6USje-KGITY^{>=@PSv=aH!7UD<H{$P7Oci
zneCQ~Bieh{JLzEBw~V$|)pMXcxT>AuLO?klxzXL%_YbC8BeV1~eK>Om;GaoQf)?Fd
zDb|aptJ$<EO}?8>=<^<j+^hR{B{+*^jL&;3&JqRV?Qd||V}Ad3%F^z&^u7#;k)MEv
z#CrwXhgEXpASoS3>G1Zf7>%p!M=dZKzBV(izS$sx2CZfmOe#5*b#u0bs_@ZpOC6ez
zL^+toM1H)ILIV@{q;)|(Yit|Eu%dX~t*VKmV%=ZJZmLS@G37Uq4*>uH;Q<dJ0001h
z0RR94)YygM807zG*nKX;FVOP5Gv%@6^^*>tgluF>-oTzMzHMh_<*c=mlAWS-PMmWV
zsv_slArp%O;CC_*xW-c@_BsK`Xw84PRt@H?4;03zV_lrzzTzR2nNPrvmT(}czsla;
zGpQ2svu(2L=kR&U+DyeJ4NQuhQMp}Ozs8}kuA}Qm3~I&r0h9l7skfU|)NnLQMhlwo
zO^?(4(y!Y!=O6$T_sn{zV7Czq`4+4PB+vTToV%@1Sd#lqY>e1;(bnRjVFa3QZo!u{
zw?sY4MbM-Ig}>RU;S`cK*z5>Nr3Z#WJ+y&d4IybitG`O(V6qTfKTp@Zl_K;kRwhx2
G0RRD@Cl<;8

literal 0
HcmV?d00001

diff --git a/sign/imx6/readme.md b/sign/imx6/readme.md
new file mode 100644
index 00000000..043994b7
--- /dev/null
+++ b/sign/imx6/readme.md
@@ -0,0 +1,14 @@
+This directory contains the open part of Apertis super root keys used for
+signing U-Boot and FIT kernel image for i.MX-based boards (SabreLite).
+
+The private keys and password are set in CI/CD as a secret, however all bits are available
+in [open repository](https://gitlab.apertis.org/infrastructure/apertis-imx-srk).
+
+The [CST tool](https://gitlab.apertis.org/pkg/development/imx-code-signing-tool) is needed
+to sign binaries with the help of templates provided in this directory as well.
+
+For correct boot you have to fuse the board with the signature from the file `SRK_1_2_3_4_table.bin`.
+
+More information can be obtained from:
+- https://gitlab.apertis.org/third-party/u-boot/blob/master/doc/imx/habv4/guides/mx6_mx7_secure_boot.txt
+- https://boundarydevices.com/high-assurance-boot-hab-dummies/
-- 
GitLab