expo-updates 58.0.18 → 58.0.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 58.0.20
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Remove the BouncyCastle dependency on Android. ([#52379](https://github.com/expo/expo/pull/52379) by [@lukmccall](https://github.com/lukmccall))
|
|
8
|
+
|
|
9
|
+
## 58.0.19
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- Upgrade React Native to 0.88.1. ([#52404](https://github.com/expo/expo/pull/52404) by [@intergalacticspacehighway](https://github.com/intergalacticspacehighway))
|
|
14
|
+
|
|
3
15
|
## 58.0.18
|
|
4
16
|
|
|
5
17
|
### Patch Changes
|
package/android/build.gradle
CHANGED
|
@@ -42,7 +42,7 @@ expoModule {
|
|
|
42
42
|
}
|
|
43
43
|
|
|
44
44
|
group = 'host.exp.exponent'
|
|
45
|
-
version = '58.0.
|
|
45
|
+
version = '58.0.20'
|
|
46
46
|
|
|
47
47
|
// Utility method to derive boolean values from the environment or from Java properties,
|
|
48
48
|
// and return them as strings to be used in BuildConfig fields
|
|
@@ -103,7 +103,7 @@ android {
|
|
|
103
103
|
namespace "expo.modules.updates"
|
|
104
104
|
defaultConfig {
|
|
105
105
|
versionCode 31
|
|
106
|
-
versionName '58.0.
|
|
106
|
+
versionName '58.0.20'
|
|
107
107
|
consumerProguardFiles("proguard-rules.pro")
|
|
108
108
|
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
|
109
109
|
|
|
@@ -176,7 +176,6 @@ dependencies {
|
|
|
176
176
|
implementation("com.squareup.okhttp3:okhttp-urlconnection:4.9.2")
|
|
177
177
|
implementation("com.squareup.zstd:zstd-kmp-okio:0.4.0")
|
|
178
178
|
implementation("org.brotli:dec:0.1.2")
|
|
179
|
-
implementation("org.bouncycastle:bcutil-jdk15to18:1.81")
|
|
180
179
|
|
|
181
180
|
compileOnly 'com.facebook.fbjni:fbjni:0.3.0'
|
|
182
181
|
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
package expo.modules.updates.codesigning
|
|
2
2
|
|
|
3
|
-
import org.bouncycastle.asn1.ASN1Primitive
|
|
4
|
-
import org.bouncycastle.asn1.DEROctetString
|
|
5
3
|
import java.security.cert.CertificateException
|
|
6
4
|
import java.security.cert.CertificateFactory
|
|
7
5
|
import java.security.cert.X509Certificate
|
|
@@ -13,6 +11,8 @@ private const val CODE_SIGNING_OID = "1.3.6.1.5.5.7.3.3"
|
|
|
13
11
|
// OID of expo project info, stored as `<projectId>,<scopeKey>`
|
|
14
12
|
private const val EXPO_PROJECT_INFORMATION_OID = "1.2.840.113556.1.8000.2554.43437.254.128.102.157.7894389.20439.2.1"
|
|
15
13
|
|
|
14
|
+
private const val DER_OCTET_STRING_TAG = 0x04
|
|
15
|
+
|
|
16
16
|
data class ExpoProjectInformation(val projectId: String, val scopeKey: String)
|
|
17
17
|
|
|
18
18
|
/**
|
|
@@ -60,13 +60,7 @@ class CertificateChain(private val certificateStrings: List<String>) {
|
|
|
60
60
|
|
|
61
61
|
fun X509Certificate.expoProjectInformation(): ExpoProjectInformation? {
|
|
62
62
|
return getExtensionValue(EXPO_PROJECT_INFORMATION_OID)?.let {
|
|
63
|
-
|
|
64
|
-
}?.let {
|
|
65
|
-
if (it is DEROctetString) {
|
|
66
|
-
it.octets.decodeToString()
|
|
67
|
-
} else {
|
|
68
|
-
null
|
|
69
|
-
}
|
|
63
|
+
decodeDerOctetString(it).decodeToString()
|
|
70
64
|
}?.let {
|
|
71
65
|
val components = it.split(',').map { component -> component.trim() }
|
|
72
66
|
if (components.size != 2) {
|
|
@@ -76,6 +70,38 @@ class CertificateChain(private val certificateStrings: List<String>) {
|
|
|
76
70
|
}
|
|
77
71
|
}
|
|
78
72
|
|
|
73
|
+
/**
|
|
74
|
+
* Returns the contents of the DER-encoded OCTET STRING.
|
|
75
|
+
* Throws for any other input, so that a malformed extension never reads as a missing one.
|
|
76
|
+
*/
|
|
77
|
+
private fun decodeDerOctetString(der: ByteArray): ByteArray {
|
|
78
|
+
val invalid = { throw CertificateException("Invalid Expo project information extension value") }
|
|
79
|
+
|
|
80
|
+
val input = der.inputStream()
|
|
81
|
+
if (input.read() != DER_OCTET_STRING_TAG) {
|
|
82
|
+
invalid()
|
|
83
|
+
}
|
|
84
|
+
var length = input.read()
|
|
85
|
+
// Long form: 0x81-0x83 means that the next 1-3 bytes hold the length.
|
|
86
|
+
if (length >= 0x80) {
|
|
87
|
+
val lengthByteCount = length - 0x80
|
|
88
|
+
if (lengthByteCount !in 1..3 || input.available() < lengthByteCount) {
|
|
89
|
+
invalid()
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
length = 0
|
|
93
|
+
repeat(lengthByteCount) {
|
|
94
|
+
length = (length shl 8) or input.read()
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
if (length != input.available()) {
|
|
99
|
+
invalid()
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
return input.readBytes()
|
|
103
|
+
}
|
|
104
|
+
|
|
79
105
|
private fun X509Certificate.isCACertificate(): Boolean {
|
|
80
106
|
return basicConstraints > -1 && keyUsage != null && keyUsage.isNotEmpty() && keyUsage[5]
|
|
81
107
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "expo-updates",
|
|
3
|
-
"version": "58.0.
|
|
3
|
+
"version": "58.0.20",
|
|
4
4
|
"description": "Fetches and manages remotely-hosted assets and updates to your app's JS bundle.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"expo",
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
"@expo/env": "^2.5.3",
|
|
50
50
|
"@expo/plist": "^0.10.1",
|
|
51
51
|
"@expo/spawn-async": "^1.8.0",
|
|
52
|
-
"@react-native/asset-utils": "0.88.
|
|
52
|
+
"@react-native/asset-utils": "0.88.1",
|
|
53
53
|
"arg": "^4.1.0",
|
|
54
54
|
"chalk": "^4.1.2",
|
|
55
55
|
"debug": "^4.3.4",
|
|
@@ -64,8 +64,8 @@
|
|
|
64
64
|
"resolve-from": "^5.0.0"
|
|
65
65
|
},
|
|
66
66
|
"devDependencies": {
|
|
67
|
-
"@expo/internal-scripts": "58.0.
|
|
68
|
-
"@expo/metro-config": "58.0.
|
|
67
|
+
"@expo/internal-scripts": "58.0.5",
|
|
68
|
+
"@expo/metro-config": "58.0.20",
|
|
69
69
|
"@testing-library/react-native": "^14.0.1",
|
|
70
70
|
"@types/debug": "^4.1.7",
|
|
71
71
|
"@types/getenv": "^1.0.3",
|
|
@@ -75,7 +75,7 @@
|
|
|
75
75
|
"@types/picomatch": "^4.0.0",
|
|
76
76
|
"@types/react": "~19.3.0",
|
|
77
77
|
"@vercel/ncc": "^0.38.4",
|
|
78
|
-
"expo-dev-client": "58.0.
|
|
78
|
+
"expo-dev-client": "58.0.18",
|
|
79
79
|
"express": "^5.1.0",
|
|
80
80
|
"form-data": "^4.0.4",
|
|
81
81
|
"memfs": "^3.6.0",
|