Просмотр полной версии : Поделитесь классом для работы с RSA
Уже не первый день сижу и изобретаю велосипед.
Написал процедуру генерации ключей, но с процедурой шифрования сплошные траблы.
Использую библиотеку gmp для работы с большими числами, но лучше бы от нее избавиться.
Прошу ссылок на вменяемые классы для работы с RSA
Мне нужен класс только для RSA. Без сторонних библиотек и наворотов.
ну подруби только то, что нужно, из хедеров.
Всеравно эта либа огромная. Вчера полвечера проплясал с бубном в одной руке и напильником в другой, пытаясь скомпилить OpenSSL без лишних модулей. MD5, HMAC и SHA отключить так и не удалось. В итоге получилась либа libcrypto.a 2Мб и libssl.a 390Кб, а простой экзешник с генерацией ключей и шифрованием файла занимает 700+ Кб.
Еще линкер требует из-за libcrypto подключать libgdi32, т.к. отсутствуют функции CreateDC и т.п.
К плюсам OpenSSL можно отнести простоту написания программы, все очень удобно.
Но мне придется искать другие варианты. Кроме OpenSSL еще что-нибудь можете посоветовать?
Вот релиз от z0mbie, но на TASM32: http://z0mbie.daemonlab.org/rsalib6.zip
Размер 3Кб, но как его приделать к проекту на C++?
; input:
; IN ECX = length = l (in BITs)
; IN ESI[ECX] = dividend = x
; IN EDI[ECX] = divisor = y
; OUT EAX[ECX] = result = d
; OUT EDX[ECX] = remainder = m
; modify:
; none
x = [esp].pusha_esi
y = [esp].pusha_edi
d = [esp].pusha_eax
m = [esp].pusha_edx
divmod: pusha
lea ebx, [ecx-1] ; for (i=KEYLEN-1; i>=0; i--)
shr ecx, 5 ; EBP = length in DWORD's
mov ebp, ecx
mov edi, eax ; d = 0
xor eax, eax
rep stosd
mov edi, edx ; m = 0
mov ecx, ebp
rep stosd
__main_cycle: ; {//for i
mov edi, d ; d <<= 1
mov ecx, ebp
clc
RCL_CYCLE
mov eax, x ; CF = x.bit[i]
bt [eax], ebx
; CF
mov edi, edx ; m = (m << 1) | CF
mov ecx, ebp
RCL_CYCLE
mov edi, edx ; if (m >= y)
mov esi, y ; {
mov ecx, ebp
CMP_CYCLE __b, __ae
__ae:
mov ecx, ebp ; m -= y
clc
SBB_CYCLE
mov eax, d ; d |= 1
or byte ptr [eax], 1
__b: ; }
dec ebx
jns __main_cycle ; }//for i
popa
retn
Если деление реализовано так, то работать оно будет меедлеенно
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot