mirror of
https://github.com/hanzoai/traces.git
synced 2026-10-30 18:20:41 +00:00
0a33b10466
Bumps the opentelemetry-collector group with 19 updates: | Package | From | To | | --- | --- | --- | | [go.opentelemetry.io/collector/component](https://github.com/open-telemetry/opentelemetry-collector) | `1.30.0` | `1.31.0` | | [go.opentelemetry.io/collector/confmap](https://github.com/open-telemetry/opentelemetry-collector) | `1.30.0` | `1.31.0` | | [go.opentelemetry.io/collector/consumer](https://github.com/open-telemetry/opentelemetry-collector) | `1.30.0` | `1.31.0` | | [go.opentelemetry.io/collector/pdata](https://github.com/open-telemetry/opentelemetry-collector) | `1.30.0` | `1.31.0` | | [go.opentelemetry.io/collector/client](https://github.com/open-telemetry/opentelemetry-collector) | `1.30.0` | `1.31.0` | | [go.opentelemetry.io/collector/component/componenttest](https://github.com/open-telemetry/opentelemetry-collector) | `0.124.0` | `0.125.0` | | [go.opentelemetry.io/collector/config/configgrpc](https://github.com/open-telemetry/opentelemetry-collector) | `0.124.0` | `0.125.0` | | [go.opentelemetry.io/collector/config/confighttp](https://github.com/open-telemetry/opentelemetry-collector) | `0.124.0` | `0.125.0` | | [go.opentelemetry.io/collector/config/configopaque](https://github.com/open-telemetry/opentelemetry-collector) | `1.30.0` | `1.31.0` | | [go.opentelemetry.io/collector/config/configtls](https://github.com/open-telemetry/opentelemetry-collector) | `1.30.0` | `1.31.0` | | [go.opentelemetry.io/collector/exporter](https://github.com/open-telemetry/opentelemetry-collector) | `0.124.0` | `0.125.0` | | [go.opentelemetry.io/collector/exporter/exportertest](https://github.com/open-telemetry/opentelemetry-collector) | `0.124.0` | `0.125.0` | | [go.opentelemetry.io/collector/exporter/otlpexporter](https://github.com/open-telemetry/opentelemetry-collector) | `0.124.0` | `0.125.0` | | [go.opentelemetry.io/collector/exporter/otlphttpexporter](https://github.com/open-telemetry/opentelemetry-collector) | `0.124.0` | `0.125.0` | | [go.opentelemetry.io/collector/otelcol](https://github.com/open-telemetry/opentelemetry-collector) | `0.124.0` | `0.125.0` | | [go.opentelemetry.io/collector/pdata/testdata](https://github.com/open-telemetry/opentelemetry-collector) | `0.124.0` | `0.125.0` | | [go.opentelemetry.io/collector/processor](https://github.com/open-telemetry/opentelemetry-collector) | `1.30.0` | `1.31.0` | | [go.opentelemetry.io/collector/receiver](https://github.com/open-telemetry/opentelemetry-collector) | `1.30.0` | `1.31.0` | | [go.opentelemetry.io/collector/receiver/otlpreceiver](https://github.com/open-telemetry/opentelemetry-collector) | `0.124.0` | `0.125.0` | Updates `go.opentelemetry.io/collector/component` from 1.30.0 to 1.31.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-collector/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-collector/blob/main/CHANGELOG-API.md) - [Commits](https://github.com/open-telemetry/opentelemetry-collector/compare/pdata/v1.30.0...pdata/v1.31.0) Updates `go.opentelemetry.io/collector/confmap` from 1.30.0 to 1.31.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-collector/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-collector/blob/main/CHANGELOG-API.md) - [Commits](https://github.com/open-telemetry/opentelemetry-collector/compare/pdata/v1.30.0...pdata/v1.31.0) Updates `go.opentelemetry.io/collector/consumer` from 1.30.0 to 1.31.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-collector/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-collector/blob/main/CHANGELOG-API.md) - [Commits](https://github.com/open-telemetry/opentelemetry-collector/compare/pdata/v1.30.0...pdata/v1.31.0) Updates `go.opentelemetry.io/collector/pdata` from 1.30.0 to 1.31.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-collector/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-collector/blob/main/CHANGELOG-API.md) - [Commits](https://github.com/open-telemetry/opentelemetry-collector/compare/pdata/v1.30.0...pdata/v1.31.0) Updates `go.opentelemetry.io/collector/client` from 1.30.0 to 1.31.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-collector/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-collector/blob/main/CHANGELOG-API.md) - [Commits](https://github.com/open-telemetry/opentelemetry-collector/compare/pdata/v1.30.0...pdata/v1.31.0) Updates `go.opentelemetry.io/collector/component/componenttest` from 0.124.0 to 0.125.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-collector/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-collector/blob/main/CHANGELOG-API.md) - [Commits](https://github.com/open-telemetry/opentelemetry-collector/compare/v0.124.0...v0.125.0) Updates `go.opentelemetry.io/collector/config/configgrpc` from 0.124.0 to 0.125.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-collector/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-collector/blob/main/CHANGELOG-API.md) - [Commits](https://github.com/open-telemetry/opentelemetry-collector/compare/v0.124.0...v0.125.0) Updates `go.opentelemetry.io/collector/config/confighttp` from 0.124.0 to 0.125.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-collector/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-collector/blob/main/CHANGELOG-API.md) - [Commits](https://github.com/open-telemetry/opentelemetry-collector/compare/v0.124.0...v0.125.0) Updates `go.opentelemetry.io/collector/config/configopaque` from 1.30.0 to 1.31.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-collector/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-collector/blob/main/CHANGELOG-API.md) - [Commits](https://github.com/open-telemetry/opentelemetry-collector/compare/pdata/v1.30.0...pdata/v1.31.0) Updates `go.opentelemetry.io/collector/config/configtls` from 1.30.0 to 1.31.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-collector/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-collector/blob/main/CHANGELOG-API.md) - [Commits](https://github.com/open-telemetry/opentelemetry-collector/compare/pdata/v1.30.0...pdata/v1.31.0) Updates `go.opentelemetry.io/collector/exporter` from 0.124.0 to 0.125.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-collector/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-collector/blob/main/CHANGELOG-API.md) - [Commits](https://github.com/open-telemetry/opentelemetry-collector/compare/v0.124.0...v0.125.0) Updates `go.opentelemetry.io/collector/exporter/exportertest` from 0.124.0 to 0.125.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-collector/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-collector/blob/main/CHANGELOG-API.md) - [Commits](https://github.com/open-telemetry/opentelemetry-collector/compare/v0.124.0...v0.125.0) Updates `go.opentelemetry.io/collector/exporter/otlpexporter` from 0.124.0 to 0.125.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-collector/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-collector/blob/main/CHANGELOG-API.md) - [Commits](https://github.com/open-telemetry/opentelemetry-collector/compare/v0.124.0...v0.125.0) Updates `go.opentelemetry.io/collector/exporter/otlphttpexporter` from 0.124.0 to 0.125.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-collector/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-collector/blob/main/CHANGELOG-API.md) - [Commits](https://github.com/open-telemetry/opentelemetry-collector/compare/v0.124.0...v0.125.0) Updates `go.opentelemetry.io/collector/otelcol` from 0.124.0 to 0.125.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-collector/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-collector/blob/main/CHANGELOG-API.md) - [Commits](https://github.com/open-telemetry/opentelemetry-collector/compare/v0.124.0...v0.125.0) Updates `go.opentelemetry.io/collector/pdata/testdata` from 0.124.0 to 0.125.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-collector/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-collector/blob/main/CHANGELOG-API.md) - [Commits](https://github.com/open-telemetry/opentelemetry-collector/compare/v0.124.0...v0.125.0) Updates `go.opentelemetry.io/collector/processor` from 1.30.0 to 1.31.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-collector/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-collector/blob/main/CHANGELOG-API.md) - [Commits](https://github.com/open-telemetry/opentelemetry-collector/compare/pdata/v1.30.0...pdata/v1.31.0) Updates `go.opentelemetry.io/collector/receiver` from 1.30.0 to 1.31.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-collector/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-collector/blob/main/CHANGELOG-API.md) - [Commits](https://github.com/open-telemetry/opentelemetry-collector/compare/pdata/v1.30.0...pdata/v1.31.0) Updates `go.opentelemetry.io/collector/receiver/otlpreceiver` from 0.124.0 to 0.125.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-collector/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-collector/blob/main/CHANGELOG-API.md) - [Commits](https://github.com/open-telemetry/opentelemetry-collector/compare/v0.124.0...v0.125.0) --- updated-dependencies: - dependency-name: go.opentelemetry.io/collector/component dependency-version: 1.31.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: opentelemetry-collector - dependency-name: go.opentelemetry.io/collector/confmap dependency-version: 1.31.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: opentelemetry-collector - dependency-name: go.opentelemetry.io/collector/consumer dependency-version: 1.31.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: opentelemetry-collector - dependency-name: go.opentelemetry.io/collector/pdata dependency-version: 1.31.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: opentelemetry-collector - dependency-name: go.opentelemetry.io/collector/client dependency-version: 1.31.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: opentelemetry-collector - dependency-name: go.opentelemetry.io/collector/component/componenttest dependency-version: 0.125.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: opentelemetry-collector - dependency-name: go.opentelemetry.io/collector/config/configgrpc dependency-version: 0.125.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: opentelemetry-collector - dependency-name: go.opentelemetry.io/collector/config/confighttp dependency-version: 0.125.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: opentelemetry-collector - dependency-name: go.opentelemetry.io/collector/config/configopaque dependency-version: 1.31.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: opentelemetry-collector - dependency-name: go.opentelemetry.io/collector/config/configtls dependency-version: 1.31.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: opentelemetry-collector - dependency-name: go.opentelemetry.io/collector/exporter dependency-version: 0.125.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: opentelemetry-collector - dependency-name: go.opentelemetry.io/collector/exporter/exportertest dependency-version: 0.125.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: opentelemetry-collector - dependency-name: go.opentelemetry.io/collector/exporter/otlpexporter dependency-version: 0.125.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: opentelemetry-collector - dependency-name: go.opentelemetry.io/collector/exporter/otlphttpexporter dependency-version: 0.125.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: opentelemetry-collector - dependency-name: go.opentelemetry.io/collector/otelcol dependency-version: 0.125.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: opentelemetry-collector - dependency-name: go.opentelemetry.io/collector/pdata/testdata dependency-version: 0.125.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: opentelemetry-collector - dependency-name: go.opentelemetry.io/collector/processor dependency-version: 1.31.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: opentelemetry-collector - dependency-name: go.opentelemetry.io/collector/receiver dependency-version: 1.31.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: opentelemetry-collector - dependency-name: go.opentelemetry.io/collector/receiver/otlpreceiver dependency-version: 0.125.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: opentelemetry-collector ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
194 lines
4.7 KiB
Go
194 lines
4.7 KiB
Go
package tpm2
|
|
|
|
import (
|
|
"crypto"
|
|
"crypto/ecdh"
|
|
"crypto/ecdsa"
|
|
"crypto/elliptic"
|
|
"crypto/rsa"
|
|
"fmt"
|
|
"math/big"
|
|
)
|
|
|
|
// Priv converts a TPM private key into one recognized by the crypto package.
|
|
func Priv(public TPMTPublic, sensitive TPMTSensitive) (crypto.PrivateKey, error) {
|
|
|
|
var privateKey crypto.PrivateKey
|
|
|
|
publicKey, err := Pub(public)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
switch public.Type {
|
|
case TPMAlgRSA:
|
|
publicKey := publicKey.(*rsa.PublicKey)
|
|
|
|
if sensitive.SensitiveType != TPMAlgRSA {
|
|
return nil, fmt.Errorf("sensitive type is not equal to public type")
|
|
}
|
|
|
|
prime, err := sensitive.Sensitive.RSA()
|
|
if err != nil {
|
|
return nil, fmt.Errorf("failed to retrieve the RSA prime number")
|
|
}
|
|
|
|
P := new(big.Int).SetBytes(prime.Buffer)
|
|
Q := new(big.Int).Div(publicKey.N, P)
|
|
phiN := new(big.Int).Mul(new(big.Int).Sub(P, big.NewInt(1)), new(big.Int).Sub(Q, big.NewInt(1)))
|
|
D := new(big.Int).ModInverse(big.NewInt(int64(publicKey.E)), phiN)
|
|
|
|
rsaKey := &rsa.PrivateKey{
|
|
PublicKey: *publicKey,
|
|
D: D,
|
|
Primes: []*big.Int{P, Q},
|
|
}
|
|
rsaKey.Precompute()
|
|
|
|
privateKey = rsaKey
|
|
case TPMAlgECC:
|
|
publicKey := publicKey.(*ecdsa.PublicKey)
|
|
|
|
if sensitive.SensitiveType != TPMAlgECC {
|
|
return nil, fmt.Errorf("sensitive type is not equal to public type")
|
|
}
|
|
|
|
d, err := sensitive.Sensitive.ECC()
|
|
if err != nil {
|
|
return nil, fmt.Errorf("failed to retrieve the ECC")
|
|
}
|
|
|
|
D := new(big.Int).SetBytes(d.Buffer)
|
|
|
|
ecdsaKey := &ecdsa.PrivateKey{
|
|
PublicKey: *publicKey,
|
|
D: D,
|
|
}
|
|
|
|
privateKey = ecdsaKey
|
|
default:
|
|
return nil, fmt.Errorf("unsupported public key type: %v", public.Type)
|
|
}
|
|
|
|
return privateKey, nil
|
|
}
|
|
|
|
// Pub converts a TPM public key into one recognized by the crypto package.
|
|
func Pub(public TPMTPublic) (crypto.PublicKey, error) {
|
|
var publicKey crypto.PublicKey
|
|
|
|
switch public.Type {
|
|
case TPMAlgRSA:
|
|
parameters, err := public.Parameters.RSADetail()
|
|
if err != nil {
|
|
return nil, fmt.Errorf("failed to retrieve the RSA parameters")
|
|
}
|
|
|
|
n, err := public.Unique.RSA()
|
|
if err != nil {
|
|
return nil, fmt.Errorf("failed to parse and retrieve the RSA modulus")
|
|
}
|
|
|
|
publicKey, err = RSAPub(parameters, n)
|
|
if err != nil {
|
|
return nil, fmt.Errorf("failed to retrieve the RSA public key")
|
|
}
|
|
case TPMAlgECC:
|
|
parameters, err := public.Parameters.ECCDetail()
|
|
if err != nil {
|
|
return nil, fmt.Errorf("failed to retrieve the ECC parameters")
|
|
}
|
|
|
|
pub, err := public.Unique.ECC()
|
|
if err != nil {
|
|
return nil, fmt.Errorf("failed to parse and retrieve the ECC point")
|
|
}
|
|
|
|
publicKey, err = ECDSAPub(parameters, pub)
|
|
if err != nil {
|
|
return nil, fmt.Errorf("failed to retrieve the ECC public key")
|
|
}
|
|
default:
|
|
return nil, fmt.Errorf("unsupported public key type: %v", public.Type)
|
|
}
|
|
|
|
return publicKey, nil
|
|
}
|
|
|
|
// RSAPub converts a TPM RSA public key into one recognized by the rsa package.
|
|
func RSAPub(parms *TPMSRSAParms, pub *TPM2BPublicKeyRSA) (*rsa.PublicKey, error) {
|
|
result := rsa.PublicKey{
|
|
N: big.NewInt(0).SetBytes(pub.Buffer),
|
|
E: int(parms.Exponent),
|
|
}
|
|
// TPM considers 65537 to be the default RSA public exponent, and 0 in
|
|
// the parms
|
|
// indicates so.
|
|
if result.E == 0 {
|
|
result.E = 65537
|
|
}
|
|
return &result, nil
|
|
}
|
|
|
|
// ECDSAPub converts a TPM ECC public key into one recognized by the ecdh package
|
|
func ECDSAPub(parms *TPMSECCParms, pub *TPMSECCPoint) (*ecdsa.PublicKey, error) {
|
|
|
|
var c elliptic.Curve
|
|
switch parms.CurveID {
|
|
case TPMECCNistP256:
|
|
c = elliptic.P256()
|
|
case TPMECCNistP384:
|
|
c = elliptic.P384()
|
|
case TPMECCNistP521:
|
|
c = elliptic.P521()
|
|
default:
|
|
return nil, fmt.Errorf("unknown curve: %v", parms.CurveID)
|
|
}
|
|
|
|
pubKey := ecdsa.PublicKey{
|
|
Curve: c,
|
|
X: big.NewInt(0).SetBytes(pub.X.Buffer),
|
|
Y: big.NewInt(0).SetBytes(pub.Y.Buffer),
|
|
}
|
|
|
|
return &pubKey, nil
|
|
}
|
|
|
|
// ECDHPub converts a TPM ECC public key into one recognized by the ecdh package
|
|
func ECDHPub(parms *TPMSECCParms, pub *TPMSECCPoint) (*ecdh.PublicKey, error) {
|
|
|
|
pubKey, err := ECDSAPub(parms, pub)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return pubKey.ECDH()
|
|
}
|
|
|
|
// ECCPoint returns an uncompressed ECC Point
|
|
func ECCPoint(pubKey *ecdh.PublicKey) (*big.Int, *big.Int, error) {
|
|
b := pubKey.Bytes()
|
|
size, err := elementLength(pubKey.Curve())
|
|
if err != nil {
|
|
return nil, nil, fmt.Errorf("ECCPoint: %w", err)
|
|
}
|
|
return big.NewInt(0).SetBytes(b[1 : size+1]),
|
|
big.NewInt(0).SetBytes(b[size+1:]), nil
|
|
}
|
|
|
|
func elementLength(c ecdh.Curve) (int, error) {
|
|
switch c {
|
|
case ecdh.P256():
|
|
// crypto/internal/nistec/fiat.p256ElementLen
|
|
return 32, nil
|
|
case ecdh.P384():
|
|
// crypto/internal/nistec/fiat.p384ElementLen
|
|
return 48, nil
|
|
case ecdh.P521():
|
|
// crypto/internal/nistec/fiat.p521ElementLen
|
|
return 66, nil
|
|
default:
|
|
return 0, fmt.Errorf("unknown element length for curve: %v", c)
|
|
}
|
|
}
|