Просмотр исходного кода

Move HMAC calculation outside iteration loop to improve performance.

Marcin Krzyżanowski 9 лет назад
Родитель
Сommit
21a1319b5d
1 измененных файлов с 1 добавлено и 1 удалено
  1. 1 1
      Sources/CryptoSwift/PKCS5/PBKDF2.swift

+ 1 - 1
Sources/CryptoSwift/PKCS5/PBKDF2.swift

@@ -94,8 +94,8 @@ fileprivate extension PKCS5.PBKDF2 {
             if self.iterations > 1 {
             if self.iterations > 1 {
                 // U_2 = PRF (P, U_1) ,
                 // U_2 = PRF (P, U_1) ,
                 // U_c = PRF (P, U_{c-1}) .
                 // U_c = PRF (P, U_{c-1}) .
+                u = try prf.authenticate(u)
                 for _ in 2...self.iterations {
                 for _ in 2...self.iterations {
-                    u = try prf.authenticate(u)
                     for x in 0..<ret.count {
                     for x in 0..<ret.count {
                         ret[x] = ret[x] ^ u[x]
                         ret[x] = ret[x] ^ u[x]
                     }
                     }