ideacipher.bmx 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. '
  2. ' Copyright (C) 2019-2020 Bruce A Henderson
  3. '
  4. ' This software is provided 'as-is', without any express or implied
  5. ' warranty. In no event will the authors be held liable for any damages
  6. ' arising from the use of this software.
  7. '
  8. ' Permission is granted to anyone to use this software for any purpose,
  9. ' including commercial applications, and to alter it and redistribute it
  10. ' freely, subject to the following restrictions:
  11. '
  12. ' 1. The origin of this software must not be misrepresented; you must not
  13. ' claim that you wrote the original software. If you use this software
  14. ' in a product, an acknowledgment in the product documentation would be
  15. ' appreciated but is not required.
  16. ' 2. Altered source versions must be plainly marked as such, and must not be
  17. ' misrepresented as being the original software.
  18. ' 3. This notice may not be removed or altered from any source distribution.
  19. '
  20. SuperStrict
  21. Rem
  22. bbdoc: IDEA Symmetric Key Block Cipher.
  23. about: Operates on 64-bit blocks using a 128-bit key.
  24. See https://en.wikipedia.org/wiki/International_Data_Encryption_Algorithm
  25. End Rem
  26. Module Crypto.IdeaCipher
  27. ModuleInfo "CC_OPTS: -DLTC_NO_TEST -DLTC_NO_FILE"
  28. ModuleInfo "CC_OPTS: -DLTC_IDEA"
  29. Import "common.bmx"
  30. New TIdeaCipherFactory(bmx_crypto_idea_register())
  31. Type TIdeaCipher Extends TCipher
  32. Method KeySize:Int(key:Int) Override
  33. Return bmx_crypto_idea_keysize(key)
  34. End Method
  35. Method Name:String() Override
  36. Return "idea"
  37. End Method
  38. End Type
  39. Type TIdeaCipherFactory Extends TCipherFactory
  40. Method Find:TCipher(index:Int) Override
  41. If index = Self.index Then
  42. Return New TIdeaCipher(index)
  43. End If
  44. End Method
  45. End Type