diff options
| author | Sean Hall <r.sean.hall@gmail.com> | 2020-11-01 15:16:07 -0600 |
|---|---|---|
| committer | Sean Hall <r.sean.hall@gmail.com> | 2020-11-01 18:35:01 -0600 |
| commit | 4921664f92bb6bd39ed7fd3dd24d58108973af25 (patch) | |
| tree | 491cb08915b40708770b3b76f05eb1c98dc45691 /src/engine/variable.cpp | |
| parent | b5553689ed1b1bd32f854654f56935c039a9b13b (diff) | |
| download | wix-4921664f92bb6bd39ed7fd3dd24d58108973af25.tar.gz wix-4921664f92bb6bd39ed7fd3dd24d58108973af25.tar.bz2 wix-4921664f92bb6bd39ed7fd3dd24d58108973af25.zip | |
Stop encrypting hidden variables.
They were persisted in plaintext, and always had to be decrypted and sent to a separate process to actually be used.
Diffstat (limited to 'src/engine/variable.cpp')
| -rw-r--r-- | src/engine/variable.cpp | 14 |
1 files changed, 0 insertions, 14 deletions
diff --git a/src/engine/variable.cpp b/src/engine/variable.cpp index 8b6b318b..4bf73a9b 100644 --- a/src/engine/variable.cpp +++ b/src/engine/variable.cpp | |||
| @@ -427,9 +427,6 @@ extern "C" HRESULT VariablesParseFromXml( | |||
| 427 | hr = BVariantSetValue(&pVariables->rgVariables[iVariable].Value, &value); | 427 | hr = BVariantSetValue(&pVariables->rgVariables[iVariable].Value, &value); |
| 428 | ExitOnFailure(hr, "Failed to set value of variable: %ls", sczId); | 428 | ExitOnFailure(hr, "Failed to set value of variable: %ls", sczId); |
| 429 | 429 | ||
| 430 | hr = BVariantSetEncryption(&pVariables->rgVariables[iVariable].Value, fHidden); | ||
| 431 | ExitOnFailure(hr, "Failed to set variant encryption"); | ||
| 432 | |||
| 433 | // prepare next iteration | 430 | // prepare next iteration |
| 434 | ReleaseNullObject(pixnNode); | 431 | ReleaseNullObject(pixnNode); |
| 435 | BVariantUninitialize(&value); | 432 | BVariantUninitialize(&value); |
| @@ -509,7 +506,6 @@ extern "C" void VariablesDump( | |||
| 509 | StrSecureZeroFreeString(sczValue); | 506 | StrSecureZeroFreeString(sczValue); |
| 510 | } | 507 | } |
| 511 | 508 | ||
| 512 | // The contents of pllValue may be sensitive, if variable is hidden should keep value encrypted and SecureZeroMemory. | ||
| 513 | extern "C" HRESULT VariableGetNumeric( | 509 | extern "C" HRESULT VariableGetNumeric( |
| 514 | __in BURN_VARIABLES* pVariables, | 510 | __in BURN_VARIABLES* pVariables, |
| 515 | __in_z LPCWSTR wzVariable, | 511 | __in_z LPCWSTR wzVariable, |
| @@ -541,7 +537,6 @@ LExit: | |||
| 541 | return hr; | 537 | return hr; |
| 542 | } | 538 | } |
| 543 | 539 | ||
| 544 | // The contents of psczValue may be sensitive, if variable is hidden should keep encrypted and SecureZeroFree. | ||
| 545 | extern "C" HRESULT VariableGetString( | 540 | extern "C" HRESULT VariableGetString( |
| 546 | __in BURN_VARIABLES* pVariables, | 541 | __in BURN_VARIABLES* pVariables, |
| 547 | __in_z LPCWSTR wzVariable, | 542 | __in_z LPCWSTR wzVariable, |
| @@ -573,7 +568,6 @@ LExit: | |||
| 573 | return hr; | 568 | return hr; |
| 574 | } | 569 | } |
| 575 | 570 | ||
| 576 | // The contents of ppValue may be sensitive, if variable is hidden should keep value encrypted and SecureZeroMemory. | ||
| 577 | extern "C" HRESULT VariableGetVersion( | 571 | extern "C" HRESULT VariableGetVersion( |
| 578 | __in BURN_VARIABLES* pVariables, | 572 | __in BURN_VARIABLES* pVariables, |
| 579 | __in_z LPCWSTR wzVariable, | 573 | __in_z LPCWSTR wzVariable, |
| @@ -632,7 +626,6 @@ LExit: | |||
| 632 | return hr; | 626 | return hr; |
| 633 | } | 627 | } |
| 634 | 628 | ||
| 635 | // The contents of psczValue may be sensitive, should keep encrypted and SecureZeroFree. | ||
| 636 | extern "C" HRESULT VariableGetFormatted( | 629 | extern "C" HRESULT VariableGetFormatted( |
| 637 | __in BURN_VARIABLES* pVariables, | 630 | __in BURN_VARIABLES* pVariables, |
| 638 | __in_z LPCWSTR wzVariable, | 631 | __in_z LPCWSTR wzVariable, |
| @@ -661,7 +654,6 @@ extern "C" HRESULT VariableSetNumeric( | |||
| 661 | { | 654 | { |
| 662 | BURN_VARIANT variant = { }; | 655 | BURN_VARIANT variant = { }; |
| 663 | 656 | ||
| 664 | // We're not going to encrypt this value, so can access the value directly. | ||
| 665 | variant.llValue = llValue; | 657 | variant.llValue = llValue; |
| 666 | variant.Type = BURN_VARIANT_TYPE_NUMERIC; | 658 | variant.Type = BURN_VARIANT_TYPE_NUMERIC; |
| 667 | 659 | ||
| @@ -678,7 +670,6 @@ extern "C" HRESULT VariableSetString( | |||
| 678 | { | 670 | { |
| 679 | BURN_VARIANT variant = { }; | 671 | BURN_VARIANT variant = { }; |
| 680 | 672 | ||
| 681 | // We're not going to encrypt this value, so can access the value directly. | ||
| 682 | variant.sczValue = (LPWSTR)wzValue; | 673 | variant.sczValue = (LPWSTR)wzValue; |
| 683 | variant.Type = fFormatted ? BURN_VARIANT_TYPE_FORMATTED : BURN_VARIANT_TYPE_STRING; | 674 | variant.Type = fFormatted ? BURN_VARIANT_TYPE_FORMATTED : BURN_VARIANT_TYPE_STRING; |
| 684 | 675 | ||
| @@ -694,7 +685,6 @@ extern "C" HRESULT VariableSetVersion( | |||
| 694 | { | 685 | { |
| 695 | BURN_VARIANT variant = { }; | 686 | BURN_VARIANT variant = { }; |
| 696 | 687 | ||
| 697 | // We're not going to encrypt this value, so can access the value directly. | ||
| 698 | variant.pValue = pValue; | 688 | variant.pValue = pValue; |
| 699 | variant.Type = BURN_VARIANT_TYPE_VERSION; | 689 | variant.Type = BURN_VARIANT_TYPE_VERSION; |
| 700 | 690 | ||
| @@ -710,7 +700,6 @@ extern "C" HRESULT VariableSetVariant( | |||
| 710 | return SetVariableValue(pVariables, wzVariable, pVariant, SET_VARIABLE_NOT_BUILTIN, TRUE); | 700 | return SetVariableValue(pVariables, wzVariable, pVariant, SET_VARIABLE_NOT_BUILTIN, TRUE); |
| 711 | } | 701 | } |
| 712 | 702 | ||
| 713 | // The contents of psczOut may be sensitive, should keep encrypted and SecureZeroFree | ||
| 714 | extern "C" HRESULT VariableFormatString( | 703 | extern "C" HRESULT VariableFormatString( |
| 715 | __in BURN_VARIABLES* pVariables, | 704 | __in BURN_VARIABLES* pVariables, |
| 716 | __in_z LPCWSTR wzIn, | 705 | __in_z LPCWSTR wzIn, |
| @@ -1092,7 +1081,6 @@ LExit: | |||
| 1092 | 1081 | ||
| 1093 | // internal function definitions | 1082 | // internal function definitions |
| 1094 | 1083 | ||
| 1095 | // The contents of psczOut may be sensitive, should keep encrypted and SecureZeroFree. | ||
| 1096 | static HRESULT FormatString( | 1084 | static HRESULT FormatString( |
| 1097 | __in BURN_VARIABLES* pVariables, | 1085 | __in BURN_VARIABLES* pVariables, |
| 1098 | __in_z LPCWSTR wzIn, | 1086 | __in_z LPCWSTR wzIn, |
| @@ -1312,7 +1300,6 @@ LExit: | |||
| 1312 | return hr; | 1300 | return hr; |
| 1313 | } | 1301 | } |
| 1314 | 1302 | ||
| 1315 | // The contents of psczOut may be sensitive, should keep encrypted and SecureZeroFree. | ||
| 1316 | static HRESULT GetFormatted( | 1303 | static HRESULT GetFormatted( |
| 1317 | __in BURN_VARIABLES* pVariables, | 1304 | __in BURN_VARIABLES* pVariables, |
| 1318 | __in_z LPCWSTR wzVariable, | 1305 | __in_z LPCWSTR wzVariable, |
| @@ -1581,7 +1568,6 @@ static HRESULT SetVariableValue( | |||
| 1581 | } | 1568 | } |
| 1582 | else | 1569 | else |
| 1583 | { | 1570 | { |
| 1584 | // Assume value isn't encrypted since it's not hidden. | ||
| 1585 | switch (pVariant->Type) | 1571 | switch (pVariant->Type) |
| 1586 | { | 1572 | { |
| 1587 | case BURN_VARIANT_TYPE_NONE: | 1573 | case BURN_VARIANT_TYPE_NONE: |
