     }
 
     deinit {
-        if self.cryptor != CCCryptorRef() {
-            CCCryptorRelease(self.cryptor)
+        if cryptor != CCCryptorRef() {
+            CCCryptorRelease(cryptor)
         }
     }
 


    func updateWithData(data: NSData) throws -> NSData {
        let overflow = buffer.updateWithData(data)
        self.hmac.updateWithData(overflow)
        return try engine.updateWithData(overflow)
    }

    func finalData() throws -> NSData {
        let result = try engine.finalData()
        let hash = hmac.finalData()
        if !isEqualInConsistentTime(trusted: hash, untrusted: self.buffer.finalData()) {
            throw RNCryptorError.HMACMismatch
        }
        return result

    }

    func updateWithData(data: NSData) {
        CCHmacUpdate(&context, data.bytes, data.length)
    }
    
    func finalData() -> NSData {
        let hmac = NSMutableData(length: V3.hmacSize)!
        CCHmacFinal(&context, hmac.mutableBytes)
        return hmac
    }
}
