EndGame0/sourcecode/gobalance/pkg/onionbalance/descriptor_test.go
2024-10-23 20:50:14 +05:30

45 lines
1.5 KiB
Go

package onionbalance
import (
"crypto/ed25519"
"crypto/x509"
"encoding/base64"
"encoding/pem"
"github.com/stretchr/testify/assert"
"gobalance/pkg/stem/descriptor"
"testing"
)
func TestRecertify(t *testing.T) {
signingKeyPem := `-----BEGIN PRIVATE KEY-----
MC4CAQAwBQYDK2VwBCIEIOcEHVwEY9iXpRtgQ9V3gfRPxWnVLueY911dGZDmLsE5
-----END PRIVATE KEY-----`
in := `-----BEGIN ED25519 CERT-----
AQkABvnyAeKc+JWLUCqeZ0PeYQMLB/s1x78MnHbaVJEJRydNiS4MAQAgBABcfN7F
QCPKVVMMIsn/OMg/XEQjOhfiqBB7DDU36l7dRyLU9kxujPUIBRUN229MYnIZE7iC
Bbtp5EM7G8R6GeX63anXSwcgldZJMa3hTq4QqhJf92nIOWakmAh9N++z+wo=
-----END ED25519 CERT-----`
expected := `-----BEGIN ED25519 CERT-----
AQkABvnyAeKc+JWLUCqeZ0PeYQMLB/s1x78MnHbaVJEJRydNiS4MAQAgBADpdmL5
jB9FTH/efQdCjogJa4F2/Xh9qJNiWmKWQYHdFB0b6xL7WctQFkBPWX0E+wyBjN+s
kcA5N/9MA4vWHYTeR2NI10q48FfC/A3iXu1W9f+vaVhYGr2rsgWmqt86Ngc=
-----END ED25519 CERT-----`
block, _ := pem.Decode([]byte(signingKeyPem))
key, _ := x509.ParsePKCS8PrivateKey(block.Bytes)
descriptorSigningKey := key.(ed25519.PrivateKey)
edCert := descriptor.Ed25519CertificateFromBase64(in)
out := recertifyEdCertificate(edCert, descriptorSigningKey)
assert.Equal(t, expected, out.ToBase64())
}
func TestGetRevisionCounterDet(t *testing.T) {
pk, _ := base64.StdEncoding.DecodeString(`5FPpKghcg2LnAuG8eO1n/+EwYKePXbxl1kFPp+iKbb8=`)
now := int64(1645956370)
srvStart := int64(1645833600)
expected := int64(4033953644)
expectedSSS := int64(122771)
opeResult, sss := getRevisionCounterDet(pk, now, srvStart)
assert.Equal(t, expectedSSS, sss)
assert.Equal(t, expected, opeResult)
}