Allow setting custom initialization vector for FileAccessEncrypted. Add export setting to set static seed for PCK encryption initialization vectors.
This commit is contained in:
committed by
Pāvels Nadtočajevs
parent
cb411fa960
commit
45593d45b3
@ -382,10 +382,16 @@ void ProjectExportDialog::_edit_preset(int p_index) {
|
||||
bool enc_pck_mode = current->get_enc_pck();
|
||||
enc_pck->set_pressed(enc_pck_mode);
|
||||
|
||||
uint64_t seed = current->get_seed();
|
||||
if (!updating_seed) {
|
||||
seed_input->set_text(itos(seed));
|
||||
}
|
||||
|
||||
enc_directory->set_disabled(!enc_pck_mode);
|
||||
enc_in_filters->set_editable(enc_pck_mode);
|
||||
enc_ex_filters->set_editable(enc_pck_mode);
|
||||
script_key->set_editable(enc_pck_mode);
|
||||
seed_input->set_editable(enc_pck_mode);
|
||||
|
||||
bool enc_directory_mode = current->get_enc_directory();
|
||||
enc_directory->set_pressed(enc_directory_mode);
|
||||
@ -591,6 +597,21 @@ void ProjectExportDialog::_enc_pck_changed(bool p_pressed) {
|
||||
_update_current_preset();
|
||||
}
|
||||
|
||||
void ProjectExportDialog::_seed_input_changed(const String &p_text) {
|
||||
if (updating) {
|
||||
return;
|
||||
}
|
||||
|
||||
Ref<EditorExportPreset> current = get_current_preset();
|
||||
ERR_FAIL_COND(current.is_null());
|
||||
|
||||
current->set_seed(seed_input->get_text().to_int());
|
||||
|
||||
updating_seed = true;
|
||||
_update_current_preset();
|
||||
updating_seed = false;
|
||||
}
|
||||
|
||||
void ProjectExportDialog::_enc_directory_changed(bool p_pressed) {
|
||||
if (updating) {
|
||||
return;
|
||||
@ -1623,6 +1644,10 @@ ProjectExportDialog::ProjectExportDialog() {
|
||||
sec_vb->add_child(script_key_error);
|
||||
sections->add_child(sec_scroll_container);
|
||||
|
||||
seed_input = memnew(LineEdit);
|
||||
seed_input->connect(SceneStringName(text_changed), callable_mp(this, &ProjectExportDialog::_seed_input_changed));
|
||||
sec_vb->add_margin_child(TTR("Initialization vector seed"), seed_input);
|
||||
|
||||
Label *sec_info = memnew(Label);
|
||||
sec_info->set_text(TTR("Note: Encryption key needs to be stored in the binary,\nyou need to build the export templates from source."));
|
||||
sec_vb->add_child(sec_info);
|
||||
|
||||
Reference in New Issue
Block a user