syntax = "proto3";
package UserPassword;

message UserPassword {
    optional Encoding encoding = 1;
    optional Transformer transformer = 2;
    repeated TransformerArg transformerArg = 3;
    optional bytes transformedData = 4;
    enum Encoding {
        UTF8 = 0;
        UTF8_BROKEN = 1;
    }
    enum Transformer {
        NONE = 0;
        PBKDF2_HMAC_SHA512 = 1;
        PBKDF2_HMAC_SHA384 = 2;
    }
    message TransformerArg {
        optional string key = 1;
        optional Value value = 2;
        message Value {
            oneof value {
                bytes asBlob = 1;
                uint32 asUnsignedInteger = 2;
            }
        }
    }
}