PaddingTests.swift 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. //
  2. // CryptoSwift
  3. //
  4. // Created by Marcin Krzyzanowski on 27/12/14.
  5. // Copyright (C) 2014-2017 Krzyzanowski. All rights reserved.
  6. //
  7. import XCTest
  8. @testable import CryptoSwift
  9. final class PaddingTests: XCTestCase {
  10. func testPKCS7_0() {
  11. let input: Array<UInt8> = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6]
  12. let expected: Array<UInt8> = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16]
  13. let padded = PKCS7.Padding().add(to: input, blockSize: 16)
  14. XCTAssertEqual(padded, expected, "PKCS7 failed")
  15. let clean = PKCS7.Padding().remove(from: padded, blockSize: nil)
  16. XCTAssertEqual(clean, input, "PKCS7 failed")
  17. }
  18. func testPKCS7_1() {
  19. let input: Array<UInt8> = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5]
  20. let expected: Array<UInt8> = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 1]
  21. let padded = PKCS7.Padding().add(to: input, blockSize: 16)
  22. XCTAssertEqual(padded, expected, "PKCS7 failed")
  23. let clean = PKCS7.Padding().remove(from: padded, blockSize: nil)
  24. XCTAssertEqual(clean, input, "PKCS7 failed")
  25. }
  26. func testPKCS7_2() {
  27. let input: Array<UInt8> = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4]
  28. let expected: Array<UInt8> = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 2, 2]
  29. let padded = PKCS7.Padding().add(to: input, blockSize: 16)
  30. XCTAssertEqual(padded, expected, "PKCS7 failed")
  31. let clean = PKCS7.Padding().remove(from: padded, blockSize: nil)
  32. XCTAssertEqual(clean, input, "PKCS7 failed")
  33. }
  34. func testZeroPadding() {
  35. let input: Array<UInt8> = [1, 2, 3, 4, 5, 6, 7, 8, 9]
  36. let expected: Array<UInt8> = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 0, 0, 0, 0, 0, 0]
  37. let padding = ZeroPadding()
  38. XCTAssertEqual(padding.add(to: input, blockSize: 16), expected, "ZeroPadding failed")
  39. XCTAssertEqual(padding.remove(from: padding.add(to: input, blockSize: 16), blockSize: 16), input, "ZeroPadding failed")
  40. }
  41. static let allTests = [
  42. ("testPKCS7_0", testPKCS7_0),
  43. ("testPKCS7_1", testPKCS7_1),
  44. ("testPKCS7_2", testPKCS7_2),
  45. ("testZeroPadding", testZeroPadding),
  46. ]
  47. }