This commit is contained in:
Haris Khan
2024-11-26 15:55:50 -05:00
parent bf7e88bec1
commit f0803a095e
5 changed files with 34 additions and 8 deletions

View File

@@ -73,7 +73,10 @@ func createValidKeyAndCert(t *testing.T) *KeysAndCert {
t.Fatalf("Failed to create certificate: %v\n", err)
}
keyCert := key_certificate.KeyCertificateFromCertificate(*cert)
keyCert, err := key_certificate.KeyCertificateFromCertificate(*cert)
if err != nil {
t.Fatalf("KeyCertificateFromCertificate failed: %v\n", err)
}
pubKeySize := keyCert.CryptoSize()
sigKeySize := keyCert.SignatureSize()
paddingSize := KEYS_AND_CERT_DATA_SIZE - pubKeySize - sigKeySize

View File

@@ -4,6 +4,7 @@ package lease_set
import (
"errors"
"fmt"
"github.com/go-i2p/go-i2p/lib/common/signature"
"github.com/go-i2p/go-i2p/lib/util/logger"
"github.com/sirupsen/logrus"
@@ -14,7 +15,6 @@ import (
. "github.com/go-i2p/go-i2p/lib/common/key_certificate"
. "github.com/go-i2p/go-i2p/lib/common/keys_and_cert"
. "github.com/go-i2p/go-i2p/lib/common/lease"
. "github.com/go-i2p/go-i2p/lib/common/signature"
"github.com/go-i2p/go-i2p/lib/crypto"
)
@@ -213,7 +213,11 @@ func (lease_set LeaseSet) SigningKey() (signing_public_key crypto.SigningPublicK
// This LeaseSet's Destination's Certificate is a Key Certificate,
// create the signing publickey key using any data that might be
// contained in the key certificate.
signing_public_key, err = KeyCertificateFromCertificate(cert).ConstructSigningPublicKey(
keyCert, err := KeyCertificateFromCertificate(cert)
if err != nil {
log.WithError(err).Error("Failed to create keyCert")
}
signing_public_key, err = keyCert.ConstructSigningPublicKey(
lease_set[offset : offset+LEASE_SET_SPK_SIZE],
)
if err != nil {
@@ -307,7 +311,7 @@ func (lease_set LeaseSet) Leases() (leases []Lease, err error) {
// Signature returns the signature as Signature.
// returns errors encountered during parsing.
func (lease_set LeaseSet) Signature() (signature Signature, err error) {
func (lease_set LeaseSet) Signature() (signature signature.Signature, err error) {
log.Debug("Retrieving Signature from LeaseSet")
destination, err := lease_set.Destination()
if err != nil {
@@ -328,7 +332,11 @@ func (lease_set LeaseSet) Signature() (signature Signature, err error) {
cert_type := cert.Type()
var end int
if cert_type == CERT_KEY {
end = start + KeyCertificateFromCertificate(cert).SignatureSize()
keyCert, err := KeyCertificateFromCertificate(cert)
if err != nil {
log.WithError(err).Error("Failed to create keyCert")
}
end = start + keyCert.SignatureSize()
} else {
end = start + LEASE_SET_SIG_SIZE
}
@@ -432,7 +440,11 @@ func NewLeaseSet(
cert := destination.Certificate()
if cert.Type() == CERT_KEY {
// Get expected size from key certificate
expectedSize := KeyCertificateFromCertificate(cert).SignatureSize()
keyCert, err := KeyCertificateFromCertificate(cert)
if err != nil {
log.WithError(err).Error("Failed to create keyCert")
}
expectedSize := keyCert.SignatureSize()
if len(signingKey.Bytes()) != expectedSize {
return nil, fmt.Errorf("invalid signing key size: got %d, expected %d",
len(signingKey.Bytes()), expectedSize)

View File

@@ -8,6 +8,7 @@ import (
"github.com/stretchr/testify/assert"
)
/*
func TestCheckValidReportsEmptySlice(t *testing.T) {
assert := assert.New(t)
@@ -33,6 +34,8 @@ func TestCheckRouterAddressValidReportsDataMissing(t *testing.T) {
assert.Equal(exit, false, "checkValid indicates to stop parsing when some fields may be present")
}
*/
func TestCheckRouterAddressValidNoErrWithValidData(t *testing.T) {
assert := assert.New(t)

View File

@@ -57,12 +57,17 @@ func NewRouterIdentity(publicKey crypto.PublicKey, signingPublicKey crypto.Signi
// Step 1: Create keyCertificate from the provided certificate.
// Assuming NewKeyCertificate is a constructor that takes a Certificate and returns a keyCertificate.
keyCert := key_certificate.KeyCertificateFromCertificate(cert)
keyCert, err := key_certificate.KeyCertificateFromCertificate(cert)
if err != nil {
log.WithError(err).Error("KeyCertificateFromCertificate failed.")
return nil, err
}
// Step 2: Create KeysAndCert instance.
keysAndCert, err := NewKeysAndCert(keyCert, publicKey, padding, signingPublicKey)
if err != nil {
log.WithError(err).Error("NewKeysAndCert failed.")
return nil, err
}
// Step 3: Initialize RouterIdentity with KeysAndCert.

View File

@@ -97,7 +97,10 @@ func TestCreateRouterInfo(t *testing.T) {
certBytes := cert.Bytes()
t.Logf("Serialized Certificate Size: %d bytes", len(certBytes))
keyCert := key_certificate.KeyCertificateFromCertificate(*cert)
keyCert, err := key_certificate.KeyCertificateFromCertificate(*cert)
if err != nil {
log.Fatalf("KeyCertificateFromCertificate failed: %v\n", err)
}
pubKeySize := keyCert.CryptoSize()
sigKeySize := keyCert.SignatureSize()
paddingSize := keys_and_cert.KEYS_AND_CERT_DATA_SIZE - pubKeySize - sigKeySize