Skip to content
SerjiEvg edited this page Feb 11, 2016 · 17 revisions

Класс 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

setInitializationVector(iv : DES_cblock) 

функция устанавливает вектор инициализации в контекст алгоритма шифрования.

getInitializationVector

getInitializationVector() : DES_cblock

функция возвращает вектор инициализации из контекста алгоритма шифрования.

getInitializationVectorLength

getInitializationVectorLength() : number

функция возвращает размер вектора инициализации, устанавливаемый функцией setInitializationVector.

setCipherSuite

setCipherSuite(сipherSuite : string) 

функция производит инициализацию контекста шифрования для указанного алгоритма. сipherAlgorithm - наименование алгоритма и режима.

getAlgorithm

getAlgorithm() : string

функция возвращает алгоритм шифрования. Например, "DES".

setAlgorithm

setAlgorithm(chipherAlgorithm : string) 

функция устанавливает алгоритм шифрования. Например, "DES".

getMode

getMode() : string

функция возвращает режим шифрования.

setMode

setMode(chipherMode : string) 

функция возвращает режим шифрования. Например, "CBC".

getCryptoMethod

getCryptoMethod() : string

функция возвращает выбранную категорию методов шифрования: symmetric (шифрование на симметричных алгоритмах), assymetric (шифрование c использованием ключевой пары).

setCryptoMethod

setCryptoMethod(сryptoMethod : string) 

функция устанавливает категорию методов шифрования. Например, "symmetric".

encrypt

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

decrypt(inBuffer : Buffer, outBuffer: Buffer) 

функция выполняет дешифрование данных.