public void AddSecret(string fieldName, Func <TMessage, Principal[]> getKnownReaders)
        {
            var accessor = FieldLookup.Lookup <TMessage, Secret>(fieldName);

            // Throws if field name already has a handler.
            fieldHandlers.Add(fieldName, new SecretHandler <Secret> {
                accessor        = accessor,
                getKnownReaders = getKnownReaders
            });
        }
        public void AddMessagePayloadSecret <TInnerMessage>(string fieldName,
                                                            Func <TMessage, Principal[]> getKnownReaders,
                                                            MessagePayloadSecretGenerator <TInnerMessage> generator,
                                                            bool verifyOnImport)
            where TInnerMessage : SVX_MSG
        {
            var accessor = FieldLookup.Lookup <TMessage, PayloadSecret <TInnerMessage> >(fieldName);

            // Throws if field name already has a handler.
            fieldHandlers.Add(fieldName, new MessagePayloadSecretHandler <TInnerMessage>
            {
                accessor        = accessor,
                getKnownReaders = getKnownReaders,
                generator       = generator,
                verifyOnImport  = verifyOnImport
            });
        }