From b45b79fd3cbd563ffa15eb5a174b67ae6bef2b98 Mon Sep 17 00:00:00 2001 From: yabwon Date: Thu, 22 Jul 2021 15:09:36 +0200 Subject: [PATCH] **GSM** (Generate Secure Macros) package, version 0.12 **GSM** (Generate Secure Macros) package, version 0.12 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 14824 -> 15031 bytes 5 files changed, 9 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index d776c37..3fff6ce 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.11\], package allows +- **GSM** (Generate Secure Macros)\[0.12\], 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: 4322D79C382B9D58EF5E51AFD0856331F8B38B1B35AC21295DADFC43F81B2AF8 +SHA256 digest for GSM: 311BCF510B7B189AE9A75C56C4D2F99F844114CC5AD32329FAD690BA1F10422A [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 8ffbdfc..a78658c 100644 --- a/packages/README.md +++ b/packages/README.md @@ -110,12 +110,12 @@ SHA256 digest for BasePlus: A321A4BC54D444B82575EC5D443553A096557AD69DC171D578A3 --- -- **GSM** (Generate Secure Macros)\[0.11\], package allows +- **GSM** (Generate Secure Macros)\[0.12\], 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: 4322D79C382B9D58EF5E51AFD0856331F8B38B1B35AC21295DADFC43F81B2AF8 +SHA256 digest for GSM: 311BCF510B7B189AE9A75C56C4D2F99F844114CC5AD32329FAD690BA1F10422A [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 8cb9dbc..696d771 100644 --- a/packages/SHA256_for_packages.txt +++ b/packages/SHA256_for_packages.txt @@ -1,3 +1,6 @@ +/* 20210722 */ +311BCF510B7B189AE9A75C56C4D2F99F844114CC5AD32329FAD690BA1F10422A + /* 20210719 */ GSM: 4322D79C382B9D58EF5E51AFD0856331F8B38B1B35AC21295DADFC43F81B2AF8 diff --git a/packages/gsm.md b/packages/gsm.md index dbe6a06..cabb1bc 100644 --- a/packages/gsm.md +++ b/packages/gsm.md @@ -8,7 +8,7 @@ --- -# The GSM package [ver. 0.11] ############################################### +# The GSM package [ver. 0.12] ############################################### 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: -`4322D79C382B9D58EF5E51AFD0856331F8B38B1B35AC21295DADFC43F81B2AF8` +`311BCF510B7B189AE9A75C56C4D2F99F844114CC5AD32329FAD690BA1F10422A` ## >>> `%GSM()` macro: <<< ####################### diff --git a/packages/gsm.zip b/packages/gsm.zip index f7e6fde8bf3c2bd095a5564a7596d33eca120ee4..b2de5599fc5816ae2a239c4718debf51e067cb82 100644 GIT binary patch delta 9017 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 delta 8875 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