00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00517 #ifndef OpenSOAP_Security_H
00518 #define OpenSOAP_Security_H
00519
00520 #include <stdio.h>
00521 #include <OpenSOAP/Envelope.h>
00522
00523 #ifdef __cplusplus
00524 extern "C" {
00525 #endif
00526
00527 #define OPENSOAP_HA_MD2 (1)
00528
00529 #define OPENSOAP_HA_MD4 (2)
00530
00531 #define OPENSOAP_HA_MD5 (3)
00532
00533 #define OPENSOAP_HA_MDC2 (4)
00534
00535 #define OPENSOAP_HA_RIPEMD (5)
00536
00537 #define OPENSOAP_HA_SHA (6)
00538
00539 #define OPENSOAP_CA_OWNER_LEN (1024)
00540 #define OPENSOAP_CERT_DATE_LEN (14)
00541
00542
00543
00544
00545 typedef struct tagOpenSOAPSecCert OpenSOAPSecCert;
00546
00547 typedef OpenSOAPSecCert* OpenSOAPSecCertPtr;
00548
00549
00550
00551 typedef struct tagOpenSOAPCARec OpenSOAPCARec;
00552
00553 typedef OpenSOAPCARec* OpenSOAPCARecPtr;
00554
00555 int
00556 OPENSOAP_API
00557 OpenSOAPSecGenerateRSAKeys
00558 (const unsigned char* szSeedPhrase,
00559 FILE* fpPrivKey,
00560 FILE* fpPubKey);
00561
00562 int
00563 OPENSOAP_API
00564 OpenSOAPSecGenerateRSAKeysToFile
00565 (const unsigned char* szSeedPhrase,
00566 const char* szPrivKeyFileName,
00567 const char* szPubKeyFileName);
00568
00569 int
00570 OPENSOAP_API
00571 OpenSOAPSecEncWithStream
00572 (OpenSOAPEnvelopePtr env,
00573 FILE* fpPubKey);
00574
00575 int
00576 OPENSOAP_API
00577 OpenSOAPSecEncWithFile
00578 (OpenSOAPEnvelopePtr env,
00579 const char* szPubKName);
00580
00581 int
00582 OPENSOAP_API
00583 OpenSOAPSecDecWithStream
00584 (OpenSOAPEnvelopePtr env,
00585 FILE* fpPrivKey);
00586
00587 int
00588 OPENSOAP_API
00589 OpenSOAPSecDecWithFile
00590 (OpenSOAPEnvelopePtr env,
00591 const char* szPrivKName);
00592
00593 int
00594 OPENSOAP_API
00595 OpenSOAPSecAddSignWithStream
00596 (OpenSOAPEnvelopePtr env,
00597 int iType,
00598 FILE* fpPrivKey,
00599 OpenSOAPStringPtr name);
00600
00601 int
00602 OPENSOAP_API
00603 OpenSOAPSecAddSignWithFile
00604 (OpenSOAPEnvelopePtr env,
00605 int iType,
00606 const char* szPrivKName,
00607 OpenSOAPStringPtr name);
00608
00609 int
00610 OPENSOAP_API
00611 OpenSOAPSecCntSign
00612 (const OpenSOAPEnvelopePtr env,
00613 int* pnSig);
00614
00615 int
00616 OPENSOAP_API
00617 OpenSOAPSecGetSignedByList
00618 (OpenSOAPEnvelopePtr env,
00619 int nCntMax,
00620 OpenSOAPStringPtr list[],
00621 int* pnCntPacked);
00622
00623 int
00624 OPENSOAP_API
00625 OpenSOAPSecVerifySignWithStream
00626 (OpenSOAPEnvelopePtr env,
00627 FILE* fpPubKey);
00628
00629 int
00630 OPENSOAP_API
00631 OpenSOAPSecVerifySignWithFile
00632 (OpenSOAPEnvelopePtr env,
00633 const char* szPubKName);
00634
00635 int
00636 OPENSOAP_API
00637 OpenSOAPSecCertCreateWithStream
00638 (const char* szPublish,
00639 FILE* fpPrivKey,
00640 int iHashType,
00641 const OpenSOAPCARecPtr pRec,
00642 FILE* fpCert);
00643
00644 int
00645 OPENSOAP_API
00646 OpenSOAPSecCertCreateWithFile
00647 (const char* szPublish,
00648 const char* szPrivKeyFile,
00649 int iHashType,
00650 const OpenSOAPCARecPtr pRec,
00651 const char* szCertName);
00652
00653 int
00654 OPENSOAP_API
00655 OpenSOAPSecCertLoadFromMem
00656 (size_t sizArea,
00657 const unsigned char* pucArea,
00658 OpenSOAPSecCertPtr* ppCert);
00659
00660 int
00661 OPENSOAP_API
00662 OpenSOAPSecCertLoad
00663 (const char* szName,
00664 OpenSOAPSecCertPtr* ppCert);
00665
00666 int
00667 OPENSOAP_API
00668 OpenSOAPSecCertFree
00669 (OpenSOAPSecCertPtr ppCert);
00670
00671 int
00672 OPENSOAP_API
00673 OpenSOAPSecCertVerifyWithStream
00674 (FILE* fpCert,
00675 FILE* fpPubKey);
00676
00677 int
00678 OPENSOAP_API
00679 OpenSOAPSecCertVerifyWithFile
00680 (const char* szCertName,
00681 const char* szPubKeyName);
00682
00683 int
00684 OPENSOAP_API
00685 OpenSOAPSecCertGetPublisherName
00686 (OpenSOAPSecCertPtr pCert,
00687 char** pszName);
00688
00689 int
00690 OPENSOAP_API
00691 OpenSOAPSecCertGetSerialNo
00692 (OpenSOAPSecCertPtr pCert,
00693 unsigned long* pulSerial);
00694
00695 int
00696 OPENSOAP_API
00697 OpenSOAPSecCertGetOwnerName
00698 (OpenSOAPSecCertPtr pCert,
00699 char** pszName);
00700
00701 int
00702 OPENSOAP_API
00703 OpenSOAPSecCertGetEndDate
00704 (OpenSOAPSecCertPtr pCert,
00705 char** pszDate);
00706
00707 int
00708 OPENSOAP_API
00709 OpenSOAPSecCertGetPubKey
00710 (OpenSOAPSecCertPtr pCert,
00711 const char* szSaveName);
00712
00713 int
00714 OPENSOAP_API
00715 OpenSOAPSecDecodeKeyFile
00716 (FILE* fp,
00717 unsigned long* pulLenOut,
00718 unsigned char** ppucDecode);
00719
00720 int
00721 OPENSOAP_API
00722 OpenSOAPSecCABrowseRec
00723 (const OpenSOAPCARecPtr pRec,
00724 FILE* fpOut);
00725
00726 int
00727 OPENSOAP_API
00728 OpenSOAPSecCABrowse
00729 (FILE* fpOut);
00730
00731 int
00732 OPENSOAP_API
00733 OpenSOAPSecCARegist
00734 (const char* szNameOwner,
00735 const char* szTermDate,
00736
00737 size_t sizPubkey,
00738 const unsigned char* szPubKey,
00739 unsigned long* pulSerialNo);
00740
00741 int
00742 OPENSOAP_API
00743 OpenSOAPSecCAInvalidate
00744 (const char* szNameOwner,
00745 unsigned long ulSerial);
00746
00747 int
00748 OPENSOAP_API
00749 OpenSOAPSecCASearchRecords
00750 (const char* szNameOwner,
00751 int* pnRec,
00752 long** pplIdxs);
00753
00754 int
00755 OPENSOAP_API
00756 OpenSOAPSecCASearchOneRecord
00757 (const char* szNameOwner,
00758 OpenSOAPCARecPtr* ppRec);
00759
00760 int
00761 OPENSOAP_API
00762 OpenSOAPSecCAGetRecord
00763 (long lIdx,
00764 OpenSOAPCARecPtr* ppRec);
00765
00766 int
00767 OPENSOAP_API
00768 OpenSOAPSecCAFreeRecord
00769 (OpenSOAPCARecPtr pRec);
00770
00771 int
00772 OPENSOAP_API
00773 OpenSOAPSecCARemoveRecord
00774 (unsigned long ulSerial);
00775
00776 #ifdef __cplusplus
00777 }
00778 #endif
00779
00780 #endif