mitao
2024-07-08 022a7ff7abf82cd2546e18071ade5228b4e2339f
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
/*!
 * Crypto-JS v1.1.0
 * http://code.google.com/p/crypto-js/
 * Copyright (c) 2009, Jeff Mott. All rights reserved.
 * http://code.google.com/p/crypto-js/wiki/License
 */
(function(){
 
// Public API
Crypto.mode.OFB = {
    encrypt: OFB,
    decrypt: OFB
};
 
// The mode function
function OFB(cipher, m, iv) {
 
    var blockSizeInBytes = cipher._blocksize * 4,
        keystream = iv.slice(0);
 
    // Encrypt each byte
    for (var i = 0; i < m.length; i++) {
 
        // Generate keystream
        if (i % blockSizeInBytes == 0)
            cipher._encryptblock(keystream, 0);
 
        // Encrypt byte
        m[i] ^= keystream[i % blockSizeInBytes];
 
    }
 
}
 
})();