Some checks failed
Build SimApp / build (amd64) (push) Waiting to run
Build SimApp / build (arm64) (push) Waiting to run
CodeQL / Analyze (push) Waiting to run
Build & Push / build (push) Waiting to run
Run Gosec / Gosec (push) Waiting to run
Lint / golangci-lint (push) Waiting to run
Checks dependencies and mocks generation / Check go mod tidy (push) Waiting to run
Checks dependencies and mocks generation / Check up to date mocks (push) Waiting to run
System Tests / setup (push) Waiting to run
System Tests / test-system (push) Blocked by required conditions
System Tests / test-system-legacy (push) Blocked by required conditions
Tests / Code Coverage / split-test-files (push) Waiting to run
Tests / Code Coverage / tests (00) (push) Blocked by required conditions
Tests / Code Coverage / tests (01) (push) Blocked by required conditions
Tests / Code Coverage / tests (02) (push) Blocked by required conditions
Tests / Code Coverage / tests (03) (push) Blocked by required conditions
Tests / Code Coverage / test-integration (push) Waiting to run
Tests / Code Coverage / test-e2e (push) Waiting to run
Tests / Code Coverage / repo-analysis (push) Blocked by required conditions
Tests / Code Coverage / test-sim-nondeterminism (push) Waiting to run
Tests / Code Coverage / test-clientv2 (push) Waiting to run
Tests / Code Coverage / test-core (push) Waiting to run
Tests / Code Coverage / test-depinject (push) Waiting to run
Tests / Code Coverage / test-errors (push) Waiting to run
Tests / Code Coverage / test-math (push) Waiting to run
Tests / Code Coverage / test-schema (push) Waiting to run
Tests / Code Coverage / test-collections (push) Waiting to run
Tests / Code Coverage / test-cosmovisor (push) Waiting to run
Tests / Code Coverage / test-confix (push) Waiting to run
Tests / Code Coverage / test-store (push) Waiting to run
Tests / Code Coverage / test-log (push) Waiting to run
Tests / Code Coverage / test-x-tx (push) Waiting to run
Tests / Code Coverage / test-x-nft (push) Waiting to run
Tests / Code Coverage / test-x-circuit (push) Waiting to run
Tests / Code Coverage / test-x-feegrant (push) Waiting to run
Tests / Code Coverage / test-x-evidence (push) Waiting to run
Tests / Code Coverage / test-x-upgrade (push) Waiting to run
Tests / Code Coverage / test-tools-benchmark (push) Waiting to run
Build & Push SDK Proto Builder / build (push) Has been cancelled
24 lines
1,010 B
Go
24 lines
1,010 B
Go
/*
|
|
unknownproto implements functionality to "type check" protobuf serialized byte sequences
|
|
against an expected proto.Message to report:
|
|
|
|
a) Unknown fields in the stream -- this is indicative of mismatched services, perhaps a malicious actor
|
|
|
|
b) Mismatched wire types for a field -- this is indicative of mismatched services
|
|
|
|
Its API signature is similar to proto.Unmarshal([]byte, proto.Message) in the strict case
|
|
|
|
if err := RejectUnknownFieldsStrict(protoBlob, protoMessage, false); err != nil {
|
|
// Handle the error.
|
|
}
|
|
|
|
and ideally should be added before invoking proto.Unmarshal, if you'd like to enforce the features mentioned above.
|
|
|
|
By default, for security we report every single field that's unknown, whether a non-critical field or not. To customize
|
|
this behavior, please set the boolean parameter allowUnknownNonCriticals to true to RejectUnknownFields:
|
|
|
|
if err := RejectUnknownFields(protoBlob, protoMessage, true); err != nil {
|
|
// Handle the error.
|
|
}
|
|
*/
|
|
package unknownproto
|