Metadata-Version: 2.1
Name: cryptoblocks64
Version: 0.0.2
Summary: A collection of common cryptography related functions but in B64 operation format
Home-page: https://github.com/ApratimR/crypto_blocks
Author: Apratim Ray
Author-email: apratimr55@gmail.com
License: UNKNOWN
Description: Crypto Blocks is a simple package that consists of various fundamental functions for building cryptogaphic algorithms.
        
        ### It provides:
        
        * Various general functions required for creating your own Cryptographic algorithm.
        * Functions are Classified into classes for ease of use.
        * instead of operating on a single bit this edition works in B64 style (instead of {0 or 1} its **{0,....,63}** values per element)
        * Provides easy encoding conversion,S&P Box generation,and many more functions
        
        ## The Structure:
        
        There are total 4 main classes which are:
        * Convert
        * Padding
        * Process
        * Generate
        
        ### **Convert:**
        consists of various datatype and encoding conversion functions
        
        | function | description | code example |
        | :-- | :-- | :-- |
        | string_to_b64 | converts input string to URL-Safe Base64 encoded string. |`encoded_string = cb.convert.string_to_b64(string1)` |
        | b64_to_string |converts only Base64 encoded string back UTF-8 encoded string. |`original_string = cb.convert.b64_to_string(encoded_string)` |
        | string_to_array | converts base64 string to int array with value range 0-63. | `array = cb.convert.string_to_array(encoded_string)` |
        |array_to_string|converts int array with value range 0-63 back to UTF-8 string.|`encoded_string = cb.convert.string_to_array(array)`|
        
        ### **Padding:**
        consists of array padding and removing function. works in PKCS style.
        
        | function | description | code example |
        | :-- | :-- | :-- |
        |pad|padd's the array in PKCS standard to lenght specified by user.|`array_with_padding = cb.padding.pad(array_without_padding,block_size)`|
        |pad_REMOVE|removes the padding from the array.|`array_without_padding = cb.padding.pad_REMOVE(array_with_padding)`|
        
        
        ### **Process:**
        consists of general cryptography related math functions.
        
        | function | description | code example |
        | :-- | :-- | :-- |
        |XOR_array|performs XOR between two arrays of same length.|`XOR_of_arrays = cb.process.XOR_array(array1,array2)`|
        |ADD_array|performs ADD between (array1,array2) of same lengh with (mod 64).|`ADD_of_arrays = cb.process.ADD_array(array1,array2)`|
        |shift|performs shift operation on array in left or right direction by specified amount.|`shifted_array = cb.process.shift(array1,shiftamount,direction)`|
        |s_box|performs substititution on the array with reference from sbox array.|`substituted_array = cb.process.s_box(array1,s_box)`|
        |p_box|performs permutation on the array with reference from pbox array.|`permutated_array = cb.process.p_box(array1,p_box)`|
        |swap_half|swaps the two half in the array (use `shift` if you want to swat at custom position).|`swapped_array = cb.process.swap_half(array1)`|
        
        ### **Gnerate:**
        consists of tools to generate string,arrays and S&P Box generators with cryptographically secure methods.
        
        | function | description | code example |
        | :-- | :-- | :-- |
        |box_generate|generates an array of size mentioned with elements from {0,size-1} in random order and also returns its inverse.|`s_box,inv_s_box=cb.generate.box_generate(boxsize)`|
        |string_generate|generates a string of mentiond size with random base64 characters|`random_string=cb.generate.string_generate(stringsize)`|
        |array_generate|generates a numpy array of lenght (size) with value between {0,63}.|`random_array=cb.generate.array_generate(arraysize)`|
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
Classifier: Operating System :: OS Independent
Requires-Python: >=3.6
Description-Content-Type: text/markdown
