File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -39,6 +39,8 @@ yarn-error.*
3939# macOS
4040.DS_Store
4141* .pem
42+ # but the OTA code-signing certificate (public) is committed; the private key is not
43+ ! certs /certificate.pem
4244
4345# local env files
4446.env * .local
Original file line number Diff line number Diff line change @@ -79,15 +79,22 @@ const intentFilters = variant.linkHost
7979// baked in and manifests are served unsigned over HTTPS.
8080//
8181// Staging points at our self-hosted OTA backend (cut 1: validating the Expo
82- // Updates protocol + native<->backend transport, unsigned). Production has OTA
83- // disabled until the self-hosted backend is proven on staging, then it points
84- // here too.
82+ // Updates protocol + native<->backend transport, unsigned).
83+ //
84+ // Production requires a code-signed manifest: the tools/ publish lambda signs
85+ // each bundle with the private key, and this cert (its public half) lets the
86+ // device reject anything not signed by it. keyid/alg must match the lambda's
87+ // OTA_SIGNING_KEY_ID and rsa-v1_5-sha256.
8588const updates =
8689 APP_VARIANT === "devtool"
8790 ? { enabled : true }
8891 : APP_VARIANT === "staging"
8992 ? { url : "https://dev-api.couchershq.org/native/ota/manifest" }
90- : { enabled : false } ;
93+ : {
94+ url : "https://api.couchers.org/native/ota/manifest" ,
95+ codeSigningCertificate : "./certs/certificate.pem" ,
96+ codeSigningMetadata : { keyid : "main" , alg : "rsa-v1_5-sha256" } ,
97+ } ;
9198
9299export default {
93100 name : variant . name ,
Original file line number Diff line number Diff line change 1+ -----BEGIN CERTIFICATE-----
2+ MIIC3TCCAcWgAwIBAgIJXxmaYUSc1wmtMA0GCSqGSIb3DQEBCwUAMBcxFTATBgNV
3+ BAMTDENvdWNoZXJzLm9yZzAgFw0yNjA1MjUxNjU2MjZaGA8yMTI2MDUyNTE2NTYy
4+ NlowFzEVMBMGA1UEAxMMQ291Y2hlcnMub3JnMIIBIjANBgkqhkiG9w0BAQEFAAOC
5+ AQ8AMIIBCgKCAQEAue5pylwy90g9rMH2rr0ohpR686MWzvVsIcWd1aDQBw1xTm3v
6+ 2nuADp5/djn4FP7/kdRgIdY6Z/ktHZwCUAp0txMDTZBlzrAgUu/pfI0oUAu10j3+
7+ 2IbSCzHusDuaManwYQnILxi1ics0krSeKkg1xypbcLj50zuI7ACayN8vLLbqFwX+
8+ OrVuTHhiRM3kXd89IxWoigaKRmmZ/EQrEmzqInvS5XN57wum5cIPiQR4c6IjuSjf
9+ jz3QtT9Gmw2P5uyR2kY10fedBvN+HblfpeC0GD+/EgCI+DdnqxzM8hewfFM+D79p
10+ QB+5upEDGXH0Ll8O90gdQb3+dnZkHqsaMNXGEQIDAQABoyowKDAOBgNVHQ8BAf8E
11+ BAMCB4AwFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwMwDQYJKoZIhvcNAQELBQADggEB
12+ AAuf4G7cxlkwMsr+GAdzM8tanAtkem/edVgXZ3SAeamn+hW+fp1DD7TFrghi0xTq
13+ KVVg0RgTTQ2Nnd7cJexGKiATZ0+810KUWnYL43ZwjOErYcWYtP8TOlk63CDlSgvj
14+ r8hvW+lXWXHpWQy0hJ7Azs56g+ufbxsQrJ5+qIzUSUu1S+XME5zFXeh/q8fzCmvE
15+ pFeyhRHioZyqHKnBd1fdoJ0MoxbsxV5F5KJT95VIFZi3NtbaQgNUHK/K2PW8frzY
16+ D/qvsIRBNjpcMQOOrotXpkXwPaKZgPtoCD4h5EnIflIMP5Ka1JrCgkCSuKypyBcS
17+ 8FD9CNIt7L9rOJudDtGyQUE=
18+ -----END CERTIFICATE-----
You can’t perform that action at this time.
0 commit comments