From 2ce8a834998e13a34576654d1d7070fb08ff0c8d Mon Sep 17 00:00:00 2001 From: yabwon Date: Mon, 19 Jul 2021 12:58:52 +0200 Subject: [PATCH] **GSM** (Generate Secure Macros) package, version 0.11 **GSM** (Generate Secure Macros) package, version 0.11 The 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. --- README.md | 4 ++-- packages/README.md | 4 ++-- packages/SHA256_for_packages.txt | 3 +++ packages/gsm.md | 4 ++-- packages/gsm.zip | Bin 14239 -> 14824 bytes 5 files changed, 9 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 70e5313..d776c37 100644 --- a/README.md +++ b/README.md @@ -162,12 +162,12 @@ SHA256 digest for BasePlus: A321A4BC54D444B82575EC5D443553A096557AD69DC171D578A3 [Documentation for BasePlus](https://github.com/yabwon/SAS_PACKAGES/blob/main/packages/baseplus.md "Documentation for BasePlus") -- **GSM** (Generate Secure Macros)\[0.1\], package allows +- **GSM** (Generate Secure Macros)\[0.11\], 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: 7134C8672023972BA0D5D5CE1E611F0DBB5F60ADAE847BC59C94FF7E2BEC0278 +SHA256 digest for GSM: 4322D79C382B9D58EF5E51AFD0856331F8B38B1B35AC21295DADFC43F81B2AF8 [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 6d06263..8ffbdfc 100644 --- a/packages/README.md +++ b/packages/README.md @@ -110,12 +110,12 @@ SHA256 digest for BasePlus: A321A4BC54D444B82575EC5D443553A096557AD69DC171D578A3 --- -- **GSM** (Generate Secure Macros)\[0.1\], package allows +- **GSM** (Generate Secure Macros)\[0.11\], 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: 7134C8672023972BA0D5D5CE1E611F0DBB5F60ADAE847BC59C94FF7E2BEC0278 +SHA256 digest for GSM: 4322D79C382B9D58EF5E51AFD0856331F8B38B1B35AC21295DADFC43F81B2AF8 [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 587f086..8cb9dbc 100644 --- a/packages/SHA256_for_packages.txt +++ b/packages/SHA256_for_packages.txt @@ -1,3 +1,6 @@ +/* 20210719 */ +GSM: 4322D79C382B9D58EF5E51AFD0856331F8B38B1B35AC21295DADFC43F81B2AF8 + /* 20210716 */ GSM: 7134C8672023972BA0D5D5CE1E611F0DBB5F60ADAE847BC59C94FF7E2BEC0278 diff --git a/packages/gsm.md b/packages/gsm.md index 34d8f48..dbe6a06 100644 --- a/packages/gsm.md +++ b/packages/gsm.md @@ -8,7 +8,7 @@ --- -# The GSM package [ver. 0.1] ############################################### +# The GSM package [ver. 0.11] ############################################### The **GSM** (a.k.a. *Generate Secure Macros*) package allows to create secured macros stored in SAS Proc FCMP functions. @@ -68,7 +68,7 @@ Required SAS Components: * SAS package generated by generatePackage, version 20210528 * The SHA256 hash digest for package BasePlus: -`7134C8672023972BA0D5D5CE1E611F0DBB5F60ADAE847BC59C94FF7E2BEC0278` +`4322D79C382B9D58EF5E51AFD0856331F8B38B1B35AC21295DADFC43F81B2AF8` ## >>> `%GSM()` macro: <<< ####################### diff --git a/packages/gsm.zip b/packages/gsm.zip index bbb98e97ffeae30a4bcd5178653ec14efd32f410..f7e6fde8bf3c2bd095a5564a7596d33eca120ee4 100644 GIT binary patch delta 10786 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