feat: add components
This commit is contained in:
51
components/component-jose.js
Normal file
51
components/component-jose.js
Normal file
@@ -0,0 +1,51 @@
|
||||
|
||||
$ONCE('component-jose-requireJARS').run(() => {
|
||||
requireJAR('jose4j-0.5.5.jar');
|
||||
requireJAR('slf4j-api-1.7.21.jar');
|
||||
});
|
||||
|
||||
var JsonWebKey = Packages.org.jose4j.jwk.JsonWebKey;
|
||||
var JsonWebEncryption = Packages.org.jose4j.jwe.JsonWebEncryption;
|
||||
var AlgorithmConstraints = Packages.org.jose4j.jwa.AlgorithmConstraints;
|
||||
var ConstraintType = Packages.org.jose4j.jwa.AlgorithmConstraints.ConstraintType;
|
||||
var KeyManagementAlgorithmIdentifiers = Packages.org.jose4j.jwe.KeyManagementAlgorithmIdentifiers;
|
||||
var ContentEncryptionAlgorithmIdentifiers = Packages.org.jose4j.jwe.ContentEncryptionAlgorithmIdentifiers;
|
||||
|
||||
var jwkLoad = (jwkJSONString) => {
|
||||
return JsonWebKey.Factory.newJwk(jwkJSONString);
|
||||
}
|
||||
|
||||
var jweEnc = (jwk, txt) => {
|
||||
var jwe = new JsonWebEncryption();
|
||||
jwe.setPlaintext(txt);
|
||||
jwe.setAlgorithmHeaderValue(KeyManagementAlgorithmIdentifiers.DIRECT);
|
||||
jwe.setEncryptionMethodHeaderParameter(ContentEncryptionAlgorithmIdentifiers.AES_128_GCM);
|
||||
jwe.setKey(jwk.getKey());
|
||||
return jwe.getCompactSerialization();
|
||||
};
|
||||
|
||||
var jweDec = (jwk, compactSerialization) => {
|
||||
var jwe = new JsonWebEncryption();
|
||||
var algConstraints = new AlgorithmConstraints(ConstraintType.WHITELIST, KeyManagementAlgorithmIdentifiers.DIRECT);
|
||||
jwe.setAlgorithmConstraints(algConstraints);
|
||||
var encConstraints = new AlgorithmConstraints(ConstraintType.WHITELIST, ContentEncryptionAlgorithmIdentifiers.AES_128_GCM);
|
||||
jwe.setContentEncryptionAlgorithmConstraints(encConstraints);
|
||||
jwe.setCompactSerialization(compactSerialization);
|
||||
jwe.setKey(jwk.getKey());
|
||||
return receiverJwe.getPlaintextString();
|
||||
};
|
||||
|
||||
var jwk = {
|
||||
"load": jwkLoad
|
||||
};
|
||||
var jwe = {
|
||||
"enc": jweEnc,
|
||||
"dec": jweDec
|
||||
};
|
||||
|
||||
|
||||
if (typeof exports == 'object') {
|
||||
exports.jwk = jwk;
|
||||
exports.jwe = jwe;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user