Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix conformance test and update to protoc 25.0 #145

Merged
merged 2 commits into from
Nov 7, 2023
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
4 changes: 2 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@ MAKEFLAGS += --no-print-directory
BIN := .tmp/bin
CACHE := .tmp/cache
LICENSE_HEADER_YEAR_RANGE := 2022-2023
LICENSE_HEADER_VERSION := v1.26.1
PROTOC_VERSION ?= 24.4
LICENSE_HEADER_VERSION := v1.27.2
PROTOC_VERSION ?= 25.0
GRADLE_ARGS ?=

UNAME_OS := $(shell uname -s)
Expand Down
117 changes: 12 additions & 105 deletions conformance/common/src/main/kotlin/com/connectrpc/conformance/ssl/SSL.kt
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@ package com.connectrpc.conformance.ssl

import okhttp3.tls.HandshakeCertificates
import okhttp3.tls.HeldCertificate
import okio.ByteString.Companion.encodeUtf8
import java.security.KeyFactory
import java.security.KeyPair
import java.security.cert.CertificateFactory
Expand All @@ -29,22 +28,23 @@ import javax.net.ssl.SSLSocketFactory
import javax.net.ssl.X509TrustManager

fun sslContext(): Pair<SSLSocketFactory, X509TrustManager> {
val certificate = CLIENT_CERT.byteInputStream(Charsets.UTF_8).use { stream ->
val certificate = object {}.javaClass.getResourceAsStream("/cert/client.crt").use { stream ->
CertificateFactory.getInstance("X.509").generateCertificate(stream) as X509Certificate
}
val certificateAuthority = CONFORMANCE_CA_CERT.byteInputStream(Charsets.UTF_8).use { stream ->
val certificateAuthority = object {}.javaClass.getResourceAsStream("/cert/ConformanceCA.crt").use { stream ->
CertificateFactory.getInstance("X.509").generateCertificate(stream) as X509Certificate
}
val publicKey = certificate.getPublicKey() as RSAPublicKey
val clientKeyBytes = CLIENT_KEY
.replace("-----(BEGIN|END) PRIVATE KEY-----".toRegex(), "")
.replace("\r?\n".toRegex(), "")
.encodeUtf8()
.toByteArray()
val decodedKey = Base64.getDecoder().decode(clientKeyBytes)
val publicKey = certificate.publicKey as RSAPublicKey
val privateKeyBytes = object {}.javaClass.getResourceAsStream("/cert/client.key")!!.bufferedReader().use {
val lines = it.readLines().toMutableList()
// Remove BEGIN RSA PRIVATE KEY / END RSA PRIVATE KEY lines
lines.removeFirst()
lines.removeLast()
Base64.getDecoder().decode(lines.joinToString(separator = ""))
}
val privateKey = KeyFactory.getInstance("RSA")
.generatePrivate(PKCS8EncodedKeySpec(decodedKey)) as RSAPrivateKey
if (publicKey.getModulus() != privateKey.getModulus()) {
.generatePrivate(PKCS8EncodedKeySpec(privateKeyBytes)) as RSAPrivateKey
if (publicKey.modulus != privateKey.modulus) {
throw Exception("key does not match cert") // or other error handling
}
val clientHeldCertificate = HeldCertificate(KeyPair(publicKey, privateKey), certificate)
Expand All @@ -55,96 +55,3 @@ fun sslContext(): Pair<SSLSocketFactory, X509TrustManager> {

return result.sslSocketFactory() to result.trustManager
}

// https://github.com/connectrpc/conformance/blob/main/cert/client.crt
// cert issues: https://stackoverflow.com/questions/9210514/unable-to-find-valid-certification-path-to-requested-target-error-even-after-c
private const val CLIENT_CERT = """-----BEGIN CERTIFICATE-----
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changed to just read these in as resources instead of including them as string constants here. This will make it easier to update if we ever need to do so again.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good call.

MIIEODCCAiCgAwIBAgIRAJTCeo42f8lts3VeDnN7CVwwDQYJKoZIhvcNAQELBQAw
FjEUMBIGA1UEAxMLQ3Jvc3N0ZXN0Q0EwHhcNMjIwNTAzMTcxMDQwWhcNMjMxMTAz
MTcxOTU2WjARMQ8wDQYDVQQDEwZjbGllbnQwggEiMA0GCSqGSIb3DQEBAQUAA4IB
DwAwggEKAoIBAQCoJI6BDesWPERm7zjLGA9Pp0XSR3rnpecXTKIBwamr35gr/It4
jAZMMBUBHhdvLB0pAj1/hlWLvDQSuQBvfsr2KrqOvtVOP0c5KCzwHjvLmyhhvjOV
5iEdtv5mUDwILcQH8mvK4XTyWqIDvslUs3KxWfuwrPHZE+qptVAE982pbYixQTTG
ynRKi+tlFqb0a070koKu5jj+x2TV6Kgh4SFmexHdBSYWiElUGAks2MJ09CT5+Dva
z4lePGlA6VlDIjwif/lziHASBvW+6J4ZpLyAeCc+1/DgI74Gmpy2oNGmb2LBMwrM
OZL5KsdiMyYY9ZjPmKWcxybjgGPfinbctOldAgMBAAGjgYUwgYIwDgYDVR0PAQH/
BAQDAgO4MB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAdBgNVHQ4EFgQU
kjyFVJG7YocJyghCFYWHEDdWrv0wHwYDVR0jBBgwFoAUpg6MnxjPVlc2QEjDWcAC
0qxir5IwEQYDVR0RBAowCIIGY2xpZW50MA0GCSqGSIb3DQEBCwUAA4ICAQAgqAI9
/yUVAyf3UoSYaZrA22/OPUwvoHoQOSWZDkHXIy9VOiQAJNE8N97XzIIgbjB93sVC
njwOUk+kXEfmPZuD8RdAR43m1s+WrKCMukAIyg7hobLHqolkUPCdKlsaXgUsNsX1
T5ka1imVaIyggXWBVu3Q3Wpt8ERl82ncBr65wzRnvAdsGOFag4ujamSAU8s/Mhfy
EXNkx9u4MqvfWqhU7e5uBULfic+e836ojDxa5If7/MZo892lCQq6t861e5SOHhRN
AtS7toBmR/h5vYGDqmIwGGaR6YqcIMZ9JbWyPRbr2KIiMDGU7EvVYpIuIKdodbkJ
aN9RTmaCJTJVHrwMos9sAjwUqis+5gZj7lsPozp7OKYlFwy5Ae4+3C8e8Q1sIzKv
FaiodJ712fK6xsYr8CbUm4XbP3FBCAiYwbbaJg6odOciexpyvFnbF7152t+a6wOc
52z4pz7cCjZun40eDxmSucRGx5Do1ohFNrXxriGih0nFF82GCSCZZ3ddkSTIy/Uj
15MCKRXIOq/0kFDtMIJZ6X73I6jLvk0hiakfrV+GyrVBkzG1pHJEsSyiy7f1edTG
FjL/opqnz8GV8od9hLHJfwclPBSEA0fp7yNvOzKm1lNPEX009ME1hK4dLKNCqv3x
g+mJcflVCfjEqJzfEy4wPq5SJzOIzXva6DyBpA==
-----END CERTIFICATE-----"""

// https://github.com/connectrpc/conformance/blob/main/cert/ConformanceCA.crt
// Certificate authority for the trusted cert.
private const val CONFORMANCE_CA_CERT = """-----BEGIN CERTIFICATE-----
MIIE7DCCAtSgAwIBAgIBATANBgkqhkiG9w0BAQsFADAWMRQwEgYDVQQDEwtDcm9z
c3Rlc3RDQTAeFw0yMjA1MDMxNzA5NTlaFw0yMzExMDMxNzE5NTZaMBYxFDASBgNV
BAMTC0Nyb3NzdGVzdENBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA
qEUpIjCMAu5K7GuFrAu4cUtKMZaX78L9DbCtq7tkwPX9JLgNUxrfgN1qdIFsxRfw
/XaRjK+A3Gbech4z1U5ujeImAqg6IzpdFvQg9NVlIXpaEhsTk/oU8YXJAouXzBCZ
LBteiK3L5410/O95dVNUKpPlX0qHPkxr+ZUeV+8+MRVge7xDwceBpnAUj1gSMmcE
93i6CnVr75cF2aScB37rquuCpYcjibAQq0V9qvlG7DtEPg1gMt2Hluc5Vjf/sWI3
HTxoBaWxQ4iqdwNRrNO+yjZ97IHe92bnEXzkynhWyd0hCcdwDaU4Gb33xcFjMlWr
cYtVmhHIIN3L/v/P69uhskEGqGRICcOHI+Y0jRz5eVwln87waMosM4ecSCnygmTf
RNRL3eRzZYZj5/eqJYPpErswdtoOiix5cStNpXU8GqmxMqAtrStgl86gLtJXtZgn
LETquRfHSQvNFbuDO6bm56eWf/PqXeCJYZkb3wuBVK8uU8BUSH1wCnhDdpaJIpR+
zY93XrRiVXFka0ZNvaAHZsHnHtuxKaP+fOSIhrCWqa2hhpUEw4ykKFZfznqOk+UU
jwgnRRZN6rZaRQQGuoR94WNoP2cy3JJOpnEzRsTfwG+FL+gJSEN4tg2DbO7th/Ae
fHvAJ0VfCllabvQbLGjJFkI4ddMSj5lhJyIBfu6YWlsCAwEAAaNFMEMwDgYDVR0P
AQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFKYOjJ8Yz1ZX
NkBIw1nAAtKsYq+SMA0GCSqGSIb3DQEBCwUAA4ICAQByUDpOqgviWV/d3U9+84Sv
tkaL3Z4niKJxmGWwdzMhZFBlgEEsy5vBZ08uYkuel5Gg8Fl6pKVi2hPMU8NSZIMB
7OvomHfV6ag1CInbRozs7+ef/MKIC4ic7Tqmzf0zRpFjogkhUghMzYLmjjsPXwOb
JwJGmdyytHZ30qATIsoaR17/FRedl/FVlLoV48eMDIiu9ZuBqRLXqvJ4Xar0i/Td
TQdvFU5v4x785th5I9gWcKHZR1Frx4j4bfWWNi8m6cPp4i1R8prq5z+8lnIq/yJR
/QERkHQRZ1X6FK9aOnbMBFu+gLXcKSql7goGTIXVzqFeKmrZgqblu3axRQ8brs7p
1Va6Ha8yQyawV0FQKCcVEmXxpjSONWc9qyBDBx32/praLOET3UHmYcJilVAgZufR
9pAuCRf+7nDx9t2vynmT0C8MeFNjDRcN8QYr9lO9CUbcV+nOqiEG128XMhjsLj7m
lEP/lCyEGGVB+/LuxbRxOGzoZDb0WVan41zSNaFfnvXGMuTxLOhY6upiljL8k6Jm
eqI0hZhMnLbJFVnKgqaMpV+h2UvmEPXNx9oSKSG+11awVPdJjf4MLVOVVTPeLEv6
AsJXGUNptIhuKblQ0afNGOF37CCbDhdajKnMFVbXZWxFsDEs0J4EW0donSiJEGFF
iQ8d6tGEgzeekht617JMvQ==
-----END CERTIFICATE-----"""

// This is the decoded rsa client key below.
// openssl pkey -in key.pem -out outkey.pem
// (alt: openssl pkcs8 -topk8 -nocrypt -in key.pem -out output)
// https://stackoverflow.com/questions/68926722/how-to-read-a-certificate-chain-for-okhttpclient
private const val CLIENT_KEY = """-----BEGIN PRIVATE KEY-----
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCoJI6BDesWPERm
7zjLGA9Pp0XSR3rnpecXTKIBwamr35gr/It4jAZMMBUBHhdvLB0pAj1/hlWLvDQS
uQBvfsr2KrqOvtVOP0c5KCzwHjvLmyhhvjOV5iEdtv5mUDwILcQH8mvK4XTyWqID
vslUs3KxWfuwrPHZE+qptVAE982pbYixQTTGynRKi+tlFqb0a070koKu5jj+x2TV
6Kgh4SFmexHdBSYWiElUGAks2MJ09CT5+Dvaz4lePGlA6VlDIjwif/lziHASBvW+
6J4ZpLyAeCc+1/DgI74Gmpy2oNGmb2LBMwrMOZL5KsdiMyYY9ZjPmKWcxybjgGPf
inbctOldAgMBAAECggEAVpOkML1K7AMSMXJB6wkzcQ8vO2wE09wv1mZmEMN4KwCR
aSy7X9GxuG8VkaK97EdpqGD3637u82lv4qgRmldOCFzN/Iw0ZvrcIIkYQnc+0MLO
ky2NgESjjppX+bSchJWUF4dyi191iQiz3XvSTOOtTbaIi1sxmFXSAZpTXot+ARuI
mkxLueZUqeYsSzTaDgbcf7EpdF9GFADtEh04hr+IeQmw1D6jgyInuzgbWGnfOpkF
Kce48zeqqP4wBQeht4kp0HtYJblRZcj06YCvJFKT5HooMOhfHJZlzQVDkEnQ6HAz
MGzGCqzngINY0P88uOay86O92EyqkpHLYCagxeTQnQKBgQDQyRuGH8zucR4bAozw
zGi9IQTS7SPaSxuC31bHZoJ+I/oZbEtlm6OjVpXtOASfszvSrJ5Oz0H99ZXOT607
TI3RLTtXGVpjlExXjgt0edDzlN5MQjFAgBplireQV1+Kb1lXOi5kcriYKpigqkpD
LHSwSNt+b36109uz/HnHNVrkRwKBgQDOKpTOaimxkzgKcKeq+4orwYftbANld3tK
sw6baoG69nE1Bmw02xMtH1JXbdgD3JiuSaR2p1VFL1ZfUeMWBtKtDX1vieTsZnd3
WmMIhnQFb5ZUjpmQg1EKeIKwr/Z9qQJHJqwdMX55kit7tIiMzZIrFBTsRsbUnUy3
dWHeKVLLOwKBgQC7DWIOYRE+ErQRKNDSr5+qyhlDS9gSK7YjIyrhDLMeheb8vewy
xSTvIpTB6a0i0vZmweY23zLVbx/erb2a4fQwkqCWYQ19J5DZ5FXY7YZJpHcgxTDR
A7QigwwAUnczVJ0rK+ICdlFxasBBOS+9TOfiQ/P6K7PO/VbZwvnrgp7C4wKBgQC4
0NdBC06BD5aHVWIZFxFQFFfD8LZCuY9e8ZFApYPSlKX7gNxzrYhNROzNz3x8Sb7d
TssOSwdX1A27uW63CjrGQ3eVC6qaeWjTJ8XrmIxdayD6gDMNp4p4tnuB5Nw03dNa
8UINkZbtaKluZfKbNpW35HK1NOV9J93kAGhRff3ojQKBgBJgXdODMVUaRAr+VWVM
4VpYB/QhnerBV8JaV7OLgZUMdz55nbufysRQ8UeAQeb0gPSO6f/gVCxSSRZCm9+X
YfnVHhS0VV49dKIqrsP8o1qZJRhjcq/J/Rrm2ZFHfdLCOOnd9VG4W2I1WB9MDc4t
raq4CptHPEywZgBR95C0Jv3y
-----END PRIVATE KEY-----"""
29 changes: 29 additions & 0 deletions conformance/common/src/main/resources/cert/ConformanceCA.crt
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
-----BEGIN CERTIFICATE-----
MIIFADCCAuigAwIBAgIRAIVS/Ozzz7uIPINldnaqPpowDQYJKoZIhvcNAQELBQAw
GDEWMBQGA1UEAxMNQ29uZm9ybWFuY2VDQTAeFw0yMzExMDYyMjMwMDJaFw0zMzEx
MDYyMjMwMDFaMBgxFjAUBgNVBAMTDUNvbmZvcm1hbmNlQ0EwggIiMA0GCSqGSIb3
DQEBAQUAA4ICDwAwggIKAoICAQD7KIbF2FVaxH1EteFDX/4+kOU9swomk7Rx1mu4
owvYuQL9VpUx6txCuuenJVGn4xa/4bGiOYlJYAq64YpY1BoHwJRGhME4PjEuDPpH
p7aF4MR46O5gyn+ikfMAwr1hDrN0bbijpKPZTMQla1WcWqHS0AY2VpopRvzJsVX+
aR2UPrVhsiWoKz9Quu23rpxJijZSrdknMaUFakblIg3eSN54VRN/dXEMgg40r8Jc
KOyqoJmwUYRhKXnee5tadMS3IbMNNQVD5xyerGO2E1ZfwqOKegzLD4apu6cF7Kdk
KiFOyVQoBokmnFbWgENBgm0Do7zlrtexkCsEGebqnQW+P9yx20LVc54DxQtEpI0U
TnXM0a8BEtDoVJsTGeENlvQTP0vYOp7mjZg7D3vXOxm0pm5qCSVDeRwLIT6W2+mQ
xd3BPCKwe4tmA3b2OuRGl5Ud0TbR1VBmkitHkTc51wPgsbdk/0Of4iT7GTYZrdN4
Xp0obcfC9JCJ7VQ0V6avcFSl/zu0lOxV39euJA7oCkkWO3l0NN3Te2JnIrSHpuqd
SiI4v1KmK6knDZbIoTcZCWIMToZSAYV9Qq74DPzeqdh7x4EapudUYCo0LlyLAJPM
52nOX5LHqkt2VEK+jJC8d9yiPzhsf+tKpcwEmrZd1503DdZ3v5NZ6v4Xf08CiZvW
flEAsQIDAQABo0UwQzAOBgNVHQ8BAf8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB/wIB
ADAdBgNVHQ4EFgQUVvNNi4CfmW3DyDsQ6GuO5lJdg2owDQYJKoZIhvcNAQELBQAD
ggIBAD5eZgKPlMp/wjMJD0cW3a8L3C3OPVXJ3e8SWc/8oz5MGhGUqVjz5GIB8rPR
Q1/CV8P29TFpT4wCHiIVv1dz2O3+6Bew9hx3Z7CMf+i0IHoHS18pr7ZJJjnPLBV7
8phRm15qvyTK0EH81G0uymbmFUGze+08zvJ6mReEfh8vnFyJSfDee6RjN6XHxdz8
nILhfJCs9v0w9klcysZqs52dvkocY0fevdEPDwCGotQIN76v1pT3/7ak/Ll66N2V
Ic77vDx1kmuUpL9zPjMCopB2W8+VKDDRzAlJ2zh9vIbjgiVTMSCPRz+kIVZvnYyK
fZWMReXVEy34oqmm3Ya+tCrGr8bIM/NjQD/LWXZSL+djZuJuD4PmPwMOUIrHcA3d
ic66YA+B7mkEsja0p5uXSpzGyc9vxodL8fu7lo4bW3p94tEyOIiY/0IBwOVcIefk
XssEQkXZwldQcAnEFdM8iWOehX22DGfvk7c8k10FEoh5gfHV+sMnV1efp4MXgfuk
KdIfvClvE9RlmIDDQFl3Lmhc1T1e06h1Wn04sGbZo2tuBCtmx/LzxQPVC10w/yYi
aXhr/7Uevv0ZXHj6HXxhNm1fkWbSo1RCVjWtSlPw+LZ+ZRYTfObtOquHQednJSW/
FBB7UDmxzR/34yGb80nffR5uceUOQ+hMBaLKy2XiNmCgY2UU
-----END CERTIFICATE-----
24 changes: 24 additions & 0 deletions conformance/common/src/main/resources/cert/client.crt
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
-----BEGIN CERTIFICATE-----
MIIEDzCCAfegAwIBAgIRANB5PZqbXCGOAyK7X7602D4wDQYJKoZIhvcNAQELBQAw
GDEWMBQGA1UEAxMNQ29uZm9ybWFuY2VDQTAeFw0yMzExMDYyMjMwMDJaFw0zMzEx
MDYyMjMwMDFaMBExDzANBgNVBAMTBmNsaWVudDCCASIwDQYJKoZIhvcNAQEBBQAD
ggEPADCCAQoCggEBAK/qBaQVmzjuz1PfdMZ19uOnl7BbkxXBwKjeZrKakduOD+zG
092FAc3uTV7x2uXFLBKlRtrUOl+SDXI3xGSxTf8xlHPEwFogj88f0w5kwj61//3h
nasN4RgiK08XJVhvqxEZJzRMzG7KZeLsD2RqlM+kCWXPb+ATzTpQL7oZ7//gkq0/
Gmz693ZfVX+G+iwWx7UKKWY01Rb7TdSrkpQRhyMVgksq0Twr5G+3EGNYuG5rEhi6
4H14hNzgcIYEehqS9ep4kA09BY4JhqFDeZ3028iLuhVjqHplfE4CKiypdWDh1Epi
RjwJFSHEMOPwu77xdayYYTlUUi5B89ERUhhuF+MCAwEAAaNbMFkwDgYDVR0PAQH/
BAQDAgWgMBMGA1UdJQQMMAoGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFFbzTYuAn5lt
w8g7EOhrjuZSXYNqMBEGA1UdEQQKMAiCBmNsaWVudDANBgkqhkiG9w0BAQsFAAOC
AgEA33mexmZXoLssVSVsSDCwnREpKgOEaxUz7tSjKJysshOExNm83s41PoA6ogbl
RugUYDZmakQQcYltph+MqLgoN4SGWlzjryKgWkMjlGV5D8IwNLreyGJhqKtaXFsu
WEG1qJXFrbzqBdl6BCNpJ0qUPEEL+TwBaW2fq+xi+EpvD+IhCvn/ysJJM0Z5Fs3Q
63SeK0/LTW00+SPZERuZOHRPzDDoideAZk6bugEr8mxRQXk617y1Zlj8eeG0NG67
F1NAhvrnez9/0rLy8CxxRvc4LXKP/HVgdFs8EdU8SjfXkXCFCKOrhQCW1wmxMWn8
bGtso8NiUkeZwc3eBtiLSB8Zlq69yqH9QzonU68EpkBBm1Fr4g6v21gp+DsBNSX5
TkckHY3SBdxttTzlc8mlmRplqE/DhyHv0RqZ4KCsxqeG9YkUmXixI2Q19g1pxCHE
ZSkk4IjN6xS1TQzPy8tlKx9j/3dqkAoBi5rHlwk3hOupYq+cyqHdF5BYwjW3nnIE
H/p2CcC6BUyOUp3syy0Cmosot3hWU2AhDgnv7t1u07AAazxPO7IEcxZ7xs5Akg/m
2Bjx4sOQzOhgj79GJPnxcy49n+3spqneaOtUbC0DSONDKatbbnTIp5xn9lFuc23C
FfGBaBNYBqoz7sHwlv68h1UTpbfwztZ+arUB/goS8SRPDVU=
-----END CERTIFICATE-----
28 changes: 28 additions & 0 deletions conformance/common/src/main/resources/cert/client.key
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
-----BEGIN RSA PRIVATE KEY-----
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCv6gWkFZs47s9T
33TGdfbjp5ewW5MVwcCo3maympHbjg/sxtPdhQHN7k1e8drlxSwSpUba1Dpfkg1y
N8RksU3/MZRzxMBaII/PH9MOZMI+tf/94Z2rDeEYIitPFyVYb6sRGSc0TMxuymXi
7A9kapTPpAllz2/gE806UC+6Ge//4JKtPxps+vd2X1V/hvosFse1CilmNNUW+03U
q5KUEYcjFYJLKtE8K+RvtxBjWLhuaxIYuuB9eITc4HCGBHoakvXqeJANPQWOCYah
Q3md9NvIi7oVY6h6ZXxOAiosqXVg4dRKYkY8CRUhxDDj8Lu+8XWsmGE5VFIuQfPR
EVIYbhfjAgMBAAECggEAG9npWrkxAiqNGLJgQquakyCNm5ZkCyXJ4vKTP+PJBAHR
86LnGENercP06/tOtOIqwCj6ttqzAz6Ucmjx5x9LQgQPhOS5r4tIOXrIZ5b8SgF2
rjNySwq/gJqoULVRbFcBtotM8bLXCxNwXiURqsxVEyrdcgkNpWR9MaZQaB6DKPea
DuqEcUk8nRVm97KAkxJqavW47HdSemb0QawVBtczyd4TR+Oh1Sd9cY01dN07CIqc
7qol6kqCP5O02t4kVflfnLcK4BhKoCFsuSwNEtOlodskd/NjOTvFMSS3nKJluXuA
dEbAUYiUoL+bkQaxuS/gUL/QLb/FpZAeki+MoZEdQQKBgQDUjJOqeFlpj2l/PQ8/
/elp7BYSO6GFLQ8uX4ofycEXYM7Lx+OQu7UoiCGzvSg5uDUY0TN+pnShc81JCCO+
Fi9DxOCFHcGyNeA+Nl8+I/9fQwW65WuUodtP0ee4BpVmM0xw4qKBPAjqpPX6ixHt
kpSfhqVZ3ibiN18SvLiNGooUjQKBgQDT4DYckWgrQRzRZZCXG1o7tAcj8SHYdQn1
y5L5IgsXgRhmOt4Bt01q9CZ1qkShTtewakpHeqGt3pDGaqiATqkJCmOM1PRy6h8Y
yQWh8Y104qrAJbV7jY+KteNbz8Y74yQ+Gy+R3zawFHwxmCxOq29aYF7GSAhxm/Mo
3k+4InYaLwKBgQCYR+d8GSGmWZNyD+MfK+HRe84MXiDI85GO3fBt+fSXtUo0AhBu
n62ZTn8m8X0ibXHNSAUm1kd1bSxFCMni5K4UVbeuZ7Vg4uy4Zegy80OBktlGIBzF
rnkcZP0pgb4ELPi1YAqhoMuaoXmCeaTsmzpUWPmau2kMZjN9jyyCG+OV+QKBgQC1
IKXhwkTFRYK3WBZFt7Jp+7tm9Is0msmLAR+CL6I/07LiIk0MNoHOfy4pxQeqxtYJ
ELSzapixJOWrWh72oUhMXD9CdAMOAivXanKQQQnm9Kd4YERHfXtK37egE32qUMH4
/hCqqaH84WZSl365OkGVh3E+HPJq/SDgvTx1c7B3LQKBgCws4gC7TacDxSzR745t
9+rOf/tb7vKGDSdz3N1dSw63NBsRck8D5DiKdnaCrWiLET4fuOEYzAA6ciW2IEYs
pdFCz6PqOgyIIhK30CFgi80EwXBWqrlVfM4aK8Zx4+jBN+8R3Z5mjfpjhInPDCEw
RpTWgN9cH3wSNusTzOTc66Sy
-----END RSA PRIVATE KEY-----
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ class Conformance(
private lateinit var testServiceConnectClient: TestServiceClient

companion object {
private const val CONFORMANCE_VERSION = "0b07f579cb61ad89de24524d62f804a2b03b1acf"
private const val CONFORMANCE_VERSION = "88f85130640b46c0837e0d58c0484d83a110f418"
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

New upstream version with updated certs (will expire in 10 years).


@JvmStatic
@Parameters(name = "client={0},server={1}")
Expand Down
2 changes: 1 addition & 1 deletion gradle/libs.versions.toml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ mavenplugin = "0.25.3"
moshi = "1.15.0"
okhttp = "4.12.0"
okio = "3.6.0"
protobuf = "3.24.4"
protobuf = "3.25.0"
slf4j = "2.0.9"
spotless = "6.22.0"

Expand Down