Hash.swift 802 B

123456789101112131415161718192021222324252627282930313233
  1. //
  2. // CryptoHash.swift
  3. // CryptoSwift
  4. //
  5. // Created by Marcin Krzyzanowski on 07/08/14.
  6. // Copyright (c) 2014 Marcin Krzyzanowski. All rights reserved.
  7. //
  8. import Foundation
  9. public enum Hash {
  10. case md5
  11. case sha1, sha224, sha256, sha384, sha512
  12. public func calculate(data: NSData) -> NSData! {
  13. switch self {
  14. case md5:
  15. return MD5(data).calculate()
  16. case sha1:
  17. return SHA1(data).calculate()
  18. case sha224:
  19. return SHA2(data).calculate32(.sha224)
  20. case sha256:
  21. return SHA2(data).calculate32(.sha256)
  22. case sha384:
  23. return SHA2(data).calculate64(.sha384)
  24. case sha512:
  25. return SHA2(data).calculate64(.sha512)
  26. default:
  27. return nil
  28. }
  29. }
  30. }