diff options
| author | Jeff Tinker <jtinker@google.com> | 2014-03-04 13:21:31 -0800 | 
|---|---|---|
| committer | Jeff Tinker <jtinker@google.com> | 2014-03-29 08:43:09 -0700 | 
| commit | 68d9d71a792deed75d32fe13febc07c9c12c8449 (patch) | |
| tree | 15ba0a2a541bd0b69fa286d04c9cc40d30b49871 /drm/mediadrm | |
| parent | 1000d426bedb1ec38bdfff98fc8f004b64af13cb (diff) | |
| download | frameworks_av-68d9d71a792deed75d32fe13febc07c9c12c8449.zip frameworks_av-68d9d71a792deed75d32fe13febc07c9c12c8449.tar.gz frameworks_av-68d9d71a792deed75d32fe13febc07c9c12c8449.tar.bz2  | |
Support CAST V2 Authentication in MediaDrm
Java API version
Update frameworks to enable support for CAST
V2 Authentication in the DRM Plugin.
Change-Id: I9066ada0edf8e0d777c503897d8c7fc7f76f2861
related-to-bug: 12702350
Diffstat (limited to 'drm/mediadrm')
| -rw-r--r-- | drm/mediadrm/plugins/mock/MockDrmCryptoPlugin.cpp | 39 | ||||
| -rw-r--r-- | drm/mediadrm/plugins/mock/MockDrmCryptoPlugin.h | 16 | 
2 files changed, 48 insertions, 7 deletions
diff --git a/drm/mediadrm/plugins/mock/MockDrmCryptoPlugin.cpp b/drm/mediadrm/plugins/mock/MockDrmCryptoPlugin.cpp index f2cadf7..df0bca3 100644 --- a/drm/mediadrm/plugins/mock/MockDrmCryptoPlugin.cpp +++ b/drm/mediadrm/plugins/mock/MockDrmCryptoPlugin.cpp @@ -45,7 +45,7 @@ namespace android {      // MockDrmFactory      bool MockDrmFactory::isCryptoSchemeSupported(const uint8_t uuid[16])      { -        return (!memcmp(uuid, mock_uuid, sizeof(uuid))); +        return (!memcmp(uuid, mock_uuid, sizeof(mock_uuid)));      }      bool MockDrmFactory::isContentTypeSupported(const String8 &mimeType) @@ -65,7 +65,7 @@ namespace android {      // MockCryptoFactory      bool MockCryptoFactory::isCryptoSchemeSupported(const uint8_t uuid[16]) const      { -        return (!memcmp(uuid, mock_uuid, sizeof(uuid))); +        return (!memcmp(uuid, mock_uuid, sizeof(mock_uuid)));      }      status_t MockCryptoFactory::createPlugin(const uint8_t uuid[16], const void *data, @@ -254,7 +254,9 @@ namespace android {          return OK;      } -    status_t MockDrmPlugin::getProvisionRequest(Vector<uint8_t> &request, +    status_t MockDrmPlugin::getProvisionRequest(String8 const &certType, +                                                String8 const &certAuthority, +                                                Vector<uint8_t> &request,                                                  String8 &defaultUrl)      {          Mutex::Autolock lock(mLock); @@ -282,7 +284,9 @@ namespace android {          return OK;      } -    status_t MockDrmPlugin::provideProvisionResponse(Vector<uint8_t> const &response) +    status_t MockDrmPlugin::provideProvisionResponse(Vector<uint8_t> const &response, +                                                     Vector<uint8_t> &certificate, +                                                     Vector<uint8_t> &wrappedKey)      {          Mutex::Autolock lock(mLock);          ALOGD("MockDrmPlugin::provideProvisionResponse(%s)", @@ -600,6 +604,33 @@ namespace android {          return OK;      } +    status_t MockDrmPlugin::signRSA(Vector<uint8_t> const &sessionId, +                                    String8 const &algorithm, +                                    Vector<uint8_t> const &message, +                                    Vector<uint8_t> const &wrappedKey, +                                    Vector<uint8_t> &signature) +    { +        Mutex::Autolock lock(mLock); +        ALOGD("MockDrmPlugin::signRSA(sessionId=%s, algorithm=%s, keyId=%s, " +              "message=%s, signature=%s)", +              vectorToString(sessionId).string(), +              algorithm.string(), +              vectorToString(message).string(), +              vectorToString(wrappedKey).string(), +              vectorToString(signature).string()); + +        // Properties used in mock test, set by mock plugin and verifed cts test app +        //   byte[] wrappedKey         -> mock-wrappedkey +        //   byte[] message            -> mock-message +        //   byte[] signature          -> mock-signature +        mByteArrayProperties.add(String8("mock-sessionid"), sessionId); +        mStringProperties.add(String8("mock-algorithm"), algorithm); +        mByteArrayProperties.add(String8("mock-message"), message); +        mByteArrayProperties.add(String8("mock-wrappedkey"), wrappedKey); +        mByteArrayProperties.add(String8("mock-signature"), signature); +        return OK; +    } +      ssize_t MockDrmPlugin::findSession(Vector<uint8_t> const &sessionId) const      {          ALOGD("findSession: nsessions=%d, size=%d", mSessions.size(), sessionId.size()); diff --git a/drm/mediadrm/plugins/mock/MockDrmCryptoPlugin.h b/drm/mediadrm/plugins/mock/MockDrmCryptoPlugin.h index 2297f9b..97d7052 100644 --- a/drm/mediadrm/plugins/mock/MockDrmCryptoPlugin.h +++ b/drm/mediadrm/plugins/mock/MockDrmCryptoPlugin.h @@ -76,10 +76,14 @@ namespace android {          status_t queryKeyStatus(Vector<uint8_t> const &sessionId,                                  KeyedVector<String8, String8> &infoMap) const; -        status_t getProvisionRequest(Vector<uint8_t> &request, -                                             String8 &defaultUrl); +        status_t getProvisionRequest(String8 const &certType, +                                     String8 const &certAuthority, +                                     Vector<uint8_t> &request, +                                     String8 &defaultUrl); -        status_t provideProvisionResponse(Vector<uint8_t> const &response); +        status_t provideProvisionResponse(Vector<uint8_t> const &response, +                                          Vector<uint8_t> &certificate, +                                          Vector<uint8_t> &wrappedKey);          status_t getSecureStops(List<Vector<uint8_t> > &secureStops);          status_t releaseSecureStops(Vector<uint8_t> const &ssRelease); @@ -122,6 +126,12 @@ namespace android {                          Vector<uint8_t> const &signature,                          bool &match); +        status_t signRSA(Vector<uint8_t> const &sessionId, +                         String8 const &algorithm, +                         Vector<uint8_t> const &message, +                         Vector<uint8_t> const &wrappedKey, +                         Vector<uint8_t> &signature); +      private:          String8 vectorToString(Vector<uint8_t> const &vector) const;          String8 arrayToString(uint8_t const *array, size_t len) const;  | 
