Advertisement
Guest User

Untitled

a guest
Oct 26th, 2016
52
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.44 KB | None | 0 0
  1. private byte[] EnvelopeData(byte[] data, X509Certificate certificate)
  2. {
  3. try
  4. {
  5. var generator = new CmsEnvelopedDataGenerator();
  6. generator.AddKeyTransRecipient(certificate);
  7.  
  8. var envelopedData = generator.Generate(new CmsProcessableByteArray(data), CmsEnvelopedGenerator.DesEde3Cbc);
  9. return envelopedData.GetEncoded();
  10. }
  11. catch (Exception e)
  12. {
  13. Logger.Error(e);
  14. return null;
  15. }
  16. }
  17.  
  18. try
  19. {
  20. cipherAlgorithm = (CipherAlgorithm)Enums.GetEnumValue(typeof(CipherAlgorithm), algorithmName);
  21. }
  22. catch (ArgumentException)
  23. {
  24. throw new SecurityUtilityException("Cipher " + algorithm + " not recognised.");
  25. }
  26.  
  27. switch (cipherAlgorithm)
  28. {
  29. case CipherAlgorithm.AES:
  30. blockCipher = new AesFastEngine();
  31. break;
  32. case CipherAlgorithm.ARC4:
  33. streamCipher = new RC4Engine();
  34. break;
  35. case CipherAlgorithm.BLOWFISH:
  36. blockCipher = new BlowfishEngine();
  37. break;
  38. case CipherAlgorithm.CAMELLIA:
  39. blockCipher = new CamelliaEngine();
  40. break;
  41. case CipherAlgorithm.CAST5:
  42. blockCipher = new Cast5Engine();
  43. break;
  44. case CipherAlgorithm.CAST6:
  45. blockCipher = new Cast6Engine();
  46. break;
  47. case CipherAlgorithm.DES:
  48. blockCipher = new DesEngine();
  49. break;
  50. case CipherAlgorithm.DESEDE:
  51. blockCipher = new DesEdeEngine();
  52. break;
  53. case CipherAlgorithm.ELGAMAL:
  54. asymBlockCipher = new ElGamalEngine();
  55. break;
  56. case CipherAlgorithm.GOST28147:
  57. blockCipher = new Gost28147Engine();
  58. break;
  59. case CipherAlgorithm.HC128:
  60. streamCipher = new HC128Engine();
  61. break;
  62. case CipherAlgorithm.HC256:
  63. streamCipher = new HC256Engine();
  64. break;
  65. case CipherAlgorithm.IDEA:
  66. blockCipher = new IdeaEngine();
  67. break;
  68. case CipherAlgorithm.NOEKEON:
  69. blockCipher = new NoekeonEngine();
  70. break;
  71. case CipherAlgorithm.PBEWITHSHAAND128BITRC4:
  72. case CipherAlgorithm.PBEWITHSHAAND40BITRC4:
  73. streamCipher = new RC4Engine();
  74. break;
  75. case CipherAlgorithm.RC2:
  76. blockCipher = new RC2Engine();
  77. break;
  78. case CipherAlgorithm.RC5:
  79. blockCipher = new RC532Engine();
  80. break;
  81. case CipherAlgorithm.RC5_64:
  82. blockCipher = new RC564Engine();
  83. break;
  84. case CipherAlgorithm.RC6:
  85. blockCipher = new RC6Engine();
  86. break;
  87. case CipherAlgorithm.RIJNDAEL:
  88. blockCipher = new RijndaelEngine();
  89. break;
  90. case CipherAlgorithm.RSA:
  91. asymBlockCipher = new RsaBlindedEngine();
  92. break;
  93. case CipherAlgorithm.SALSA20:
  94. streamCipher = new Salsa20Engine();
  95. break;
  96. case CipherAlgorithm.SEED:
  97. blockCipher = new SeedEngine();
  98. break;
  99. case CipherAlgorithm.SERPENT:
  100. blockCipher = new SerpentEngine();
  101. break;
  102. case CipherAlgorithm.SKIPJACK:
  103. blockCipher = new SkipjackEngine();
  104. break;
  105. case CipherAlgorithm.TEA:
  106. blockCipher = new TeaEngine();
  107. break;
  108. case CipherAlgorithm.THREEFISH_256:
  109. blockCipher = new ThreefishEngine(ThreefishEngine.BLOCKSIZE_256);
  110. break;
  111. case CipherAlgorithm.THREEFISH_512:
  112. blockCipher = new ThreefishEngine(ThreefishEngine.BLOCKSIZE_512);
  113. break;
  114. case CipherAlgorithm.THREEFISH_1024:
  115. blockCipher = new ThreefishEngine(ThreefishEngine.BLOCKSIZE_1024);
  116. break;
  117. case CipherAlgorithm.TNEPRES:
  118. blockCipher = new TnepresEngine();
  119. break;
  120. case CipherAlgorithm.TWOFISH:
  121. blockCipher = new TwofishEngine();
  122. break;
  123. case CipherAlgorithm.VMPC:
  124. streamCipher = new VmpcEngine();
  125. break;
  126. case CipherAlgorithm.VMPC_KSA3:
  127. streamCipher = new VmpcKsa3Engine();
  128. break;
  129. case CipherAlgorithm.XTEA:
  130. blockCipher = new XteaEngine();
  131. break;
  132. default:
  133. throw new SecurityUtilityException("Cipher " + algorithm + " not recognised.");
  134. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement