Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Имеется сторонняя DLL, не имеющая к php отношения. Возможно ли "подключить"?

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Михаил_25
Отправлено: 17 Февраля, 2011 - 17:48:27
Post Id


Новичок


Покинул форум
Сообщений всего: 7
Дата рег-ции: Февр. 2011  


Помог: 0 раз(а)




имеется такой вот скрипт не на php


CODE (javascript):
скопировать код в буфер обмена
  1. // Оригинальное сообщение
  2. var doc="Hello world";
  3.  
  4.  
  5. // Загружаем объект закрытого ключа (для формирования подписи)
  6. var UserSecretKey=new ActiveXObject ("Libipriv.SecretKey");
  7. // Загружаем объект открытого ключа (для проверки подписи)
  8. var UserPublicKey=new ActiveXObject ("Libipriv.PublicKey");
  9. // Загружаем объект для работы с ЭЦП
  10. var Signer=new ActiveXObject ("Libipriv.Signer");
  11.  
  12. // Загружаем закрытый ключ из файла "secret.key", кодовая фраза - "1111111111"
  13. if(UserSecretKey.LoadFromFile("secret.key","1111111111"))
  14. {
  15. // Загружаем открытый ключ из файла "pubkeys.key" с серийным номером "17033"
  16.         if(UserPublicKey.LoadFromFile("pubkeys.key",17033))
  17.         {
  18. // Подписываем оригинальное сообщение закрытым ключем
  19.                 var signmessage=Signer.Sign(doc,UserSecretKey);
  20.                 if(signmessage!="")
  21.                 {
  22.                         WScript.Echo(signmessage);
  23. // Проверяем подпись открытым ключем
  24.                         var message=Signer.Verify(signmessage,UserPublicKey);
  25.                         if(message!="")
  26.                                 WScript.Echo(message);
  27.                         else WScript.Echo(Signer.ErrMsg);
  28.                 }else WScript.Echo(Signer.ErrMsg);
  29.         }else WScript.Echo(UserPublicKey.ErrMsg);
  30. }else WScript.Echo(UserSecretKey.ErrMsg);
Так же есть файл libipriv.dll
===========

Возможно ли всё это произвести силами на php, прицепив к нему этот DLL?
Уточнение: это демонстрационный скрипт подписания тестовыми ключами сообщения на киберплате, от терминала к серверу

***
Сам ключик secret.key не стандартный - продукт сил программеров киберплата, как и dll libipriv.dll

0000051701NM00000381000002730000 0000
api17032 00017033
00000000
BEGIN
lQEEAwAAQok95z4+AAABAgDrzoyI24MItz/UdYrV7as4xrjhjpYqBG3Owb7dP1pE
p6Dz4MLJkdWzm+ccjy3pTmjgvqfnaAnRyID4nrwQ9+p9AAURATXU8D817k6vAfqv
qaNX3nRlR6EMHSyDSoMzeMYZ64D5OgHqIt+rnqRLqApwk5tP5ewscxfr6coACuF5
qLJAKmAtwHRZnY8cWgKzAQBMyV0nshDFbN7+biMSPGobWjhhQ8GlVfi1636/FZqe
TQEApdjYa7cCBMKNdJojykQ977wVZpcY zDZ0zIWBRhfLez0BAPTvT/ipmFxcjtGG
z0sFSYk7QVaXIoCIdugQbd4Z+iq8TPK0CGFwaTE3MDMy
=Uxun
END
BEGIN SIGNATURE

END SIGNATURE
====


Отредактировано модератором: JustUserR, 18 Февраля, 2011 - 10:23:32
Обрамил листинг элемента Windows Script Host JS-code в соответствующий BB-тег
 
 Top
JustUserR
Отправлено: 18 Февраля, 2011 - 10:28:00
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




Михаил_25 пишет:
Возможно ли всё это произвести силами на php, прицепив к нему этот DLL?
Использование инстанции PHP-интерпретатор для операционной системы windows предполагает возможность осуществления взаимодействия с зарегистрированными в системе службами и активными элементами на основании оригинального COM-интерфейса - для обеспечения возможности интеграции требуемых объектов с реализацией их уровня элементного трактования в виде локальных ресурсов PHP-приложения возможно использование данной группы функций http://php.su/functions/?cat=com - кроме того возможно применение интерфейса непосредственного взаимодействия со скомпилированными объектами на основе Win32API взаимодействия предоставляемого в группе функций http://php.su/functions/?cat=w32api


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Михаил_25
Отправлено: 18 Февраля, 2011 - 18:49:21
Post Id


Новичок


Покинул форум
Сообщений всего: 7
Дата рег-ции: Февр. 2011  


Помог: 0 раз(а)




а как узнать к через что может работать (если может) именно этот libipriv.dll ?
сразу скажу, особых познаний на Win32API, и на COM-интерфейса у меня не наблюдается Улыбка
 
 Top
JustUserR
Отправлено: 19 Февраля, 2011 - 21:36:03
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




