mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-08 08:48:39 +09:00
import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo
This commit is contained in:
commit
dcd9973243
150858 changed files with 23884658 additions and 0 deletions
|
|
@ -0,0 +1,64 @@
|
|||
// Expect utf8decoder and utf8decoder to be TextEncoder('utf-8') and TextDecoder('utf-8') respectively
|
||||
|
||||
function MessageHandler( keysystem, content ) {
|
||||
this._keysystem = keysystem;
|
||||
this._content = content;
|
||||
this.messagehandler = MessageHandler.prototype.messagehandler.bind( this );
|
||||
this.servercertificate = undefined;
|
||||
}
|
||||
|
||||
MessageHandler.prototype.messagehandler = function messagehandler( messageType, message )
|
||||
{
|
||||
if ( messageType === 'license-request' )
|
||||
{
|
||||
var request = fromUtf8( message );
|
||||
|
||||
var keys = request.kids.map( function( kid ) {
|
||||
|
||||
var key;
|
||||
for( var i=0; i < this._content.keys.length; ++i )
|
||||
{
|
||||
if ( base64urlEncode( this._content.keys[ i ].kid ) === kid )
|
||||
{
|
||||
key = base64urlEncode( this._content.keys[ i ].key );
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return { kty: 'oct', kid: kid, k: key };
|
||||
|
||||
}.bind( this ) );
|
||||
|
||||
return Promise.resolve( toUtf8( { keys: keys } ) );
|
||||
}
|
||||
else if ( messageType === 'license-release' )
|
||||
{
|
||||
var release = fromUtf8( message );
|
||||
|
||||
// TODO: Check the license release message here
|
||||
|
||||
return Promise.resolve( toUtf8( { kids: release.kids } ) );
|
||||
}
|
||||
|
||||
throw new TypeError( 'Unsupported message type for ClearKey' );
|
||||
};
|
||||
|
||||
MessageHandler.prototype.createJWKSet = function createJWKSet(keyId, key) {
|
||||
var jwkSet = '{"keys":[';
|
||||
for (var i = 0; i < arguments.length; i++) {
|
||||
if (i != 0)
|
||||
jwkSet += ',';
|
||||
jwkSet += arguments[i];
|
||||
}
|
||||
jwkSet += ']}';
|
||||
return jwkSet;
|
||||
};
|
||||
|
||||
MessageHandler.prototype.createJWK = function createJWK(keyId, key) {
|
||||
var jwk = '{"kty":"oct","alg":"A128KW","kid":"';
|
||||
jwk += base64urlEncode(keyId);
|
||||
jwk += '","k":"';
|
||||
jwk += base64urlEncode(key);
|
||||
jwk += '"}';
|
||||
return jwk;
|
||||
};
|
||||
Loading…
Add table
Add a link
Reference in a new issue