-
Notifications
You must be signed in to change notification settings - Fork 12
Cipher
Класс для выполнения операций шифрования/расшифрования. Алгоритмы шифрования разделены на категории:
-
Симметричное шифрование.
Алгоритм Наименование режима Параметры DES des-ecb inBuffer, outBuffer, lengthBlock, desKey DES des-ede inBuffer, outBuffer, lengthBlock, desKey, ivec DES des-ede3 inBuffer, outBuffer, lengthBlock, desKey1, desKey2, desKey3, ivec DES des-ede-ecb inBuffer, outBuffer, lengthBlock, desKey, ivec DES des-ede3-ecb inBuffer, outBuffer, lengthBlock, desKey1, desKey2, desKey3, ivec DES des-cfb1 inBuffer, outBuffer, lengthBlock, desKey, ivec, num DES des-cfb8 inBuffer, outBuffer, lengthBlock, desKey, ivec, num DES des-cfb64 inBuffer, outBuffer, lengthBlock, desKey, ivec, num DES des-ede-cfb64 inBuffer, outBuffer, lengthBlock, desKey, ivec, num DES des-ede3-cfb1 inBuffer, outBuffer, lengthBlock, desKey1 , desKey2, desKey2, ivec, num DES des-ede3-cfb8 inBuffer, outBuffer, lengthBlock, desKey1 , desKey2, desKey2, ivec, num DES des-ede3-cfb64 inBuffer, outBuffer, lengthBlock, desKey1 , desKey2, desKey2, ivec, num DES des-ofb inBuffer, outBuffer, lengthBlock, ivec, num DES des-ede3-ofb inBuffer, outBuffer, lengthBlock, desKey1, desKey2, desKey3, ivec, num DES des-cbc inBuffer, outBuffer, lengthBlock, desKey, ivec DES des-ede-cbc inBuffer, outBuffer, lengthBlock, desKey, ivec DES des-ede3-cbc inBuffer, outBuffer, lengthBlock, desKey1, desKey2, desKey3, ivec Параметры: inBuffer : Buffer - входной буфер шифруемых данных, outBuffer : Buffer - выходной буфер с зашифрованными данными, lengthBlock : number - размер данных для шифрования, desKey (desKey1, desKey2, desKey3) : DES_key_schedule - ключи шифрования, ivec : DES_cblock - вектор инициализации, num : number - число используемых байт последнего блока для шифрования.
Режимы: ECB - режим электронной шифровальной книги Electronic Codebook Mode. CBC - режим сцепления шифрованных блоков Cipher Block Chaining Mode. CFB - режим шифрованной обратной связи Cipher Feedback Mode. OFB - режим обратной связи по выходу Output Feedback Mode.
Алгоритм Наименование режима Параметры Blowfish bf-ecb inBuffer, outBuffer, bfKey Blowfish bf-cbc inBuffer, outBuffer, lengthBlock, bfKey, ivec Blowfish bf-cfb64 inBuffer, outBuffer, lengthBlock, bfKey, ivec, num Blowfish bf-ofb64 inBuffer, outBuffer, lengthBlock, bfKey, ivec, num
Параметры: inBuffer : Buffer - входной буфер шифруемых данных, outBuffer : Buffer - выходной буфер с зашифрованными данными, lengthBlock : number - размер данных для шифрования, bfKey : BF_KEY - ключ шифрования, ivec : string - вектор инициализации, num : number - число используемых байт последнего блока для шифрования.
Режимы: ECB - режим электронной шифровальной книги Electronic Codebook Mode. CBC - режим сцепления шифрованных блоков Cipher Block Chaining Mode. CFB - режим шифрованной обратной связи Cipher Feedback Mode. OFB - режим обратной связи по выходу Output Feedback Mode.
Алгоритм | Наименование режима | Параметры |
---|---|---|
AES | aes-ecb | inBuffer, outBuffer, aesKey |
AES | aes-cbc | inBuffer, outBuffer, aesKey |
AES | aes-cfb1 | inBuffer, outBuffer, lengthBlock , aesKey |
AES | aes-cfb8 | inBuffer, outBuffer, lengthBlock , aesKey |
AES | aes-cfb128 | inBuffer, outBuffer, lengthBlock , aesKey |
AES | aes-ofb128 | inBuffer, outBuffer, lengthBlock , aesKey, ivec, num |
Параметры: inBuffer : Buffer - входной буфер шифруемых данных, outBuffer : Buffer - выходной буфер с зашифрованными данными, lengthBlock : number - размер данных для шифрования, aesKey : AES_Key - ключи шифрования, ivec : string - вектор инициализации, num : number - число используемых байт последнего блока для шифрования.
Режимы: ECB - режим электронной шифровальной книги Electronic Codebook Mode. CBC - режим сцепления шифрованных блоков Cipher Block Chaining Mode. CFB - режим шифрованной обратной связи Cipher Feedback Mode. OFB - режим обратной связи по выходу Output Feedback Mode.
- Ассиметричное шифрование. При ассиметричном шифровании используются наименования алгоритмов симметричного шифрования на которых шифруется ключ из приведенных выше таблиц и задается категория шифрования с помощью функции setCryptoMethod.
Название | Тип | Описание |
---|---|---|
getInitializationVector | DES_cblock | возвращает вектор инициализации |
getInitializationVectorLength | number | возвращает размер вектора инициализации |
getState | string | возвращает состояние инициализации |
getAlgorithm | string | возвращает алгоритм шифрования |
getMode | string | возвращает режим шифрования |
Метод | Описание |
---|---|
encrypt | шифрование |
decrypt | дешифрование |
setInitializationVector | устанавливает вектор инициализации |
setAlgorithm | устанавливает алгоритм шифрования |
setMode | устанавливает режим шифрования |
setCryptoMethod | устанавливает категорию криптографических методов шифрования: симметричное или ассиметричное |
cipher()
cipher(сipherSuite : string)
Конструктор класса шифрования/расшифрования. Если используется конструктор с параметром, то происходит инициализация контекста шифрования для указанного алгоритма.
###Пример использования:
var cr = new trusted.Pki.cipher('des-ede-ecb')
var alg = cr.getAlgorithm() //Возвращает 'DES'
var mode = cr.getMode() //Возвращает 'ECB'
setInitializationVector(iv : DES_cblock)
функция устанавливает вектор инициализации в контекст алгоритма шифрования.
getInitializationVector() : DES_cblock
функция возвращает вектор инициализации из контекста алгоритма шифрования.
getInitializationVectorLength() : number
функция возвращает размер вектора инициализации, устанавливаемый функцией setInitializationVector.
setCipherSuite(сipherSuite : string)
функция производит инициализацию контекста шифрования для указанного алгоритма. сipherAlgorithm - наименование алгоритма и режима.
getAlgorithm() : string
функция возвращает алгоритм шифрования. Например, "DES".
setAlgorithm(chipherAlgorithm : string)
функция устанавливает алгоритм шифрования. Например, "DES".
getMode() : string
функция возвращает режим шифрования.
setMode(chipherMode : string)
функция возвращает режим шифрования. Например, "CBC".
getCryptoMethod() : string
функция возвращает выбранную категорию методов шифрования: symmetric (шифрование на симметричных алгоритмах), assymetric (шифрование c использованием ключевой пары).
setCryptoMethod(сryptoMethod : string)
функция устанавливает категорию методов шифрования. Например, "symmetric".
encrypt(inBuffer : Buffer, outBuffer: Buffer)
функция выполняет шифрование данных.
###Пример использования:
var cr = new trusted.Pki.cipher('des-ede3-ecb')
var km = new keyManager('ede3')
km.generateDesKey(1)
km.generateDesKey(2)
km.generateDesKey(3)
encrypt(inBuffer, outBuffer)
decrypt(inBuffer : Buffer, outBuffer: Buffer)
функция выполняет дешифрование данных.