Михаил_25 пишет:
А как узнать к через что может работать (если может) именно этот libipriv.dll ? Сразу скажу, особых познаний на Win32API, и на COM-интерфейса у меня не наблюдается
В качестве наиболее простого варианта для осуществления решения предполагаеомй задачи допустимо использование средств взаимодействия с системными зарегистрированными активными элементами на основании функциональности поддержки работы COM-интерфейса - в таком случае для осуществления создания ассоциированного PHP-приложения достаточно приведения оригинальный WSH JScript-операций в соответствующим PHP-эквивалентам -
Таким образом в качестве целевого PHP-приложения обеспечивающего решения поставленной задачи может являться следующий эквивалент
PHP:
скопировать код в буфер обмена
  1. $doc="Hello world";
  2. $UserSecretKey=new COM("Libipriv.SecretKey");
  3. $UserPublicKey=new COM("Libipriv.PublicKey");
  4. $Signer=new COM("Libipriv.Signer");
  5. if($UserSecretKey->LoadFromFile("secret.key","1111111111"))
  6. {        if($UserPublicKey->LoadFromFile("pubkeys.key",17033))
  7.         {
  8.                 $signmessage=$Signer->Sign($doc,$UserSecretKey);
  9.                 if($signmessage!="")
  10.                 {
  11.                         echo $signmessage;
  12.                         $message=$Signer->Verify($signmessage,$UserPublicKey);
  13.                         if($message!="")
  14.                                 echo $message;
  15.                         else echo $Signer->ErrMsg;
  16.                 }else echo $Signer->ErrMsg;
  17.         }else echo $UserPublicKey->ErrMsg;
  18. }else echo $UserSecretKey->ErrMsg);


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Михаил_25
Отправлено: 22 Февраля, 2011 - 05:43:33
Post Id


Новичок


Покинул форум
Сообщений всего: 7
Дата рег-ции: Февр. 2011  


Помог: 0 раз(а)




удивительно, но я удалил скобку ) на строке 18, выполнил

copy libipriv.dll %SystemRoot%\System32
regsvr32.exe %SystemRoot%\System32\libipriv.dll

и всё получилось подписывать! УРА!
а до этого мучался через Win32API - почему то это уже не работает в 5-ой версии php


JustUserR, в целом, готов выслать $ за оказанную помощь на пиво!

(Отредактировано автором: 22 Февраля, 2011 - 16:54:03)

 
 Top
JustUserR
Отправлено: 23 Февраля, 2011 - 19:39:46
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




Михаил_25 пишет:
JustUserR, в целом, готов выслать $ за оказанную помощь на пиво!
Преимуществом использование унифицированных технологий взаимодействия, таких как зарегистрированные в операционной системе активные варианты ActiveX и COM-элементов, является возможность осуществление взаимодействия с ними по единому формату, во всех приложениях обеспечивающих возможность включения объекта в соответствующей локальном элементном уровне трактования


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
jip
Отправлено: 01 Марта, 2011 - 08:20:10
Post Id


Новичок


Покинул форум
Сообщений всего: 1
Дата рег-ции: Март 2011  


Помог: 0 раз(а)




Михаил_25 пишет:
продукт сил программеров киберплата
Вы в исходники-то смотрели?

По теме. Когда-то написал PHP-extension php_ipriv.dll (php_ipriv.so), который осуществляет интерфейс "PHP - libipriv.dll (libipriv.so)". Технологии ActiveX и COM при этом не используются. Просто собираете под целевую платформу (Windows, Linux, без разницы), нацеливаете на него php.ini - и можете работать с CyberPlat через PHP.

Предложения о покупке можно направлять на мыло. Можно в виде собранной либы (1 k$), можно с исходниками (2 k$).
 
 Top
JustUserR
Отправлено: 02 Марта, 2011 - 15:43:18
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




jip пишет:
Нацеливаете на него php.ini - и можете работать с CyberPlat через PHP
Для осуществления возможности подключения дополнительной активной библиотек к функционирующей инстанции PHP-интерпретатора, необходимо обеспечение построение функциональных элементов библиотеки в соответствии с Zend-интерфейсом, что позволяет производить интеграцию генерируемых объектов в уровень трактования исполняемых конструкционных объектов конечного приложения; подключение к локальной инстанции PHP-интерпретатора произвольной DLL-библиотеки, рассматриваемой в данном потоке дискуссии, не является возможным без осуществления дополнительных интеграционных действий


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
den_nn
Отправлено: 05 Марта, 2012 - 21:20:03
Post Id


Новичок


Покинул форум
Сообщений всего: 1
Дата рег-ции: Март 2012  


Помог: 0 раз(а)




Михаил_25 пишет:
удивительно, но я удалил скобку ) на строке 18, выполнил

copy libipriv.dll %SystemRoot%\System32
regsvr32.exe %SystemRoot%\System32\libipriv.dll

и всё получилось подписывать! УРА!
а до этого мучался через Win32API - почему то это уже не работает в 5-ой версии php


JustUserR, в целом, готов выслать $ за оказанную помощь на пиво!


А почему браузер страницу не открывает? Просто подвисает. Не было такого ?
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB