mirror of
https://github.com/go-i2p/go-i2p.git
synced 2025-07-06 06:24:20 -04:00
lease set parsing tests
This commit is contained in:
@ -267,7 +267,7 @@ func (lease_set LeaseSet) Signature() (signature Signature, err error) {
|
||||
(LEASE_SIZE * lease_count)
|
||||
cert, err := destination.Certificate()
|
||||
if err != nil {
|
||||
|
||||
return
|
||||
}
|
||||
cert_type, _ := cert.Type()
|
||||
var end int
|
||||
@ -287,7 +287,7 @@ func (lease_set LeaseSet) Signature() (signature Signature, err error) {
|
||||
err = errors.New("error parsing signature: not enough data")
|
||||
return
|
||||
}
|
||||
copy(signature[:], lease_set[start:end])
|
||||
signature = []byte(lease_set[start:end])
|
||||
return
|
||||
}
|
||||
|
||||
|
@ -29,11 +29,23 @@ func buildSigningKey() []byte {
|
||||
}
|
||||
|
||||
func buildLease(n int) []byte {
|
||||
return make([]byte, LEASE_SIZE*n)
|
||||
data := make([]byte, 0)
|
||||
for i := 0; i < n; i++ {
|
||||
lease := make([]byte, LEASE_SIZE)
|
||||
for i := range lease {
|
||||
lease[i] = byte(i)
|
||||
}
|
||||
data = append(data, lease...)
|
||||
}
|
||||
return data
|
||||
}
|
||||
|
||||
func buildSignature() []byte {
|
||||
return make([]byte, 40)
|
||||
func buildSignature(size int) []byte {
|
||||
sig := make([]byte, size)
|
||||
for i := range sig {
|
||||
sig[i] = 0x08
|
||||
}
|
||||
return sig
|
||||
}
|
||||
|
||||
func buildFullLeaseSet(n int) LeaseSet {
|
||||
@ -43,7 +55,7 @@ func buildFullLeaseSet(n int) LeaseSet {
|
||||
lease_set_data = append(lease_set_data, buildSigningKey()...)
|
||||
lease_set_data = append(lease_set_data, byte(n))
|
||||
lease_set_data = append(lease_set_data, buildLease(n)...)
|
||||
lease_set_data = append(lease_set_data, buildSignature()...)
|
||||
lease_set_data = append(lease_set_data, buildSignature(64)...)
|
||||
return LeaseSet(lease_set_data)
|
||||
}
|
||||
|
||||
@ -117,8 +129,45 @@ func TestLeaseCountErrorWithTooMany(t *testing.T) {
|
||||
assert.Equal(17, count)
|
||||
}
|
||||
|
||||
// TestLeases
|
||||
func TestLeasesHaveCorrectData(t *testing.T) {
|
||||
assert := assert.New(t)
|
||||
|
||||
// TestSignature
|
||||
lease_set := buildFullLeaseSet(3)
|
||||
count, err := lease_set.LeaseCount()
|
||||
if assert.Nil(err) && assert.Equal(3, count) {
|
||||
leases, err := lease_set.Leases()
|
||||
if assert.Nil(err) {
|
||||
for i := 0; i < count; i++ {
|
||||
lease := make([]byte, LEASE_SIZE)
|
||||
for i := range lease {
|
||||
lease[i] = byte(i)
|
||||
}
|
||||
assert.Equal(
|
||||
0,
|
||||
bytes.Compare(
|
||||
lease,
|
||||
leases[i][:],
|
||||
),
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestSignatureIsCorrect(t *testing.T) {
|
||||
assert := assert.New(t)
|
||||
|
||||
lease_set := buildFullLeaseSet(1)
|
||||
sig, err := lease_set.Signature()
|
||||
if assert.Nil(err) {
|
||||
assert.Equal(
|
||||
0,
|
||||
bytes.Compare(
|
||||
buildSignature(64),
|
||||
sig,
|
||||
),
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
// TestOldestExpiration
|
||||
|
Reference in New Issue
Block a user