diff --git a/libwvdrmengine/cdm/core/src/cdm_session.cpp b/libwvdrmengine/cdm/core/src/cdm_session.cpp index be59d203..af01ec3a 100644 --- a/libwvdrmengine/cdm/core/src/cdm_session.cpp +++ b/libwvdrmengine/cdm/core/src/cdm_session.cpp @@ -7,8 +7,7 @@ #include #include -#include -#include +#include #include "cdm_engine.h" #include "clock.h" @@ -607,9 +606,8 @@ CdmResponseType CdmSession::QueryOemCryptoSessionId( return NOT_INITIALIZED_ERROR; } - std::stringstream ss; - ss << crypto_session_->oec_session_id(); - (*query_response)[QUERY_KEY_OEMCRYPTO_SESSION_ID] = ss.str(); + (*query_response)[QUERY_KEY_OEMCRYPTO_SESSION_ID] = + std::to_string(crypto_session_->oec_session_id()); return NO_ERROR; } diff --git a/libwvdrmengine/cdm/core/src/client_identification.cpp b/libwvdrmengine/cdm/core/src/client_identification.cpp index 1a1d864f..67dd9a2f 100644 --- a/libwvdrmengine/cdm/core/src/client_identification.cpp +++ b/libwvdrmengine/cdm/core/src/client_identification.cpp @@ -4,7 +4,7 @@ #include "client_identification.h" -#include +#include #include "crypto_session.h" #include "license_protocol.pb.h" @@ -146,9 +146,8 @@ CdmResponseType ClientIdentification::Prepare( } client_info = client_id->add_client_info(); client_info->set_name(kKeyOemCryptoSecurityPatchLevel); - std::stringstream ss; - ss << (uint32_t)crypto_session_->GetSecurityPatchLevel(); - client_info->set_value(ss.str()); + client_info->set_value( + std::to_string((uint32_t)crypto_session_->GetSecurityPatchLevel())); if (!provider_client_token.empty()) { client_id->set_provider_client_token(provider_client_token); diff --git a/libwvdrmengine/cdm/core/src/initialization_data.cpp b/libwvdrmengine/cdm/core/src/initialization_data.cpp index 662c353c..fa5ae422 100644 --- a/libwvdrmengine/cdm/core/src/initialization_data.cpp +++ b/libwvdrmengine/cdm/core/src/initialization_data.cpp @@ -5,7 +5,7 @@ #include "initialization_data.h" #include -#include +#include #include "buffer_reader.h" #include "cdm_engine.h" @@ -721,13 +721,7 @@ bool InitializationData::DetectEntitlementPreference( if (oec_version_string.empty()) { return false; } - - uint32_t oec_version_int = 0; - std::istringstream parse_int; - parse_int.str(oec_version_string); - parse_int >> oec_version_int; - - return oec_version_int >= 14; + return std::stoul(oec_version_string) >= 14; } } // namespace wvcdm diff --git a/libwvdrmengine/cdm/core/src/policy_engine.cpp b/libwvdrmengine/cdm/core/src/policy_engine.cpp index c78cacb8..8e283c1b 100644 --- a/libwvdrmengine/cdm/core/src/policy_engine.cpp +++ b/libwvdrmengine/cdm/core/src/policy_engine.cpp @@ -5,7 +5,7 @@ #include "policy_engine.h" #include -#include +#include #include "clock.h" #include "log.h" @@ -271,7 +271,6 @@ void PolicyEngine::NotifySessionExpiration() { } CdmResponseType PolicyEngine::Query(CdmQueryMap* query_response) { - std::stringstream ss; int64_t current_time = GetCurrentTime(); if (license_state_ == kLicenseStateInitial) { @@ -288,11 +287,10 @@ CdmResponseType PolicyEngine::Query(CdmQueryMap* query_response) { policy_.can_persist() ? QUERY_VALUE_TRUE : QUERY_VALUE_FALSE; (*query_response)[QUERY_KEY_RENEW_ALLOWED] = policy_.can_renew() ? QUERY_VALUE_TRUE : QUERY_VALUE_FALSE; - ss << GetLicenseOrRentalDurationRemaining(current_time); - (*query_response)[QUERY_KEY_LICENSE_DURATION_REMAINING] = ss.str(); - ss.str(""); - ss << GetPlaybackDurationRemaining(current_time); - (*query_response)[QUERY_KEY_PLAYBACK_DURATION_REMAINING] = ss.str(); + (*query_response)[QUERY_KEY_LICENSE_DURATION_REMAINING] = + std::to_string(GetLicenseOrRentalDurationRemaining(current_time)); + (*query_response)[QUERY_KEY_PLAYBACK_DURATION_REMAINING] = + std::to_string(GetPlaybackDurationRemaining(current_time)); (*query_response)[QUERY_KEY_RENEWAL_SERVER_URL] = policy_.renewal_server_url(); diff --git a/libwvdrmengine/cdm/core/test/policy_engine_unittest.cpp b/libwvdrmengine/cdm/core/test/policy_engine_unittest.cpp index f346cd86..edf67c6e 100644 --- a/libwvdrmengine/cdm/core/test/policy_engine_unittest.cpp +++ b/libwvdrmengine/cdm/core/test/policy_engine_unittest.cpp @@ -6,7 +6,7 @@ #include #include -#include +#include #include #include @@ -51,13 +51,6 @@ int64_t GetLicenseRenewalDelay(int64_t license_duration) { : 0; } -int64_t ParseInt(const std::string& str) { - std::stringstream ss(str); - int64_t ret; - ss >> ret; - return ret; -} - class HdcpOnlyMockCryptoSession : public TestCryptoSession { public: HdcpOnlyMockCryptoSession(metrics::CryptoMetrics* metrics) : @@ -2017,9 +2010,9 @@ TEST_F(PolicyEngineQueryTest, QuerySuccess) { EXPECT_EQ(QUERY_VALUE_TRUE, query_info[QUERY_KEY_RENEW_ALLOWED]); EXPECT_EQ(kLowDuration - 100, - ParseInt(query_info[QUERY_KEY_LICENSE_DURATION_REMAINING])); + std::stoll(query_info[QUERY_KEY_LICENSE_DURATION_REMAINING])); EXPECT_EQ(kPlaybackDuration, - ParseInt(query_info[QUERY_KEY_PLAYBACK_DURATION_REMAINING])); + std::stoll(query_info[QUERY_KEY_PLAYBACK_DURATION_REMAINING])); EXPECT_EQ(kRenewalServerUrl, query_info[QUERY_KEY_RENEWAL_SERVER_URL]); } @@ -2044,9 +2037,9 @@ TEST_F(PolicyEngineQueryTest, QuerySuccess_PlaybackNotBegun) { EXPECT_EQ(QUERY_VALUE_TRUE, query_info[QUERY_KEY_RENEW_ALLOWED]); EXPECT_EQ(kLowDuration - 100, - ParseInt(query_info[QUERY_KEY_LICENSE_DURATION_REMAINING])); + std::stoll(query_info[QUERY_KEY_LICENSE_DURATION_REMAINING])); EXPECT_EQ(kPlaybackDuration, - ParseInt(query_info[QUERY_KEY_PLAYBACK_DURATION_REMAINING])); + std::stoll(query_info[QUERY_KEY_PLAYBACK_DURATION_REMAINING])); EXPECT_EQ(kRenewalServerUrl, query_info[QUERY_KEY_RENEWAL_SERVER_URL]); EXPECT_EQ(NO_ERROR, policy_engine_->Query(&query_info)); @@ -2056,9 +2049,9 @@ TEST_F(PolicyEngineQueryTest, QuerySuccess_PlaybackNotBegun) { EXPECT_EQ(QUERY_VALUE_TRUE, query_info[QUERY_KEY_RENEW_ALLOWED]); EXPECT_EQ(kLowDuration - 200, - ParseInt(query_info[QUERY_KEY_LICENSE_DURATION_REMAINING])); + std::stoll(query_info[QUERY_KEY_LICENSE_DURATION_REMAINING])); EXPECT_EQ(kPlaybackDuration, - ParseInt(query_info[QUERY_KEY_PLAYBACK_DURATION_REMAINING])); + std::stoll(query_info[QUERY_KEY_PLAYBACK_DURATION_REMAINING])); EXPECT_EQ(kRenewalServerUrl, query_info[QUERY_KEY_RENEWAL_SERVER_URL]); } @@ -2085,9 +2078,9 @@ TEST_F(PolicyEngineQueryTest, QuerySuccess_PlaybackBegun) { EXPECT_EQ(QUERY_VALUE_TRUE, query_info[QUERY_KEY_RENEW_ALLOWED]); EXPECT_EQ(kLowDuration - 50, - ParseInt(query_info[QUERY_KEY_LICENSE_DURATION_REMAINING])); + std::stoll(query_info[QUERY_KEY_LICENSE_DURATION_REMAINING])); EXPECT_EQ(kPlaybackDuration, - ParseInt(query_info[QUERY_KEY_PLAYBACK_DURATION_REMAINING])); + std::stoll(query_info[QUERY_KEY_PLAYBACK_DURATION_REMAINING])); EXPECT_EQ(kRenewalServerUrl, query_info[QUERY_KEY_RENEWAL_SERVER_URL]); policy_engine_->BeginDecryption(); @@ -2102,9 +2095,9 @@ TEST_F(PolicyEngineQueryTest, QuerySuccess_PlaybackBegun) { EXPECT_EQ(QUERY_VALUE_TRUE, query_info[QUERY_KEY_RENEW_ALLOWED]); EXPECT_EQ(kLowDuration - 200, - ParseInt(query_info[QUERY_KEY_LICENSE_DURATION_REMAINING])); + std::stoll(query_info[QUERY_KEY_LICENSE_DURATION_REMAINING])); EXPECT_EQ(kPlaybackDuration - 100, - ParseInt(query_info[QUERY_KEY_PLAYBACK_DURATION_REMAINING])); + std::stoll(query_info[QUERY_KEY_PLAYBACK_DURATION_REMAINING])); EXPECT_EQ(kRenewalServerUrl, query_info[QUERY_KEY_RENEWAL_SERVER_URL]); } @@ -2144,9 +2137,9 @@ TEST_F(PolicyEngineQueryTest, QuerySuccess_Offline) { EXPECT_EQ(QUERY_VALUE_FALSE, query_info[QUERY_KEY_RENEW_ALLOWED]); EXPECT_EQ(kRentalDuration - 300, - ParseInt(query_info[QUERY_KEY_LICENSE_DURATION_REMAINING])); + std::stoll(query_info[QUERY_KEY_LICENSE_DURATION_REMAINING])); EXPECT_EQ(kPlaybackDuration - 100, - ParseInt(query_info[QUERY_KEY_PLAYBACK_DURATION_REMAINING])); + std::stoll(query_info[QUERY_KEY_PLAYBACK_DURATION_REMAINING])); EXPECT_EQ(kRenewalServerUrl, query_info[QUERY_KEY_RENEWAL_SERVER_URL]); } @@ -2170,9 +2163,9 @@ TEST_F(PolicyEngineQueryTest, QuerySuccess_InitialRentalDurationExpired) { EXPECT_EQ(QUERY_VALUE_FALSE, query_info[QUERY_KEY_PERSIST_ALLOWED]); EXPECT_EQ(QUERY_VALUE_TRUE, query_info[QUERY_KEY_RENEW_ALLOWED]); - EXPECT_EQ(0, ParseInt(query_info[QUERY_KEY_LICENSE_DURATION_REMAINING])); + EXPECT_EQ(0, std::stoll(query_info[QUERY_KEY_LICENSE_DURATION_REMAINING])); EXPECT_EQ(kPlaybackDuration, - ParseInt(query_info[QUERY_KEY_PLAYBACK_DURATION_REMAINING])); + std::stoll(query_info[QUERY_KEY_PLAYBACK_DURATION_REMAINING])); EXPECT_EQ(kRenewalServerUrl, query_info[QUERY_KEY_RENEWAL_SERVER_URL]); } @@ -2192,9 +2185,9 @@ TEST_F(PolicyEngineQueryTest, QuerySuccess_InitialLicenseDurationExpired) { EXPECT_EQ(QUERY_VALUE_FALSE, query_info[QUERY_KEY_PERSIST_ALLOWED]); EXPECT_EQ(QUERY_VALUE_TRUE, query_info[QUERY_KEY_RENEW_ALLOWED]); - EXPECT_EQ(0, ParseInt(query_info[QUERY_KEY_LICENSE_DURATION_REMAINING])); + EXPECT_EQ(0, std::stoll(query_info[QUERY_KEY_LICENSE_DURATION_REMAINING])); EXPECT_EQ(kPlaybackDuration, - ParseInt(query_info[QUERY_KEY_PLAYBACK_DURATION_REMAINING])); + std::stoll(query_info[QUERY_KEY_PLAYBACK_DURATION_REMAINING])); EXPECT_EQ(kRenewalServerUrl, query_info[QUERY_KEY_RENEWAL_SERVER_URL]); } @@ -2232,9 +2225,9 @@ TEST_F(PolicyEngineQueryTest, QuerySuccess_CanPlayFalse) { EXPECT_EQ(QUERY_VALUE_TRUE, query_info[QUERY_KEY_RENEW_ALLOWED]); EXPECT_EQ(kLowDuration - 100, - ParseInt(query_info[QUERY_KEY_LICENSE_DURATION_REMAINING])); + std::stoll(query_info[QUERY_KEY_LICENSE_DURATION_REMAINING])); EXPECT_EQ(kPlaybackDuration, - ParseInt(query_info[QUERY_KEY_PLAYBACK_DURATION_REMAINING])); + std::stoll(query_info[QUERY_KEY_PLAYBACK_DURATION_REMAINING])); EXPECT_EQ(kRenewalServerUrl, query_info[QUERY_KEY_RENEWAL_SERVER_URL]); } @@ -2274,9 +2267,9 @@ TEST_F(PolicyEngineQueryTest, QuerySuccess_RentalDurationExpired) { EXPECT_EQ(QUERY_VALUE_FALSE, query_info[QUERY_KEY_PERSIST_ALLOWED]); EXPECT_EQ(QUERY_VALUE_TRUE, query_info[QUERY_KEY_RENEW_ALLOWED]); - EXPECT_EQ(0, ParseInt(query_info[QUERY_KEY_LICENSE_DURATION_REMAINING])); + EXPECT_EQ(0, std::stoll(query_info[QUERY_KEY_LICENSE_DURATION_REMAINING])); EXPECT_EQ(kPlaybackDuration - kLowDuration, - ParseInt(query_info[QUERY_KEY_PLAYBACK_DURATION_REMAINING])); + std::stoll(query_info[QUERY_KEY_PLAYBACK_DURATION_REMAINING])); EXPECT_EQ(kRenewalServerUrl, query_info[QUERY_KEY_RENEWAL_SERVER_URL]); } @@ -2317,8 +2310,8 @@ TEST_F(PolicyEngineQueryTest, QuerySuccess_PlaybackDurationExpired) { EXPECT_EQ(QUERY_VALUE_FALSE, query_info[QUERY_KEY_PERSIST_ALLOWED]); EXPECT_EQ(QUERY_VALUE_TRUE, query_info[QUERY_KEY_RENEW_ALLOWED]); - EXPECT_EQ(0, ParseInt(query_info[QUERY_KEY_LICENSE_DURATION_REMAINING])); - EXPECT_EQ(0, ParseInt(query_info[QUERY_KEY_PLAYBACK_DURATION_REMAINING])); + EXPECT_EQ(0, std::stoll(query_info[QUERY_KEY_LICENSE_DURATION_REMAINING])); + EXPECT_EQ(0, std::stoll(query_info[QUERY_KEY_PLAYBACK_DURATION_REMAINING])); EXPECT_EQ(kRenewalServerUrl, query_info[QUERY_KEY_RENEWAL_SERVER_URL]); } @@ -2356,9 +2349,9 @@ TEST_F(PolicyEngineQueryTest, QuerySuccess_LicenseDurationExpired) { EXPECT_EQ(QUERY_VALUE_FALSE, query_info[QUERY_KEY_PERSIST_ALLOWED]); EXPECT_EQ(QUERY_VALUE_FALSE, query_info[QUERY_KEY_RENEW_ALLOWED]); - EXPECT_EQ(0, ParseInt(query_info[QUERY_KEY_LICENSE_DURATION_REMAINING])); + EXPECT_EQ(0, std::stoll(query_info[QUERY_KEY_LICENSE_DURATION_REMAINING])); EXPECT_EQ(kPlaybackDuration - kLowDuration, - ParseInt(query_info[QUERY_KEY_PLAYBACK_DURATION_REMAINING])); + std::stoll(query_info[QUERY_KEY_PLAYBACK_DURATION_REMAINING])); EXPECT_EQ(kRenewalServerUrl, query_info[QUERY_KEY_RENEWAL_SERVER_URL]); } @@ -2399,9 +2392,9 @@ TEST_F(PolicyEngineQueryTest, QuerySuccess_RentalDuration0) { EXPECT_EQ(QUERY_VALUE_FALSE, query_info[QUERY_KEY_PERSIST_ALLOWED]); EXPECT_EQ(QUERY_VALUE_TRUE, query_info[QUERY_KEY_RENEW_ALLOWED]); - EXPECT_EQ(0, ParseInt(query_info[QUERY_KEY_LICENSE_DURATION_REMAINING])); + EXPECT_EQ(0, std::stoll(query_info[QUERY_KEY_LICENSE_DURATION_REMAINING])); EXPECT_EQ(kPlaybackDuration - kLowDuration, - ParseInt(query_info[QUERY_KEY_PLAYBACK_DURATION_REMAINING])); + std::stoll(query_info[QUERY_KEY_PLAYBACK_DURATION_REMAINING])); EXPECT_EQ(kRenewalServerUrl, query_info[QUERY_KEY_RENEWAL_SERVER_URL]); } @@ -2444,9 +2437,9 @@ TEST_F(PolicyEngineQueryTest, QuerySuccess_PlaybackDuration0) { EXPECT_EQ(QUERY_VALUE_TRUE, query_info[QUERY_KEY_RENEW_ALLOWED]); EXPECT_EQ(0, - ParseInt(query_info[QUERY_KEY_LICENSE_DURATION_REMAINING])); + std::stoll(query_info[QUERY_KEY_LICENSE_DURATION_REMAINING])); EXPECT_EQ(LLONG_MAX, - ParseInt(query_info[QUERY_KEY_PLAYBACK_DURATION_REMAINING])); + std::stoll(query_info[QUERY_KEY_PLAYBACK_DURATION_REMAINING])); EXPECT_EQ(kRenewalServerUrl, query_info[QUERY_KEY_RENEWAL_SERVER_URL]); for (int i = 3; i <= 4; ++i) { @@ -2462,9 +2455,9 @@ TEST_F(PolicyEngineQueryTest, QuerySuccess_PlaybackDuration0) { EXPECT_EQ(QUERY_VALUE_TRUE, query_info[QUERY_KEY_RENEW_ALLOWED]); EXPECT_EQ(0, - ParseInt(query_info[QUERY_KEY_LICENSE_DURATION_REMAINING])); + std::stoll(query_info[QUERY_KEY_LICENSE_DURATION_REMAINING])); EXPECT_EQ(LLONG_MAX, - ParseInt(query_info[QUERY_KEY_PLAYBACK_DURATION_REMAINING])); + std::stoll(query_info[QUERY_KEY_PLAYBACK_DURATION_REMAINING])); EXPECT_EQ(kRenewalServerUrl, query_info[QUERY_KEY_RENEWAL_SERVER_URL]); } @@ -2502,8 +2495,8 @@ TEST_F(PolicyEngineQueryTest, QuerySuccess_LicenseDuration0) { EXPECT_EQ(QUERY_VALUE_FALSE, query_info[QUERY_KEY_PERSIST_ALLOWED]); EXPECT_EQ(QUERY_VALUE_TRUE, query_info[QUERY_KEY_RENEW_ALLOWED]); - EXPECT_EQ(0, ParseInt(query_info[QUERY_KEY_LICENSE_DURATION_REMAINING])); - EXPECT_EQ(0, ParseInt(query_info[QUERY_KEY_PLAYBACK_DURATION_REMAINING])); + EXPECT_EQ(0, std::stoll(query_info[QUERY_KEY_LICENSE_DURATION_REMAINING])); + EXPECT_EQ(0, std::stoll(query_info[QUERY_KEY_PLAYBACK_DURATION_REMAINING])); EXPECT_EQ(kRenewalServerUrl, query_info[QUERY_KEY_RENEWAL_SERVER_URL]); } @@ -2536,9 +2529,9 @@ TEST_F(PolicyEngineQueryTest, QuerySuccess_PlaybackAndRental0) { EXPECT_EQ(QUERY_VALUE_FALSE, query_info[QUERY_KEY_PERSIST_ALLOWED]); EXPECT_EQ(QUERY_VALUE_TRUE, query_info[QUERY_KEY_RENEW_ALLOWED]); - EXPECT_EQ(10, ParseInt(query_info[QUERY_KEY_LICENSE_DURATION_REMAINING])); + EXPECT_EQ(10, std::stoll(query_info[QUERY_KEY_LICENSE_DURATION_REMAINING])); EXPECT_EQ(LLONG_MAX, - ParseInt(query_info[QUERY_KEY_PLAYBACK_DURATION_REMAINING])); + std::stoll(query_info[QUERY_KEY_PLAYBACK_DURATION_REMAINING])); EXPECT_EQ(kRenewalServerUrl, query_info[QUERY_KEY_RENEWAL_SERVER_URL]); policy_engine_->OnTimerEvent(); @@ -2549,9 +2542,9 @@ TEST_F(PolicyEngineQueryTest, QuerySuccess_PlaybackAndRental0) { EXPECT_EQ(QUERY_VALUE_FALSE, query_info[QUERY_KEY_PERSIST_ALLOWED]); EXPECT_EQ(QUERY_VALUE_TRUE, query_info[QUERY_KEY_RENEW_ALLOWED]); - EXPECT_EQ(0, ParseInt(query_info[QUERY_KEY_LICENSE_DURATION_REMAINING])); + EXPECT_EQ(0, std::stoll(query_info[QUERY_KEY_LICENSE_DURATION_REMAINING])); EXPECT_EQ(LLONG_MAX, - ParseInt(query_info[QUERY_KEY_PLAYBACK_DURATION_REMAINING])); + std::stoll(query_info[QUERY_KEY_PLAYBACK_DURATION_REMAINING])); EXPECT_EQ(kRenewalServerUrl, query_info[QUERY_KEY_RENEWAL_SERVER_URL]); } @@ -2588,9 +2581,9 @@ TEST_F(PolicyEngineQueryTest, QuerySuccess_PlaybackAndLicense0_WithoutPlayback) EXPECT_EQ(QUERY_VALUE_FALSE, query_info[QUERY_KEY_PERSIST_ALLOWED]); EXPECT_EQ(QUERY_VALUE_TRUE, query_info[QUERY_KEY_RENEW_ALLOWED]); - EXPECT_EQ(10, ParseInt(query_info[QUERY_KEY_LICENSE_DURATION_REMAINING])); + EXPECT_EQ(10, std::stoll(query_info[QUERY_KEY_LICENSE_DURATION_REMAINING])); EXPECT_EQ(LLONG_MAX, - ParseInt(query_info[QUERY_KEY_PLAYBACK_DURATION_REMAINING])); + std::stoll(query_info[QUERY_KEY_PLAYBACK_DURATION_REMAINING])); EXPECT_EQ(kRenewalServerUrl, query_info[QUERY_KEY_RENEWAL_SERVER_URL]); policy_engine_->OnTimerEvent(); @@ -2604,9 +2597,9 @@ TEST_F(PolicyEngineQueryTest, QuerySuccess_PlaybackAndLicense0_WithoutPlayback) EXPECT_EQ(QUERY_VALUE_FALSE, query_info[QUERY_KEY_PERSIST_ALLOWED]); EXPECT_EQ(QUERY_VALUE_TRUE, query_info[QUERY_KEY_RENEW_ALLOWED]); - EXPECT_EQ(0, ParseInt(query_info[QUERY_KEY_LICENSE_DURATION_REMAINING])); + EXPECT_EQ(0, std::stoll(query_info[QUERY_KEY_LICENSE_DURATION_REMAINING])); EXPECT_EQ(LLONG_MAX, - ParseInt(query_info[QUERY_KEY_PLAYBACK_DURATION_REMAINING])); + std::stoll(query_info[QUERY_KEY_PLAYBACK_DURATION_REMAINING])); EXPECT_EQ(kRenewalServerUrl, query_info[QUERY_KEY_RENEWAL_SERVER_URL]); } @@ -2642,9 +2635,9 @@ TEST_F(PolicyEngineQueryTest, QuerySuccess_PlaybackAndLicense0_WithPlayback) { EXPECT_EQ(QUERY_VALUE_TRUE, query_info[QUERY_KEY_RENEW_ALLOWED]); EXPECT_EQ(kRentalDuration - kPlaybackDuration + 10, - ParseInt(query_info[QUERY_KEY_LICENSE_DURATION_REMAINING])); + std::stoll(query_info[QUERY_KEY_LICENSE_DURATION_REMAINING])); EXPECT_EQ(LLONG_MAX, - ParseInt(query_info[QUERY_KEY_PLAYBACK_DURATION_REMAINING])); + std::stoll(query_info[QUERY_KEY_PLAYBACK_DURATION_REMAINING])); EXPECT_EQ(kRenewalServerUrl, query_info[QUERY_KEY_RENEWAL_SERVER_URL]); policy_engine_->OnTimerEvent(); @@ -2659,9 +2652,9 @@ TEST_F(PolicyEngineQueryTest, QuerySuccess_PlaybackAndLicense0_WithPlayback) { EXPECT_EQ(QUERY_VALUE_TRUE, query_info[QUERY_KEY_RENEW_ALLOWED]); EXPECT_EQ(kRentalDuration - kPlaybackDuration - 10, - ParseInt(query_info[QUERY_KEY_LICENSE_DURATION_REMAINING])); + std::stoll(query_info[QUERY_KEY_LICENSE_DURATION_REMAINING])); EXPECT_EQ(LLONG_MAX, - ParseInt(query_info[QUERY_KEY_PLAYBACK_DURATION_REMAINING])); + std::stoll(query_info[QUERY_KEY_PLAYBACK_DURATION_REMAINING])); EXPECT_EQ(kRenewalServerUrl, query_info[QUERY_KEY_RENEWAL_SERVER_URL]); policy_engine_->OnTimerEvent(); @@ -2675,9 +2668,9 @@ TEST_F(PolicyEngineQueryTest, QuerySuccess_PlaybackAndLicense0_WithPlayback) { EXPECT_EQ(QUERY_VALUE_FALSE, query_info[QUERY_KEY_PERSIST_ALLOWED]); EXPECT_EQ(QUERY_VALUE_TRUE, query_info[QUERY_KEY_RENEW_ALLOWED]); - EXPECT_EQ(0, ParseInt(query_info[QUERY_KEY_LICENSE_DURATION_REMAINING])); + EXPECT_EQ(0, std::stoll(query_info[QUERY_KEY_LICENSE_DURATION_REMAINING])); EXPECT_EQ(LLONG_MAX, - ParseInt(query_info[QUERY_KEY_PLAYBACK_DURATION_REMAINING])); + std::stoll(query_info[QUERY_KEY_PLAYBACK_DURATION_REMAINING])); EXPECT_EQ(kRenewalServerUrl, query_info[QUERY_KEY_RENEWAL_SERVER_URL]); } @@ -2709,9 +2702,9 @@ TEST_F(PolicyEngineQueryTest, QuerySuccess_RentalAndLicense0_WithoutPlayback) { EXPECT_EQ(QUERY_VALUE_TRUE, query_info[QUERY_KEY_RENEW_ALLOWED]); EXPECT_EQ(LLONG_MAX, - ParseInt(query_info[QUERY_KEY_LICENSE_DURATION_REMAINING])); + std::stoll(query_info[QUERY_KEY_LICENSE_DURATION_REMAINING])); EXPECT_EQ(kPlaybackDuration, - ParseInt(query_info[QUERY_KEY_PLAYBACK_DURATION_REMAINING])); + std::stoll(query_info[QUERY_KEY_PLAYBACK_DURATION_REMAINING])); EXPECT_EQ(kRenewalServerUrl, query_info[QUERY_KEY_RENEWAL_SERVER_URL]); policy_engine_->OnTimerEvent(); @@ -2726,9 +2719,9 @@ TEST_F(PolicyEngineQueryTest, QuerySuccess_RentalAndLicense0_WithoutPlayback) { EXPECT_EQ(QUERY_VALUE_TRUE, query_info[QUERY_KEY_RENEW_ALLOWED]); EXPECT_EQ(LLONG_MAX, - ParseInt(query_info[QUERY_KEY_LICENSE_DURATION_REMAINING])); + std::stoll(query_info[QUERY_KEY_LICENSE_DURATION_REMAINING])); EXPECT_EQ(kPlaybackDuration, - ParseInt(query_info[QUERY_KEY_PLAYBACK_DURATION_REMAINING])); + std::stoll(query_info[QUERY_KEY_PLAYBACK_DURATION_REMAINING])); EXPECT_EQ(kRenewalServerUrl, query_info[QUERY_KEY_RENEWAL_SERVER_URL]); } @@ -2764,9 +2757,9 @@ TEST_F(PolicyEngineQueryTest, QuerySuccess_RentalAndLicense0_WithPlayback) { EXPECT_EQ(QUERY_VALUE_TRUE, query_info[QUERY_KEY_RENEW_ALLOWED]); EXPECT_EQ(LLONG_MAX, - ParseInt(query_info[QUERY_KEY_LICENSE_DURATION_REMAINING])); + std::stoll(query_info[QUERY_KEY_LICENSE_DURATION_REMAINING])); EXPECT_EQ(kPlaybackDuration - 10, - ParseInt(query_info[QUERY_KEY_PLAYBACK_DURATION_REMAINING])); + std::stoll(query_info[QUERY_KEY_PLAYBACK_DURATION_REMAINING])); EXPECT_EQ(kRenewalServerUrl, query_info[QUERY_KEY_RENEWAL_SERVER_URL]); policy_engine_->OnTimerEvent(); @@ -2781,9 +2774,9 @@ TEST_F(PolicyEngineQueryTest, QuerySuccess_RentalAndLicense0_WithPlayback) { EXPECT_EQ(QUERY_VALUE_TRUE, query_info[QUERY_KEY_RENEW_ALLOWED]); EXPECT_EQ(LLONG_MAX, - ParseInt(query_info[QUERY_KEY_LICENSE_DURATION_REMAINING])); + std::stoll(query_info[QUERY_KEY_LICENSE_DURATION_REMAINING])); EXPECT_EQ(10, - ParseInt(query_info[QUERY_KEY_PLAYBACK_DURATION_REMAINING])); + std::stoll(query_info[QUERY_KEY_PLAYBACK_DURATION_REMAINING])); EXPECT_EQ(kRenewalServerUrl, query_info[QUERY_KEY_RENEWAL_SERVER_URL]); policy_engine_->OnTimerEvent(); @@ -2798,9 +2791,9 @@ TEST_F(PolicyEngineQueryTest, QuerySuccess_RentalAndLicense0_WithPlayback) { EXPECT_EQ(QUERY_VALUE_TRUE, query_info[QUERY_KEY_RENEW_ALLOWED]); EXPECT_EQ(0, - ParseInt(query_info[QUERY_KEY_LICENSE_DURATION_REMAINING])); + std::stoll(query_info[QUERY_KEY_LICENSE_DURATION_REMAINING])); EXPECT_EQ(0, - ParseInt(query_info[QUERY_KEY_PLAYBACK_DURATION_REMAINING])); + std::stoll(query_info[QUERY_KEY_PLAYBACK_DURATION_REMAINING])); EXPECT_EQ(kRenewalServerUrl, query_info[QUERY_KEY_RENEWAL_SERVER_URL]); } @@ -2841,9 +2834,9 @@ TEST_F(PolicyEngineQueryTest, QuerySuccess_Durations0) { EXPECT_EQ(QUERY_VALUE_TRUE, query_info[QUERY_KEY_RENEW_ALLOWED]); EXPECT_EQ(LLONG_MAX, - ParseInt(query_info[QUERY_KEY_LICENSE_DURATION_REMAINING])); + std::stoll(query_info[QUERY_KEY_LICENSE_DURATION_REMAINING])); EXPECT_EQ(LLONG_MAX, - ParseInt(query_info[QUERY_KEY_PLAYBACK_DURATION_REMAINING])); + std::stoll(query_info[QUERY_KEY_PLAYBACK_DURATION_REMAINING])); EXPECT_EQ(kRenewalServerUrl, query_info[QUERY_KEY_RENEWAL_SERVER_URL]); } @@ -2874,9 +2867,9 @@ TEST_F(PolicyEngineQueryTest, QuerySuccess_LicenseWithFutureStartTime) { EXPECT_EQ(QUERY_VALUE_TRUE, query_info[QUERY_KEY_RENEW_ALLOWED]); EXPECT_EQ(kLowDuration, - ParseInt(query_info[QUERY_KEY_LICENSE_DURATION_REMAINING])); + std::stoll(query_info[QUERY_KEY_LICENSE_DURATION_REMAINING])); EXPECT_EQ(kPlaybackDuration, - ParseInt(query_info[QUERY_KEY_PLAYBACK_DURATION_REMAINING])); + std::stoll(query_info[QUERY_KEY_PLAYBACK_DURATION_REMAINING])); EXPECT_EQ(kRenewalServerUrl, query_info[QUERY_KEY_RENEWAL_SERVER_URL]); EXPECT_FALSE(policy_engine_->CanDecryptContent(kKeyId)); @@ -2892,9 +2885,9 @@ TEST_F(PolicyEngineQueryTest, QuerySuccess_LicenseWithFutureStartTime) { EXPECT_EQ(QUERY_VALUE_TRUE, query_info[QUERY_KEY_RENEW_ALLOWED]); EXPECT_EQ(kLowDuration - 25, - ParseInt(query_info[QUERY_KEY_LICENSE_DURATION_REMAINING])); + std::stoll(query_info[QUERY_KEY_LICENSE_DURATION_REMAINING])); EXPECT_EQ(kPlaybackDuration - 15, - ParseInt(query_info[QUERY_KEY_PLAYBACK_DURATION_REMAINING])); + std::stoll(query_info[QUERY_KEY_PLAYBACK_DURATION_REMAINING])); EXPECT_EQ(kRenewalServerUrl, query_info[QUERY_KEY_RENEWAL_SERVER_URL]); } @@ -2945,10 +2938,10 @@ TEST_F(PolicyEngineQueryTest, QuerySuccess_Renew) { EXPECT_EQ(QUERY_VALUE_TRUE, query_info[QUERY_KEY_RENEW_ALLOWED]); EXPECT_EQ(kLowDuration - kLicenseRenewalRetryInterval, - ParseInt(query_info[QUERY_KEY_LICENSE_DURATION_REMAINING])); + std::stoll(query_info[QUERY_KEY_LICENSE_DURATION_REMAINING])); EXPECT_EQ(kPlaybackDuration + 5 - license_renewal_delay - kLicenseRenewalRetryInterval - 15, - ParseInt(query_info[QUERY_KEY_PLAYBACK_DURATION_REMAINING])); + std::stoll(query_info[QUERY_KEY_PLAYBACK_DURATION_REMAINING])); EXPECT_EQ(kRenewalServerUrl, query_info[QUERY_KEY_RENEWAL_SERVER_URL]); } @@ -3003,10 +2996,10 @@ TEST_F(PolicyEngineQueryTest, QuerySuccess_RenewWithFutureStartTime) { EXPECT_EQ(QUERY_VALUE_TRUE, query_info[QUERY_KEY_RENEW_ALLOWED]); EXPECT_EQ(kLowDuration, - ParseInt(query_info[QUERY_KEY_LICENSE_DURATION_REMAINING])); + std::stoll(query_info[QUERY_KEY_LICENSE_DURATION_REMAINING])); EXPECT_EQ(kPlaybackDuration + 5 - license_renewal_delay - kLicenseRenewalRetryInterval - 20, - ParseInt(query_info[QUERY_KEY_PLAYBACK_DURATION_REMAINING])); + std::stoll(query_info[QUERY_KEY_PLAYBACK_DURATION_REMAINING])); EXPECT_EQ(kRenewalServerUrl, query_info[QUERY_KEY_RENEWAL_SERVER_URL]); policy_engine_->OnTimerEvent(); @@ -3019,10 +3012,10 @@ TEST_F(PolicyEngineQueryTest, QuerySuccess_RenewWithFutureStartTime) { EXPECT_EQ(QUERY_VALUE_TRUE, query_info[QUERY_KEY_RENEW_ALLOWED]); EXPECT_EQ(kLowDuration - 20, - ParseInt(query_info[QUERY_KEY_LICENSE_DURATION_REMAINING])); + std::stoll(query_info[QUERY_KEY_LICENSE_DURATION_REMAINING])); EXPECT_EQ(kPlaybackDuration + 5 - license_renewal_delay - kLicenseRenewalRetryInterval - 40, - ParseInt(query_info[QUERY_KEY_PLAYBACK_DURATION_REMAINING])); + std::stoll(query_info[QUERY_KEY_PLAYBACK_DURATION_REMAINING])); EXPECT_EQ(kRenewalServerUrl, query_info[QUERY_KEY_RENEWAL_SERVER_URL]); } diff --git a/libwvdrmengine/cdm/core/test/test_base.cpp b/libwvdrmengine/cdm/core/test/test_base.cpp index a0951c92..dbfb6b13 100644 --- a/libwvdrmengine/cdm/core/test/test_base.cpp +++ b/libwvdrmengine/cdm/core/test/test_base.cpp @@ -11,7 +11,6 @@ #include #include -#include #include #include @@ -226,10 +225,10 @@ void WvCdmTestBase::SetUp() { // dynamically using an environment variable. The model name will show up in // the license server logs as the part of the device idenfication as // "model_name". - std::stringstream ss; - ss << test_info->test_case_name() << "." << test_info->name(); + std::string model_name = + std::string(test_info->test_case_name()) + "." + test_info->name(); int overwrite = 1; // Set value even if already set. - setenv("MODEL_NAME", ss.str().c_str(), overwrite); + setenv("MODEL_NAME", model_name.c_str(), overwrite); CryptoSession::SetCryptoSessionFactory(new TestCryptoSessionFactory()); // TODO(fredgc): Add a test version of DeviceFiles. } diff --git a/libwvdrmengine/mediadrm/src/WVDrmPlugin.cpp b/libwvdrmengine/mediadrm/src/WVDrmPlugin.cpp index 9a7a091c..a4c74d17 100644 --- a/libwvdrmengine/mediadrm/src/WVDrmPlugin.cpp +++ b/libwvdrmengine/mediadrm/src/WVDrmPlugin.cpp @@ -12,7 +12,6 @@ #include #include -#include #include #include #include @@ -114,8 +113,8 @@ status_t WVDrmPlugin::openSession(Vector& sessionId) { if (isCdmResponseTypeSuccess(res) && info.count(QUERY_KEY_OEMCRYPTO_SESSION_ID)) { - OEMCrypto_SESSION oecSessionId; - istringstream(info[QUERY_KEY_OEMCRYPTO_SESSION_ID]) >> oecSessionId; + OEMCrypto_SESSION oecSessionId = + std::stoul(info[QUERY_KEY_OEMCRYPTO_SESSION_ID]); mCryptoSessions[cdmSessionId] = CryptoSession(oecSessionId); success = true; } else { diff --git a/libwvdrmengine/mediadrm/src_hidl/WVDrmPlugin.cpp b/libwvdrmengine/mediadrm/src_hidl/WVDrmPlugin.cpp index 360734ef..c26abf1b 100644 --- a/libwvdrmengine/mediadrm/src_hidl/WVDrmPlugin.cpp +++ b/libwvdrmengine/mediadrm/src_hidl/WVDrmPlugin.cpp @@ -10,6 +10,7 @@ #include #include +#include #include "WVDrmPlugin.h" @@ -229,9 +230,8 @@ Status WVDrmPlugin::openSessionCommon(std::vector& sessionId) { if (isCdmResponseTypeSuccess(res) && info.count(wvcdm::QUERY_KEY_OEMCRYPTO_SESSION_ID)) { - OEMCrypto_SESSION oecSessionId; - std::istringstream( - info[wvcdm::QUERY_KEY_OEMCRYPTO_SESSION_ID]) >> oecSessionId; + OEMCrypto_SESSION oecSessionId = + std::stoul(info[wvcdm::QUERY_KEY_OEMCRYPTO_SESSION_ID]); mCryptoSessions[cdmSessionId] = CryptoSession(oecSessionId); success = true; } else { diff --git a/libwvdrmengine/oemcrypto/test/oec_session_util.cpp b/libwvdrmengine/oemcrypto/test/oec_session_util.cpp index 4ed98c50..63951d2f 100644 --- a/libwvdrmengine/oemcrypto/test/oec_session_util.cpp +++ b/libwvdrmengine/oemcrypto/test/oec_session_util.cpp @@ -22,7 +22,6 @@ #include #include #include -#include #include #include "OEMCryptoCENC.h" @@ -554,9 +553,9 @@ void Session::FillSimpleMessage(uint32_t duration, uint32_t control, if (global_features.api_version >= 12) { // For version 12 and above, we require OEMCrypto to handle kcNN for all // licenses. - std::stringstream stream; - stream << "kc" << global_features.api_version; - memcpy(license_.keys[i].control.verification, stream.str().c_str(), 4); + std::string kcVersion = + "kc" + std::to_string(global_features.api_version); + memcpy(license_.keys[i].control.verification, kcVersion.c_str(), 4); } else if (control & wvoec::kControlSecurityPatchLevelMask) { // For versions before 12, we require the special key control block only // when there are newer features present. @@ -598,9 +597,9 @@ void Session::FillSimpleEntitlementMessage( if (global_features.api_version >= 12) { // For version 12 and above, we require OEMCrypto to handle kcNN for all // licenses. - std::stringstream stream; - stream << "kc" << global_features.api_version; - memcpy(license_.keys[i].control.verification, stream.str().c_str(), 4); + std::string kcVersion = + "kc" + std::to_string(global_features.api_version); + memcpy(license_.keys[i].control.verification, kcVersion.c_str(), 4); } else if (control & wvoec::kControlSecurityPatchLevelMask) { // For versions before 12, we require the special key control block only // when there are newer features present. @@ -631,10 +630,10 @@ void Session::FillRefreshMessage(size_t key_count, uint32_t control_bits, if (global_features.api_version >= 12) { // For version 12 and above, we require OEMCrypto to handle kcNN for all // licenses. - std::stringstream stream; - stream << "kc" << global_features.api_version; + std::string kcVersion = + "kc" + std::to_string(global_features.api_version); memcpy(encrypted_license().keys[i].control.verification, - stream.str().c_str(), 4); + kcVersion.c_str(), 4); } else { // For versions before 12, we require the special key control block only // when there are newer features present. diff --git a/libwvdrmengine/oemcrypto/test/oemcrypto_test.cpp b/libwvdrmengine/oemcrypto/test/oemcrypto_test.cpp index 21da261c..1f9aa46d 100644 --- a/libwvdrmengine/oemcrypto/test/oemcrypto_test.cpp +++ b/libwvdrmengine/oemcrypto/test/oemcrypto_test.cpp @@ -22,7 +22,6 @@ #include #include #include -#include #include #include @@ -5856,9 +5855,7 @@ TEST_F(UsageTableDefragTest, ReloadUsageEntryBadData) { } static std::string MakePST(size_t n) { - std::stringstream stream; - stream << "pst-" << n; - return stream.str(); + return "pst-" + std::to_string(n); } // This verifies we can actually create two hundered usage table entries.