]> Creatis software - bbtk.git/commitdiff
#3519 box std Encrypting
authoreduardo.davila@creatis.insa-lyon.fr <eduardo.davila@creatis.insa-lyon.fr>
Thu, 13 Jun 2024 06:25:57 +0000 (08:25 +0200)
committereduardo.davila@creatis.insa-lyon.fr <eduardo.davila@creatis.insa-lyon.fr>
Thu, 13 Jun 2024 06:25:57 +0000 (08:25 +0200)
kernel/src/bbtkBlackBox.cxx
packages/std/src/bbstdAdd.xml
packages/std/src/bbstdEncrypting.cxx
packages/std/src/bbstdEncrypting.h
packages/vtk/src/bbvtkRescaleSlopeIntercept.cxx

index 88cde1317bcb0f968b3d7a1222d71c5054292d06..342da2cafeebf09e783a3d76a4a1514e51231658 100644 (file)
@@ -749,7 +749,7 @@ namespace bbtk
                        {
 
 //printf("EED BlackBox::bbRecursiveExecute bbProcess start %s \n", bbGetFullName().c_str() );
-
+                
 //auto start = std::chrono::high_resolution_clock::now();
                 this->bbProcess();
 //auto stop       = std::chrono::high_resolution_clock::now();
index a085e87ff6df3e49c22dd81914cd4a0e449f4293..c12d9bc8affbd744508e361d7f3f47219bf91129 100644 (file)
@@ -3,7 +3,7 @@
 <blackbox name="Add">
 
   <author>laurent.guigues@creatis.insa-lyon.fr </author>
-  <description>Adds its inputs                 </description>
+  <description>(C++,Python) Adds its inputs                 </description>
   <category>math                               </category>
 
   <input name="In1"  type="double" description="First number to add"/>
index f20d64dcc271b106ce33815826410f8c71d8cbac..c787af8e488989d7cf8d8961ae1713ae56a27c67 100644 (file)
@@ -4,6 +4,8 @@
 #include "bbstdEncrypting.h"
 #include "bbstdPackage.h"
 
+#include "bbtkBlackBoxInputConnector.h"
+
 
 #include <iostream>
 #include <string>
@@ -12,6 +14,8 @@
 namespace bbstd
 {
 
+class Connection;
+
 //
 //
 // https://stackoverflow.com/questions/66380465/c-encoding-decoding
@@ -25,8 +29,6 @@ public:
     virtual std::string decode(std::string secret) = 0;
 };
 
-
-
 class shift_encryptor : public encryptor
 {
     int shift;
@@ -43,9 +45,20 @@ public:
     {
         // Your code starts here
             
-            char c_original[74] =  { ' ', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j','k', 'l', 'm', 'n', 'o', 'p', 'q','r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9','.',',',':',';','@','*','$','/','-','_','A','B','C','D','E','J','G','H','I','J', 'K','L','M','N','O','P','Q', 'R','S','T','U', 'V','W','X', 'Y','Z' };
-
-            
+            char c_original[73] = {     
+                ' ', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i',
+                'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's',
+                't', 'u', 'v', 'w', 'x', 'y', 'z', '0', '1', '2',
+                '3', '4', '5', '6', '7', '8', '9', '.', ',', ':',
+                ';', '@', '*', '$', '/', '-', '_', 'A', 'B', 'C',
+                'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M',
+                'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W',
+                'X', 'Y', 'Z' };
+
+        
+
+        this->shift = this->shift % 73;
+        
         std::string original_result = "";
         for (int i = 0; i < original.length(); i++)
         {
@@ -70,7 +83,20 @@ public:
     std::string decode(std::string secret)
     {
         // Your code starts here
-        char c_secret[74] =  { ' ', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j','k', 'l', 'm', 'n', 'o', 'p', 'q','r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9','.',',',':',';','@','*','$','/','-','_','A','B','C','D','E','J','G','H','I','J', 'K','L','M','N','O','P','Q', 'R','S','T','U', 'V','W','X', 'Y','Z' };
+        char c_secret[73] = {     
+            ' ', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i',
+            'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's',
+            't', 'u', 'v', 'w', 'x', 'y', 'z', '0', '1', '2',
+            '3', '4', '5', '6', '7', '8', '9', '.', ',', ':',
+            ';', '@', '*', '$', '/', '-', '_', 'A', 'B', 'C',
+            'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M',
+            'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W',
+            'X', 'Y', 'Z' };
+
+        
+        
+        this->shift = this->shift % 73;
+
         std::string secret_result = "";
         for (int i = 0; i < secret.length(); i++)
         {
@@ -106,7 +132,16 @@ public:
     std::string encode(std::string original)
     {
         // Your code starts here
-        char c_original[74] =  { ' ', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j','k', 'l', 'm', 'n', 'o', 'p', 'q','r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9','.',',',':',';','@','*','$','/','-','_','A','B','C','D','E','J','G','H','I','J', 'K','L','M','N','O','P','Q', 'R','S','T','U', 'V','W','X', 'Y','Z' };
+        char c_original[73] =  {     
+                        ' ', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i',
+                        'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's',
+                        't', 'u', 'v', 'w', 'x', 'y', 'z', '0', '1', '2',
+                        '3', '4', '5', '6', '7', '8', '9', '.', ',', ':',
+                        ';', '@', '*', '$', '/', '-', '_', 'A', 'B', 'C',
+                        'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M',
+                        'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W',
+                        'X', 'Y', 'Z' };
+
         std::string original_result = "";
         for (int i = 0; i < original.length(); i++)
         {
@@ -128,7 +163,16 @@ public:
     std::string decode(std::string secret)
     {
         // Your code starts here
-        char c_secret[74] =  { ' ', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j','k', 'l', 'm', 'n', 'o', 'p', 'q','r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9','.',',',':',';','@','*','$','/','-','_','A','B','C','D','E','J','G','H','I','J', 'K','L','M','N','O','P','Q', 'R','S','T','U', 'V','W','X', 'Y','Z' };
+        char c_secret[73] = {     
+            ' ', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i',
+            'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's',
+            't', 'u', 'v', 'w', 'x', 'y', 'z', '0', '1', '2',
+            '3', '4', '5', '6', '7', '8', '9', '.', ',', ':',
+            ';', '@', '*', '$', '/', '-', '_', 'A', 'B', 'C',
+            'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M',
+            'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W',
+            'X', 'Y', 'Z' };
+
         std::string secret_result = "";
         for (int i = 0; i < secret.length(); i++)
         {
@@ -198,7 +242,7 @@ void Encrypting::Process()
     }
     if (bbGetInputType()==2)
     {
-        cypher_encryptor* crypter = new cypher_encryptor("04dw51CeVD23 67W89XYZASTBEfyhazlvjnktbogrumcpiqxs.,:;@*$/-_OHIPKLQRUJGJMNF");
+        cypher_encryptor* crypter = new cypher_encryptor("04dw51CeVD23 67W89XYZASTBEfyhazlvjnktbogrumcpiqxs.,:;@*$/-_OHIPKLQRUJGMNF");
         if (bbGetInputMode()==1)
         {
             bbSetOutputOut ( crypter->encode( bbGetInputIn() ) );
@@ -216,7 +260,36 @@ void Encrypting::Process()
             bbSetOutputOut ( encryptDecrypt( bbGetInputIn() ) );
         }
     }
-    
+
+    if (bbGetInputType()==4)
+    {
+        InputConnectorMapType::iterator i = bbGetInputConnectorMap().find("In");
+        bbtk::Connection *c = i->second->GetConnection();
+        int idchar1 = 0;
+        int idchar2 = 8;
+        int idcode  = 8;
+        if (c!=NULL)
+        {
+            int pos             = c->GetBlackBoxFrom()->bbGetFullName().find("<");
+            std::string idstr1  = c->GetBlackBoxFrom()->bbGetFullName().substr(pos-2,2);
+            idchar1         = std::stoi( idstr1 );
+            std::string idstr2  = c->GetBlackBoxFrom()->bbGetFullName().substr(pos-1,1);
+            idchar2 = idstr2.at(0);
+            idcode = idchar1 + idchar2;
+        }
+
+        shift_encryptor* shiftTest = new shift_encryptor(idcode);
+        cypher_encryptor* crypter = new cypher_encryptor("04dw51CeVD23 67W89XYZASTBEfyhazlvjnktbogrumcpiqxs.,:;@*$/-_OHIPKLQRUJGMNF");
+        if (bbGetInputMode()==1)
+        {
+            bbSetOutputOut ( shiftTest->encode(  crypter->encode( bbGetInputIn() ))  );
+        } // if
+        if (bbGetInputMode()==2)
+        {
+            bbSetOutputOut ( crypter->decode( shiftTest->decode( bbGetInputIn() )) );
+        } // if
+    }
+
     
     /*
         encodeResult = shiftTest->encode("hello world");
index 85922e1909db829045ab7c5a31c9335f6bb95563..a8b53c79b3d0abc439eb9bfe2afc95508db98207 100644 (file)
@@ -37,7 +37,7 @@ BBTK_BEGIN_DESCRIBE_BLACK_BOX(Encrypting,bbtk::AtomicBlackBox);
   BBTK_CATEGORY("empty");
   BBTK_INPUT(Encrypting,In,"Input string",std::string,"");
   BBTK_INPUT(Encrypting,Mode,"(default 0) 0:Nothing Type1: 0_Nothing 1_Encode 2_Decode   Type2: 0_Nothing 1_Encode 2_Decode  Type3: 0_Nothing 1:EncodeDecode",int,"");
-  BBTK_INPUT(Encrypting,Type,"(default 0) 0:Nothing 1:shiftTest(LowerCase) 2:cypher_encryptor(LowerCase) 3:EncodeDecode",int,"");
+  BBTK_INPUT(Encrypting,Type,"(default 0) 0:Nothing 1:shiftTest(LowerCase) 2:cypher_encryptor(LowerCase) 3:EncodeDecode  4:EncodeDecode2",int,"");
   BBTK_OUTPUT(Encrypting,Out,"Output string",std::string,"");
 BBTK_END_DESCRIBE_BLACK_BOX(Encrypting);
 //===== 
index 4117fdfd60750c9e56acc9ff36f745ae2d7c9de0..5c7eb64165a54aa8bac28ee51f2683c66e7d6180 100644 (file)
@@ -149,7 +149,6 @@ void RescaleSlopeIntercept::Process()
 //===== 
 void RescaleSlopeIntercept::bbUserSetDefaultValues()
 {
-
 //  SET HERE THE DEFAULT INPUT/OUTPUT VALUES OF YOUR BOX 
 //    Here we initialize the input 'In' to 0
        bbSetInputIn(NULL);
@@ -161,7 +160,8 @@ void RescaleSlopeIntercept::bbUserSetDefaultValues()
        filter2 = NULL;
        mchange = NULL;
 }
-//===== 
+
+//=====
 // Don't edit this file. This file is generated from xml description.. 
 //===== 
 void RescaleSlopeIntercept::bbUserInitializeProcessing()
@@ -174,12 +174,12 @@ void RescaleSlopeIntercept::bbUserInitializeProcessing()
        filter2 = vtkImageShiftScale::New();
        mchange = vtkImageChangeInformation::New();
 }
-//===== 
+
+//=====
 // Don't edit this file. This file is generated from xml description.. 
 //===== 
 void RescaleSlopeIntercept::bbUserFinalizeProcessing()
 {
-
 //  THE FINALIZATION METHOD BODY :
 //    Here does nothing 
 //    but this is where you should desallocate the internal/output pointers 
@@ -189,7 +189,6 @@ void RescaleSlopeIntercept::bbUserFinalizeProcessing()
        filter2->Delete();
 }
        
-}
-// EO namespace bbvtk
+}// EO namespace bbvtk