Index: extensions/browser/api/cast_channel/cast_auth_util.cc |
diff --git a/extensions/browser/api/cast_channel/cast_auth_util.cc b/extensions/browser/api/cast_channel/cast_auth_util.cc |
index 68cb9f321fccacae26cb9724966405155d1c8735..07661571f3bb267a1a6541c2863a9d425d927b49 100644 |
--- a/extensions/browser/api/cast_channel/cast_auth_util.cc |
+++ b/extensions/browser/api/cast_channel/cast_auth_util.cc |
@@ -17,6 +17,9 @@ namespace { |
const char* const kParseErrorPrefix = "Failed to parse auth message: "; |
+const char kAudioOnlyPolicy[] = |
+ {0x06, 0x0A, 0x2B, 0x06, 0x01, 0x04, 0x01, 0xD6, 0x79, 0x02, 0x05, 0x02}; |
+ |
// Extracts an embedded DeviceAuthMessage payload from an auth challenge reply |
// message. |
AuthResult ParseAuthMessage(const CastMessage& challenge_reply, |
@@ -54,7 +57,8 @@ AuthResult ParseAuthMessage(const CastMessage& challenge_reply, |
} // namespace |
-AuthResult::AuthResult() : error_type(ERROR_NONE), nss_error_code(0) { |
+AuthResult::AuthResult() |
+ : error_type(ERROR_NONE), nss_error_code(0), channel_policy(POLICY_NONE) { |
} |
AuthResult::~AuthResult() { |
@@ -101,7 +105,12 @@ AuthResult AuthenticateChallengeReply(const CastMessage& challenge_reply, |
return result; |
} |
- return AuthResult(); |
+ if (response.client_auth_certificate().find(kAudioOnlyPolicy) != |
+ std::string::npos) { |
+ result.channel_policy |= AuthResult::POLICY_AUDIO_ONLY; |
+ } |
+ |
+ return result; |
} |
} // namespace cast_channel |