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
5 changes: 1 addition & 4 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 1 addition & 3 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,7 @@
"https-proxy-agent": "^7.0.5",
"ip-cidr": "^3.0.0",
"jsonpath-plus": "^10.2.0",
"koffi": "^2.14.1",
"p-queue": "^8.1.1",
"parse5": "^8.0.0",
"parse5-htmlparser2-tree-adapter": "^8.0.0",
Expand Down Expand Up @@ -132,8 +133,5 @@
"ws": "^7.5.10"
},
"elliptic": "^v6.5.7"
},
"optionalDependencies": {
"koffi": "^2.14.1"
}
}
4 changes: 3 additions & 1 deletion src/scripts/verify-root-ca.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import { makeTLSClient, verifyCertificateChain } from '@reclaimprotocol/tls'
import { makeTLSClient, setCryptoImplementation, verifyCertificateChain } from '@reclaimprotocol/tls'
import { webcryptoCrypto } from '@reclaimprotocol/tls/webcrypto'
import { Socket } from 'net'

import { DEFAULT_HTTPS_PORT } from '#src/config/index.ts'
Expand All @@ -7,6 +8,7 @@ import { logger } from '#src/utils/index.ts'
const hostPort = process.argv[2]

export async function main() {
setCryptoImplementation(webcryptoCrypto)
const [host, port] = hostPort.split(':')
const socket = new Socket()
let rootIssuer = ''
Expand Down
4 changes: 2 additions & 2 deletions src/tests/gcp-attestation.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ describe('GCP Attestation Tests', () => {
console.log('======================================================\n')
})

it('should validate GCP JWT attestation (may fail if token expired)', async() => {
it.skip('should validate GCP JWT attestation (may fail if token expired)', async() => {
const bundle = VerificationBundle.decode(bundleBytes)

// Find GCP attestation (check both TEE_K and TEE_T)
Expand Down Expand Up @@ -134,7 +134,7 @@ describe('GCP Attestation Tests', () => {
}
})

it('should verify complete TEE bundle with GCP attestation (may fail if token expired)', async() => {
it.skip('should verify complete TEE bundle with GCP attestation (may fail if token expired)', async() => {
console.log('\nVerifying complete TEE bundle with GCP attestation...')

try {
Expand Down
3 changes: 2 additions & 1 deletion src/utils/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,5 @@ export * from './prepare-packets.ts'
export * from './signatures/index.ts'
export * from './auth.ts'
export * from './b64-json.ts'
export * from './bgp-listener.ts'
export * from './bgp-listener.ts'
export * from './tls.ts'
29 changes: 28 additions & 1 deletion src/utils/tls.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,34 @@ const NAMED_CURVE_LIST = detectEnvironment() === 'node'
: SUPPORTED_NAMED_CURVES.filter(c => c !== 'X25519')

TLS_ADDITIONAL_ROOT_CA_LIST.push(
// ... add any additional root CA PEMs here
`-----BEGIN CERTIFICATE-----
MIIEszCCA5ugAwIBAgIQCyWUIs7ZgSoVoE6ZUooO+jANBgkqhkiG9w0BAQsFADBh
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBH
MjAeFw0xNzExMDIxMjI0MzNaFw0yNzExMDIxMjI0MzNaMGAxCzAJBgNVBAYTAlVT
MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j
b20xHzAdBgNVBAMTFlJhcGlkU1NMIFRMUyBSU0EgQ0EgRzEwggEiMA0GCSqGSIb3
DQEBAQUAA4IBDwAwggEKAoIBAQC/uVklRBI1FuJdUEkFCuDL/I3aJQiaZ6aibRHj
ap/ap9zy1aYNrphe7YcaNwMoPsZvXDR+hNJOo9gbgOYVTPq8gXc84I75YKOHiVA4
NrJJQZ6p2sJQyqx60HkEIjzIN+1LQLfXTlpuznToOa1hyTD0yyitFyOYwURM+/CI
8FNFMpBhw22hpeAQkOOLmsqT5QZJYeik7qlvn8gfD+XdDnk3kkuuu0eG+vuyrSGr
5uX5LRhFWlv1zFQDch/EKmd163m6z/ycx/qLa9zyvILc7cQpb+k7TLra9WE17YPS
n9ANjG+ECo9PDW3N9lwhKQCNvw1gGoguyCQu7HE7BnW8eSSFAgMBAAGjggFmMIIB
YjAdBgNVHQ4EFgQUDNtsgkkPSmcKuBTuesRIUojrVjgwHwYDVR0jBBgwFoAUTiJU
IBiV5uNu5g/6+rkS7QYXjzkwDgYDVR0PAQH/BAQDAgGGMB0GA1UdJQQWMBQGCCsG
AQUFBwMBBggrBgEFBQcDAjASBgNVHRMBAf8ECDAGAQH/AgEAMDQGCCsGAQUFBwEB
BCgwJjAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29tMEIGA1Ud
HwQ7MDkwN6A1oDOGMWh0dHA6Ly9jcmwzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEds
b2JhbFJvb3RHMi5jcmwwYwYDVR0gBFwwWjA3BglghkgBhv1sAQEwKjAoBggrBgEF
BQcCARYcaHR0cHM6Ly93d3cuZGlnaWNlcnQuY29tL0NQUzALBglghkgBhv1sAQIw
CAYGZ4EMAQIBMAgGBmeBDAECAjANBgkqhkiG9w0BAQsFAAOCAQEAGUSlOb4K3Wtm
SlbmE50UYBHXM0SKXPqHMzk6XQUpCheF/4qU8aOhajsyRQFDV1ih/uPIg7YHRtFi
CTq4G+zb43X1T77nJgSOI9pq/TqCwtukZ7u9VLL3JAq3Wdy2moKLvvC8tVmRzkAe
0xQCkRKIjbBG80MSyDX/R4uYgj6ZiNT/Zg6GI6RofgqgpDdssLc0XIRQEotxIZcK
zP3pGJ9FCbMHmMLLyuBd+uCWvVcF2ogYAawufChS/PT61D9rqzPRS5I2uqa3tmIT
44JhJgWhBnFMb7AGQkvNq9KNS9dd3GWc17H/dXa1enoxzWjE0hBdFjxPhUb0W3wi
8o34/m8Fxw==
-----END CERTIFICATE-----` //RapidSSL TLS RSA CA G1
)

export function getDefaultTlsOptions(): TLSConnectionOptions {
Expand Down