Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion loadgen/workload/sign.go
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,7 @@ func NewPolicyEndorserVerifier(profile *Policy) *NsPolicyEndorserVerifier {
logger.Debugf("Generating new keys")
signingKey, verificationKey = sigtest.NewKeyPairWithSeed(profile.Scheme, profile.Seed)
}
v, err := sigtest.NewNsVerifierFromKey(profile.Scheme, verificationKey)
v, err := signature.NewNsVerifierFromKey(profile.Scheme, verificationKey)
utils.Must(err)
endorser, err := sigtest.NewNsEndorserFromKey(profile.Scheme, signingKey)
utils.Must(err)
Expand Down
9 changes: 6 additions & 3 deletions service/query/query_service_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -280,9 +280,12 @@ func TestQueryPolicies(t *testing.T) {
delete(expectedNamespaces, p.Namespace)
item, parseErr := policy.CreateNamespaceVerifier(p, nil)
require.NoError(t, parseErr)
p := item.NamespacePolicy.GetThresholdRule()
require.NotNil(t, p)
require.Equal(t, signature.Ecdsa, p.Scheme)
require.NotNil(t, item)
pol, parseErr := policy.UnmarshalNamespacePolicy(p.Policy)
require.NoError(t, parseErr)
rule := pol.GetThresholdRule()
require.NotNil(t, rule)
require.Equal(t, signature.Ecdsa, rule.Scheme)
}

configTX, err := env.clientConn.GetConfigTransaction(t.Context(), nil)
Expand Down
17 changes: 13 additions & 4 deletions service/verifier/policy/policy.go
Original file line number Diff line number Diff line change
Expand Up @@ -84,14 +84,23 @@ func CreateNamespaceVerifier(
return nil, err
}

pol := &applicationpb.NamespacePolicy{}
if err := proto.Unmarshal(pd.Policy, pol); err != nil {
return nil, errors.Wrap(err, "failed to unmarshal namepsace policy bytes")
pol, err := UnmarshalNamespacePolicy(pd.Policy)
if err != nil {
return nil, err
}

return signature.NewNsVerifier(pol, idDeserializer)
}

// UnmarshalNamespacePolicy unmarshals namespace policy bytes to a [applicationpb.NamespacePolicy] proto.
func UnmarshalNamespacePolicy(policyBytes []byte) (*applicationpb.NamespacePolicy, error) {
pol := &applicationpb.NamespacePolicy{}
err := proto.Unmarshal(policyBytes, pol)
if err != nil {
return nil, errors.Wrap(err, "failed to unmarshal namespace policy bytes")
}
return pol, nil
}

// validateNamespaceIDInPolicy checks that a given namespace fulfills namespace naming conventions.
func validateNamespaceIDInPolicy(nsID string) error {
// If it matches one of the system's namespaces it is invalid.
Expand Down
5 changes: 4 additions & 1 deletion service/verifier/policy/policy_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,10 @@ func TestParsePolicyItem(t *testing.T) {
pd := MakePolicy(t, ns, p)
retP, err := CreateNamespaceVerifier(pd, nil)
require.NoError(t, err)
test.RequireProtoEqual(t, p, retP.NamespacePolicy)
require.NotNil(t, retP)
pol, err := UnmarshalNamespacePolicy(pd.Policy)
require.NoError(t, err)
test.RequireProtoEqual(t, p, pol)
})
}

Expand Down
9 changes: 5 additions & 4 deletions service/verifier/verify.go
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,8 @@ func (v *verifier) updatePolicies(
// While it is unlikely that policy parsing would fail at this stage, it could happen
// if the stored policy in the database is corrupted or maliciously altered, or if there is a
// bug in the committer that modifies the policy bytes.
newVerifiers, err := createVerifiers(update, v.bundle.MSPManager())
idDeserializer := v.bundle.MSPManager()
newVerifiers, err := createVerifiers(update, idDeserializer)
if err != nil {
return errors.Join(ErrUpdatePolicies, err)
}
Expand All @@ -69,9 +70,9 @@ func (v *verifier) updatePolicies(
}

// If there is a config update, the verifier for signature policies must be
// recreated to use the latest MSP Manager from the new configuration.
if update.Config != nil && nsVerifier.NamespacePolicy.GetMspRule() != nil {
nsVerifier, err = signature.NewNsVerifier(nsVerifier.NamespacePolicy, v.bundle.MSPManager())
// updated to use the latest MSP Manager from the new configuration.
if update.Config != nil {
err = nsVerifier.UpdateIdentities(idDeserializer)
if err != nil {
return err
}
Expand Down
2 changes: 1 addition & 1 deletion utils/signature/sigtest/bench_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ func BenchmarkVerify(b *testing.B) {
sk, pk := sigtest.NewKeyPair(scheme)
endorser, err := sigtest.NewNsEndorserFromKey(scheme, sk)
require.NoError(b, err)
v, err := sigtest.NewNsVerifierFromKey(scheme, pk)
v, err := signature.NewNsVerifierFromKey(scheme, pk)
require.NoError(b, err)

b.Run(scheme, func(b *testing.B) {
Expand Down
6 changes: 3 additions & 3 deletions utils/signature/sigtest/factory_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ func TestEndToEnd(t *testing.T) {
t.Run(scheme, func(t *testing.T) {
t.Parallel()
priv, pub := NewKeyPair(scheme)
v, err := NewNsVerifierFromKey(scheme, pub)
v, err := signature.NewNsVerifierFromKey(scheme, pub)
require.NoError(t, err)
e, err := NewNsEndorserFromKey(scheme, priv)
require.NoError(t, err)
Expand Down Expand Up @@ -55,7 +55,7 @@ func TestEcdsaPem(t *testing.T) {
priv, pub := NewKeyPair(scheme)
require.NoError(t, os.WriteFile(pemPath, append(priv, pub...), 0o600))

v, err := NewNsVerifierFromKey(scheme, pub)
v, err := signature.NewNsVerifierFromKey(scheme, pub)
require.NoError(t, err)
e, err := NewNsEndorserFromKey(scheme, priv)
require.NoError(t, err)
Expand All @@ -69,7 +69,7 @@ func TestEcdsaPem(t *testing.T) {
for key, value := range m {
t.Log(key)
if strings.Contains(strings.ToLower(key), "public") {
pemV, err = NewNsVerifierFromKey(scheme, value)
pemV, err = signature.NewNsVerifierFromKey(scheme, value)
require.NoError(t, err)
}
if strings.Contains(strings.ToLower(key), "private") {
Expand Down
24 changes: 0 additions & 24 deletions utils/signature/sigtest/verify_export.go

This file was deleted.

Loading