From 76c7793e34330fc845c1b377e98c89e870839e47 Mon Sep 17 00:00:00 2001 From: "Bart Jablonski (yabwon)" Date: Mon, 7 Mar 2022 16:37:15 +0100 Subject: [PATCH] The GSM package [ver. 0.18] The GSM package [ver. 0.18] - a bug fix in file scraping fixed hash: 8D730316043A6523A3AF2AA15D2820BB75A46E06307F2B8916D30AC102AEE31D --- README.md | 4 ++-- packages/README.md | 4 ++-- packages/SHA256_for_packages.txt | 3 +++ packages/gsm.md | 4 ++-- packages/gsm.zip | Bin 16000 -> 16004 bytes 5 files changed, 9 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index ccde8e5..90c42fd 100644 --- a/README.md +++ b/README.md @@ -168,12 +168,12 @@ SHA256 digest for BasePlus: A60A300E083628C65DD6899E7EF95588916F8F66B6A25B32B322 [Documentation for BasePlus](https://github.com/yabwon/SAS_PACKAGES/blob/main/packages/baseplus.md "Documentation for BasePlus") -- **GSM** (Generate Secure Macros)\[0.17\], package allows +- **GSM** (Generate Secure Macros)\[0.18\], package allows to create secured macros stored in SAS Proc FCMP functions. The dataset with functions can be shared between different operating systems and allows to generate macros on site without showing their code. -SHA256 digest for GSM: 3B70D8C31F02CB2B6AC47CC1DB3EC9E462796226CBFF519936AF5EEDB0C46B8F +SHA256 digest for GSM: 8D730316043A6523A3AF2AA15D2820BB75A46E06307F2B8916D30AC102AEE31D [Documentation for GSM](https://github.com/yabwon/SAS_PACKAGES/blob/main/packages/gsm.md "Documentation for GSM") diff --git a/packages/README.md b/packages/README.md index 3979684..5fba128 100644 --- a/packages/README.md +++ b/packages/README.md @@ -114,12 +114,12 @@ SHA256 digest for BasePlus: A60A300E083628C65DD6899E7EF95588916F8F66B6A25B32B322 --- -- **GSM** (Generate Secure Macros)\[0.17\], package allows +- **GSM** (Generate Secure Macros)\[0.18\], package allows to create secured macros stored in SAS Proc FCMP functions. The dataset with functions can be shared between different operating systems and allows to generate macros on site without showing their code. -SHA256 digest for GSM: 3B70D8C31F02CB2B6AC47CC1DB3EC9E462796226CBFF519936AF5EEDB0C46B8F +SHA256 digest for GSM: 8D730316043A6523A3AF2AA15D2820BB75A46E06307F2B8916D30AC102AEE31D [Documentation for GSM](https://github.com/yabwon/SAS_PACKAGES/blob/main/packages/gsm.md "Documentation for GSM") diff --git a/packages/SHA256_for_packages.txt b/packages/SHA256_for_packages.txt index 0b139a9..cce3f9a 100644 --- a/packages/SHA256_for_packages.txt +++ b/packages/SHA256_for_packages.txt @@ -1,3 +1,6 @@ +/* 20220307 */ +GSM: 8D730316043A6523A3AF2AA15D2820BB75A46E06307F2B8916D30AC102AEE31D + /* 20220217 */ macroArray: DAEB87654D99965BF2B7A6AB14626B3E617D0ABF526E77725DF89A1AB4C812C2 diff --git a/packages/gsm.md b/packages/gsm.md index 17ff541..b10ced9 100644 --- a/packages/gsm.md +++ b/packages/gsm.md @@ -8,7 +8,7 @@ --- -# The GSM package [ver. 0.17] ############################################### +# The GSM package [ver. 0.18] ############################################### The **GSM** (a.k.a. *Generate Secure Macros*) package allows to create secured macros stored in SAS Proc FCMP functions. @@ -69,7 +69,7 @@ Required SAS Components: * SAS package generated by generatePackage, version 20220113 * The SHA256 hash digest for package GSM: -`3B70D8C31F02CB2B6AC47CC1DB3EC9E462796226CBFF519936AF5EEDB0C46B8F` +`8D730316043A6523A3AF2AA15D2820BB75A46E06307F2B8916D30AC102AEE31D` ## >>> `%GSM()` macro: <<< ####################### diff --git a/packages/gsm.zip b/packages/gsm.zip index fcba35ab1fb891181df20219182ef806ea3c9180..18ab59c2fe3ad404ecfe867271214e47bb6a1f92 100644 GIT binary patch delta 8817 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%0Do-%rSP0h%dr+r~R`(Dg8f&@xML%Whw;z zz?1o>(f