syntax = "proto3"; package did.v1; import "amino/amino.proto"; import "gogoproto/gogo.proto"; option go_package = "github.com/onsonr/sonr/x/did/types"; // GenesisState defines the module genesis state message GenesisState { // Params defines all the parameters of the module. Params params = 1 [ (gogoproto.nullable) = false ]; } // Params defines the set of module parameters. message Params { option (amino.name) = "did/params"; option (gogoproto.equal) = true; option (gogoproto.goproto_stringer) = false; // Whitelisted Assets // Whitelisted Key Types map allowed_public_keys = 2; // ConveyancePreference defines the conveyance preference string conveyance_preference = 3; // AttestationFormats defines the attestation formats repeated string attestation_formats = 4; } // KeyInfo defines information for accepted PubKey types message KeyInfo { string role = 1; string algorithm = 2; // e.g., "ES256", "EdDSA", "ES256K" string encoding = 3; // e.g., "hex", "base64", "multibase" string curve = 4; // e.g., "P256", "P384", "P521", "X25519", "X448", // "Ed25519", "Ed448", "secp256k1" } message Keyshares { string validator_cid = 1; string user_cid = 2; int64 last_updated_block = 3; } // PubKey defines a public key for a did message PubKey { string role = 1; string key_type = 2; RawKey raw_key = 3; JSONWebKey jwk = 4; } // JWK represents a JSON Web Key message JSONWebKey { string kty = 1; // Key Type string crv = 2; // Curve (for EC and OKP keys) string x = 3; // X coordinate (for EC and OKP keys) string y = 4; // Y coordinate (for EC keys) string n = 5; // Modulus (for RSA keys) string e = 6; // Exponent (for RSA keys) } message RawKey { string algorithm = 1; string encoding = 2; string curve = 3; bytes key = 4; }