syntax = "proto3"; package did.v1; import "cosmos/orm/v1/orm.proto"; option go_package = "github.com/onsonr/sonr/x/did/types"; message Authentication { option (cosmos.orm.v1.table) = { id: 1 primary_key: {fields: "did"} index: { id: 1 fields: "controller,subject" unique: true } }; // The unique identifier of the authentication string did = 1; // The authentication of the DID string controller = 2; // Origin of the authentication string subject = 3; // PubKey is the verification method PubKey public_key = 4; } // Controller represents a Sonr DWN Vault message Controller { option (cosmos.orm.v1.table) = { id: 2 primary_key: { fields: "number" auto_increment: true } index: { id: 1 fields: "sonr_address" unique: true } index: { id: 2 fields: "eth_address" unique: true } index: { id: 3 fields: "btc_address" unique: true } index: { id: 4 fields: "did" unique: true } }; // The unique identifier of the controller uint64 number = 1; // The unique identifier of the controller string did = 2; // The DID of the controller string sonr_address = 3; // The DID of the controller string eth_address = 4; // The DID of the controller string btc_address = 5; // PubKey is the verification method PubKey public_key = 6; // Val Keyshare string ks_val = 7; // The Status of the claims for the controller bool claimed = 8; } // Verification reprsents a method of verifying membership in a DID message Verification { option (cosmos.orm.v1.table) = { id: 4 primary_key: {fields: "did"} index: { id: 1 fields: "issuer,subject" unique: true } index: { id: 2 fields: "controller,did_method,issuer" unique: true } index: { id: 3 fields: "verification_type,subject,issuer" unique: true } }; // The unique identifier of the verification string did = 1; // The controller of the verification string controller = 2; // The DIDNamespace of the verification string did_method = 3; // The value of the linked identifier string issuer = 4; // The subject of the verification string subject = 5; // The public key of the verification PubKey public_key = 6; // The Verification Type (Authentication, Assertion, CapabilityDelegation, // CapabilityInvocation) string verification_type = 7; } // 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; }