PaddingTests.swift 2.2 KB

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