void OpenURI(ByteString uri) { #if defined(WIN) ShellExecute(0, "OPEN", uri.c_str(), NULL, NULL, 0); #elif defined(MACOSX) char *cmd = (char*)malloc(7+uri.length()); strcpy(cmd, "open "); strappend(cmd, (char*)uri.c_str()); system(cmd); #elif defined(LIN) char *cmd = (char*)malloc(11+uri.length()); strcpy(cmd, "xdg-open "); strappend(cmd, (char*)uri.c_str()); system(cmd); #else printf("Cannot open browser\n"); #endif }
Result CheckCert(ByteString& certDER, IssuerChecker& checker, bool& keepGoing) { Input derCert; Result rv = derCert.Init(certDER.data(), certDER.length()); if (rv != Success) { return rv; } return checker.Check(derCert, nullptr/*additionalNameConstraints*/, keepGoing); }
// Test that the large length of the child serial number causes // CreateEncodedOCSPRequest to fail. TEST_F(pkixocsp_CreateEncodedOCSPRequest, ChildCertLongSerialNumberTest) { static const uint8_t UNSUPPORTED_LEN = 128; // must be larger than 127 ByteString serialNumberString; // tag + length + value is 1 + 2 + UNSUPPORTED_LEN // Encoding the length takes two bytes: one byte to indicate that a // second byte follows, and the second byte to indicate the length. serialNumberString.push_back(0x80 + 1); serialNumberString.push_back(UNSUPPORTED_LEN); // value is 0x010000...00 serialNumberString.push_back(0x01); for (size_t i = 1; i < UNSUPPORTED_LEN; ++i) { serialNumberString.push_back(0x00); } ByteString issuerDER; ByteString issuerSPKI; ASSERT_NO_FATAL_FAILURE(MakeIssuerCertIDComponents("CA", issuerDER, issuerSPKI)); Input issuer; ASSERT_EQ(Success, issuer.Init(issuerDER.data(), issuerDER.length())); Input spki; ASSERT_EQ(Success, spki.Init(issuerSPKI.data(), issuerSPKI.length())); Input serialNumber; ASSERT_EQ(Success, serialNumber.Init(serialNumberString.data(), serialNumberString.length())); uint8_t ocspRequest[OCSP_REQUEST_MAX_LENGTH]; size_t ocspRequestLength; ASSERT_EQ(Result::ERROR_BAD_DER, CreateEncodedOCSPRequest(trustDomain, CertID(issuer, spki, serialNumber), ocspRequest, ocspRequestLength)); }
void FileBrowserActivity::RenameSave(SaveFile * file) { ByteString newName = TextPrompt::Blocking("Rename", "Change save name", file->GetDisplayName(), "", 0).ToUtf8(); if (newName.length()) { newName = directory + PATH_SEP + newName + ".cps"; int ret = rename(file->GetName().c_str(), newName.c_str()); if (ret) ErrorMessage::Blocking("Error", "Could not rename file"); else loadDirectory(directory, ""); } else ErrorMessage::Blocking("Error", "No save name given"); }
// Test that CreateEncodedOCSPRequest handles the longest serial number that // it's required to support (i.e. 20 octets). TEST_F(pkixocsp_CreateEncodedOCSPRequest, LongestSupportedSerialNumberTest) { static const uint8_t LONGEST_REQUIRED_LEN = 20; ByteString serialNumberString; // tag + length + value is 1 + 1 + LONGEST_REQUIRED_LEN serialNumberString.push_back(der::INTEGER); serialNumberString.push_back(LONGEST_REQUIRED_LEN); serialNumberString.push_back(0x01); // value is 0x010000...00 for (size_t i = 1; i < LONGEST_REQUIRED_LEN; ++i) { serialNumberString.push_back(0x00); } ByteString issuerDER; ByteString issuerSPKI; ASSERT_NO_FATAL_FAILURE(MakeIssuerCertIDComponents("CA", issuerDER, issuerSPKI)); Input issuer; ASSERT_EQ(Success, issuer.Init(issuerDER.data(), issuerDER.length())); Input spki; ASSERT_EQ(Success, spki.Init(issuerSPKI.data(), issuerSPKI.length())); Input serialNumber; ASSERT_EQ(Success, serialNumber.Init(serialNumberString.data(), serialNumberString.length())); uint8_t ocspRequest[OCSP_REQUEST_MAX_LENGTH]; size_t ocspRequestLength; ASSERT_EQ(Success, CreateEncodedOCSPRequest(trustDomain, CertID(issuer, spki, serialNumber), ocspRequest, ocspRequestLength)); }
TEST_P(pkixcheck_TLSFeaturesSatisfiedInternal, TLSFeaturesSatisfiedInternal) { const TLSFeaturesTestParams& params(GetParam()); Input featuresInput; ASSERT_EQ(Success, featuresInput.Init(params.requiredTLSFeatures.data(), params.requiredTLSFeatures.length())); Input responseInput; // just create an input with any data in it ByteString stapledOCSPResponse = BS(statusRequest); ASSERT_EQ(Success, responseInput.Init(stapledOCSPResponse.data(), stapledOCSPResponse.length())); // first we omit the response ASSERT_EQ(params.expectedResultWithoutResponse, TLSFeaturesSatisfiedInternal(&featuresInput, nullptr)); // then we try again with the response ASSERT_EQ(params.expectedResultWithResponse, TLSFeaturesSatisfiedInternal(&featuresInput, &responseInput)); }
virtual Result FindIssuer(Input encodedIssuerName, IssuerChecker& checker, Time) { ByteString* issuerDER = nullptr; if (InputEqualsByteString(encodedIssuerName, rootSubjectDER)) { issuerDER = &rootDER; } else if (InputEqualsByteString(encodedIssuerName, intSubjectDER)) { issuerDER = &intDER; } else { // FindIssuer just returns success if it can't find a potential issuer. return Success; } Input issuerCert; Result rv = issuerCert.Init(issuerDER->data(), issuerDER->length()); if (rv != Success) { return rv; } bool keepGoing; return checker.Check(issuerCert, nullptr, keepGoing); }