mirror of
https://github.com/ultravioletrs/cocos.git
synced 2026-06-23 04:10:25 +00:00
5377dd4d7f
* Refactor mock interfaces to use 'any' instead of 'interface{}' for improved type safety and readability across multiple files in the manager and pkg directories.
Signed-off-by: Sammy Oina <sammyoina@gmail.com>
* Update Go version to 1.25.x in CI workflows and remove obsolete Go package files
Signed-off-by: Sammy Oina <sammyoina@gmail.com>
* Add mock implementations for various components in the attestation and SDK packages
- Created mock for MeasurementProvider in pkg/attestation/cmdconfig/mocks/mocks_test.go
- Created mock for Provider in pkg/attestation/mocks/mocks_test.go
- Created mock for Client in pkg/clients/grpc/mocks/mocks_test.go
- Created mock for SDK in pkg/sdk/mocks/mocks_test.go
These mocks are generated using mockery and are intended for unit testing purposes.
Signed-off-by: Sammy Oina <sammyoina@gmail.com>
* Remove autogenerated mock files and update mock usage in tests
- Deleted mocks for gRPC clients in pkg/clients/grpc/mocks/mocks_test.go and pkg/sdk/mocks/mocks_test.go.
- Updated test files in pkg/progressbar/progress_test.go to use the new mock structure without type parameters for gRPC client interfaces.
- Refactored mock generation in pkg/sdk/mocks/sdk.go to streamline the mock creation process and ensure consistency across mock methods.
Signed-off-by: Sammy Oina <sammyoina@gmail.com>
* Update protobuf generated files for events and manager
- Bump protoc-gen-go version from v1.36.5 to v1.36.8 in events.pb.go and manager.pb.go.
- Refactor raw descriptor definitions in events.pb.go and manager.pb.go to use string concatenation for better readability and maintainability.
- Ensure compatibility with the latest protobuf specifications and improve code generation consistency.
Signed-off-by: Sammy Oina <sammyoina@gmail.com>
* Update test commands to use GOTOOLCHAIN for consistent Go version handling
Signed-off-by: Sammy Oina <sammyoina@gmail.com>
* Fix GOTOOLCHAIN usage in test command for consistency
Signed-off-by: Sammy Oina <sammyoina@gmail.com>
---------
Signed-off-by: Sammy Oina <sammyoina@gmail.com>
93 lines
2.1 KiB
Go
93 lines
2.1 KiB
Go
// Copyright (c) Ultraviolet
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
package cli
|
|
|
|
import (
|
|
"crypto/ecdsa"
|
|
"crypto/ed25519"
|
|
"crypto/rsa"
|
|
"crypto/x509"
|
|
"encoding/pem"
|
|
"os"
|
|
"testing"
|
|
)
|
|
|
|
func TestNewKeysCmd(t *testing.T) {
|
|
cli := &CLI{}
|
|
cmd := cli.NewKeysCmd()
|
|
|
|
if cmd.Use != "keys" {
|
|
t.Errorf("Expected Use to be 'keys', got %s", cmd.Use)
|
|
}
|
|
|
|
if cmd.Short != "Generate a new public/private key pair" {
|
|
t.Errorf("Unexpected Short description: %s", cmd.Short)
|
|
}
|
|
}
|
|
|
|
func TestGenerateAndWriteKeys(t *testing.T) {
|
|
tests := []struct {
|
|
name string
|
|
keyType string
|
|
}{
|
|
{"RSA", "rsa"},
|
|
{"ECDSA", "ecdsa"},
|
|
{"ED25519", "ed25519"},
|
|
}
|
|
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
KeyType = tt.keyType
|
|
cmd := (&CLI{}).NewKeysCmd()
|
|
cmd.Run(cmd, []string{})
|
|
|
|
if _, err := os.Stat(privateKeyFile); os.IsNotExist(err) {
|
|
t.Errorf("Private key file was not created")
|
|
}
|
|
if _, err := os.Stat(publicKeyFile); os.IsNotExist(err) {
|
|
t.Errorf("Public key file was not created")
|
|
}
|
|
|
|
privKeyData, err := os.ReadFile(privateKeyFile)
|
|
if err != nil {
|
|
t.Fatalf("Failed to read private key file: %v", err)
|
|
}
|
|
privPem, _ := pem.Decode(privKeyData)
|
|
if privPem == nil {
|
|
t.Fatalf("Failed to decode private key PEM")
|
|
}
|
|
|
|
var privKey any
|
|
switch tt.keyType {
|
|
case "rsa":
|
|
privKey, err = x509.ParsePKCS1PrivateKey(privPem.Bytes)
|
|
case "ecdsa":
|
|
privKey, err = x509.ParseECPrivateKey(privPem.Bytes)
|
|
case "ed25519":
|
|
privKey, err = x509.ParsePKCS8PrivateKey(privPem.Bytes)
|
|
}
|
|
if err != nil {
|
|
t.Fatalf("Failed to parse private key: %v", err)
|
|
}
|
|
|
|
switch tt.keyType {
|
|
case "rsa":
|
|
if _, ok := privKey.(*rsa.PrivateKey); !ok {
|
|
t.Errorf("Expected RSA private key, got %T", privKey)
|
|
}
|
|
case "ecdsa":
|
|
if _, ok := privKey.(*ecdsa.PrivateKey); !ok {
|
|
t.Errorf("Expected ECDSA private key, got %T", privKey)
|
|
}
|
|
case "ed25519":
|
|
if _, ok := privKey.(ed25519.PrivateKey); !ok {
|
|
t.Errorf("Expected ED25519 private key, got %T", privKey)
|
|
}
|
|
}
|
|
|
|
os.Remove(privateKeyFile)
|
|
os.Remove(publicKeyFile)
|
|
})
|
|
}
|
|
}
|