* @version 1.0
* @brief Signature Validator example (Tizen_4.0 ~ )
*/
+
#include <string>
#include <iostream>
int main()
{
- // Step 1. Validate signature files.
- ValidationCore::SignatureValidator validator(PKG_PATH);
- ValidationCore::SignatureDataMap sigDataMap;
- ValidationCore::VCerr result = validator.checkAll(true, // OCSP
- true, // reverse reference check
- sigDataMap);
- /*
- If you want to validate specific files, use checkListAll().
+ try {
+ // Step 1. Validate signature files.
+ ValidationCore::SignatureValidator validator(PKG_PATH);
+ ValidationCore::SignatureDataMap sigDataMap;
+ ValidationCore::VCerr result = validator.checkAll(true, true, sigDataMap);
+ /*
+ If you want to validate specific files, use checkListAll().
- ex) UriList uriList;
- uriList.emplace_back("author-siganture.xml");
- uriList.emplace_back("res/res.xml");
- uriList.emplace_back("shared/res/preference.png");
- uriList.emplace_back("tizen-manifest.xml");
+ ex) UriList uriList;
+ uriList.emplace_back("author-siganture.xml");
+ uriList.emplace_back("res/res.xml");
+ uriList.emplace_back("shared/res/preference.png");
+ uriList.emplace_back("tizen-manifest.xml");
- validator.checkListAll(true, // OCSP
- uriList,
- data);
- */
+ validator.checkListAll(true, // OCSP
+ uriList,
+ data);
+ */
- switch (result) {
- case ValidationCore::E_SIG_DISREGARDED:
- std::cout << "This signature is disregarded." << std::endl;
- break;
+ switch (result) {
+ case ValidationCore::E_SIG_DISREGARDED:
+ std::cout << "This signature is disregarded." << std::endl;
+ break;
- case ValidationCore::E_SIG_NONE:
- std::cout << "Success to validate signature." << std::endl;
- break;
+ case ValidationCore::E_SIG_NONE:
+ std::cout << "Success to validate signature." << std::endl;
+ break;
- default:
- std::cout << "Failed to validate signature : "
- << validator.errorToString(result) << std::endl;
- return -1;
- }
+ default:
+ std::cout << "Failed to validate signature : " << validator.errorToString(result) << std::endl;
+ return -1;
+ }
+
+ // Step 2. Get certificate list from signature.
+ auto authorSigData = sigDataMap[ValidationCore::SignatureType::AUTHOR];
+ for (const auto &certPtr : authorSigData.getCertList())
+ std::cout << "Author certificate > " << certPtr->getBase64() << std::endl;
- // Step 2. Get certificate list from signature.
- auto authorSigData = sigDataMap[ValidationCore::SignatureType::AUTHOR];
- for (const auto &certPtr : authorSigData.getCertList())
- std::cout << "Author certificate > "
- << certPtr->getBase64() << std::endl;
+ auto dist1SigData = sigDataMap[ValidationCore::SignatureType::DISTRIBUTOR1];
+ for (const auto &certPtr : dist1SigData.getCertList())
+ std::cout << "Distributor1 certificate > " << certPtr->getBase64() << std::endl;
- auto dist1SigData = sigDataMap[ValidationCore::SignatureType::DISTRIBUTOR1];
- for (const auto &certPtr : dist1SigData.getCertList())
- std::cout << "Distributor1 certificate > "
- << certPtr->getBase64() << std::endl;
+ auto dist2SigData = sigDataMap[ValidationCore::SignatureType::DISTRIBUTOR2];
+ for (const auto &certPtr : dist2SigData.getCertList())
+ std::cout << "Distributor2 certificate > " << certPtr->getBase64() << std::endl;
- auto dist2SigData = sigDataMap[ValidationCore::SignatureType::DISTRIBUTOR2];
- for (const auto &certPtr : dist2SigData.getCertList())
- std::cout << "Distributor2 certificate > "
- << certPtr->getBase64() << std::endl;
+ // Step 3. Check visibility about distributor1.
+ switch (dist1SigData.getVisibilityLevel()) {
+ case ValidationCore::CertStoreId::VIS_PUBLIC:
+ std::cout << "This signature has public visibility." << std::endl;
+ break;
+ case ValidationCore::CertStoreId::VIS_PARTNER:
+ std::cout << "This signature has partner visibility." << std::endl;
+ break;
+ case ValidationCore::CertStoreId::VIS_PLATFORM:
+ std::cout << "This signature has platform visibility." << std::endl;
+ break;
+ default:
+ std::cout << "Failed to get proper visibility." << std::endl;
+ return -1;
+ }
- // Step 3. Check visibility about distributor1.
- switch (dist1SigData.getVisibilityLevel()) {
- case ValidationCore::CertStoreId::VIS_PUBLIC:
- std::cout << "This signature has public visibility." << std::endl;
- break;
- case ValidationCore::CertStoreId::VIS_PARTNER:
- std::cout << "This signature has partner visibility." << std::endl;
- break;
- case ValidationCore::CertStoreId::VIS_PLATFORM:
- std::cout << "This signature has platform visibility." << std::endl;
- break;
- default:
- std::cout << "Failed to get proper visibility." << std::endl;
+ } catch(...) {
+ std::cout << "Exception in Certificate getBase64" << std::endl;
return -1;
}
return 0;
-}
+}
\ No newline at end of file
* @version 1.0
* @brief Signature Validator example (~ Tizen_3.0)
*/
+
#include <string>
#include <iostream>
int main()
{
- // Step 1. Find signature files in package.
- ValidationCore::SignatureFileInfoSet signatureSet;
- ValidationCore::SignatureFinder finder(PKG_PATH);
- if (ValidationCore::SignatureFinder::NO_ERROR != finder.find(signatureSet)) {
- std::cout << "Failed to find signature." << std::endl;
- return -1;
- }
-
- // Step 2. Validate signature files.
- for (const auto &signature : signatureSet) {
- ValidationCore::SignatureValidator validator(signature);
- ValidationCore::SignatureData data;
- ValidationCore::VCerr result = validator.check(PKG_PATH,
- true, // OCSP
- true, // reverse reference check
- data);
- /*
- If you want to validate specific files, use checkList().
-
- ex) UriList uriList;
- uriList.emplace_back("author-siganture.xml");
- uriList.emplace_back("res/res.xml");
- uriList.emplace_back("shared/res/preference.png");
- uriList.emplace_back("tizen-manifest.xml");
+ try {
+ // Step 1. Find signature files in package.
+ ValidationCore::SignatureFileInfoSet signatureSet;
+ ValidationCore::SignatureFinder finder(PKG_PATH);
+ if (ValidationCore::SignatureFinder::NO_ERROR != finder.find(signatureSet)) {
+ std::cout << "Failed to find signature." << std::endl;
+ return -1;
+ }
- validator.checkList(true, // OCSP
- uriList,
- data);
- */
+ // Step 2. Validate signature files.
+ for (const auto &signature : signatureSet) {
+ ValidationCore::SignatureValidator validator(signature);
+ ValidationCore::SignatureData data;
+ ValidationCore::VCerr result = validator.check(PKG_PATH, true, true, data);
+ /*
+ If you want to validate specific files, use checkList().
- std::cout << "Start to validate : "
- << data.getSignatureFileName() << std::endl;
+ ex) UriList uriList;
+ uriList.emplace_back("author-siganture.xml");
+ uriList.emplace_back("res/res.xml");
+ uriList.emplace_back("shared/res/preference.png");
+ uriList.emplace_back("tizen-manifest.xml");
- switch (result) {
- case ValidationCore::E_SIG_DISREGARDED:
- std::cout << "This signature is disregarded." << std::endl;
- break;
+ validator.checkList(true, // OCSP
+ uriList,
+ data);
+ */
- case ValidationCore::E_SIG_NONE:
- std::cout << "Success to validate signature." << std::endl;
- // Step 3. Get certificate list from signature.
- for (const auto &certPtr : data.getCertList())
- std::cout << certPtr->getBase64() << std::endl;
- break;
+ std::cout << "Start to validate : " << data.getSignatureFileName() << std::endl;
- default:
- std::cout << "Failed to validate signature : "
- << validator.errorToString(result) << std::endl;
- return -1;
- }
-
- // Step 4. Check visibility about distributor1.
- if (!data.isAuthorSignature() && data.getSignatureNumber() == 1) {
- switch (data.getVisibilityLevel()) {
- case ValidationCore::CertStoreId::VIS_PUBLIC:
- std::cout << "This signature has public visibility." << std::endl;
- break;
- case ValidationCore::CertStoreId::VIS_PARTNER:
- std::cout << "This signature has partner visibility." << std::endl;
+ switch (result) {
+ case ValidationCore::E_SIG_DISREGARDED:
+ std::cout << "This signature is disregarded." << std::endl;
break;
- case ValidationCore::CertStoreId::VIS_PLATFORM:
- std::cout << "This signature has platform visibility." << std::endl;
+
+ case ValidationCore::E_SIG_NONE:
+ std::cout << "Success to validate signature." << std::endl;
+ // Step 3. Get certificate list from signature.
+ for (const auto &certPtr : data.getCertList())
+ std::cout << certPtr->getBase64() << std::endl;
break;
+
default:
- std::cout << "Failed to get proper visibility." << std::endl;
+ std::cout << "Failed to validate signature : " << validator.errorToString(result) << std::endl;
return -1;
}
+
+ // Step 4. Check visibility about distributor1.
+ if (!data.isAuthorSignature() && data.getSignatureNumber() == 1) {
+ switch (data.getVisibilityLevel()) {
+ case ValidationCore::CertStoreId::VIS_PUBLIC:
+ std::cout << "This signature has public visibility." << std::endl;
+ break;
+ case ValidationCore::CertStoreId::VIS_PARTNER:
+ std::cout << "This signature has partner visibility." << std::endl;
+ break;
+ case ValidationCore::CertStoreId::VIS_PLATFORM:
+ std::cout << "This signature has platform visibility." << std::endl;
+ break;
+ default:
+ std::cout << "Failed to get proper visibility." << std::endl;
+ return -1;
+ }
+ }
}
+
+ } catch(...) {
+ std::cout << "Exception in Certificate getBase64" << std::endl;
+ return -1;
}
return 0;
AppendUnmanaged(bufferCopy, other.m_size, &BufferDeleterFree, NULL);
} catch (const std::bad_alloc &) {
// Free allocated memory
- free(bufferCopy);
+ if (other.m_size != 0)
+ free(bufferCopy);
throw;
}
}
AppendUnmanaged(bufferCopy, bufferSize, &BufferDeleterFree, NULL);
} catch (const std::bad_alloc &) {
// Free allocated memory
- free(bufferCopy);
+ if (bufferSize != 0)
+ free(bufferCopy);
throw;
}
}