wallee
Version:
TypeScript/JavaScript client for wallee
57 lines (56 loc) • 2.49 kB
JavaScript
;
/* tslint:disable */
/* eslint-disable */
/**
* Wallee AG TypeScript SDK
*
* This library allows to interact with the Wallee AG payment service.
*
* Copyright owner: Wallee AG
* Website: https://en.wallee.com
* Developer email: ecosystem-team@wallee.com
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.EncryptionUtil = void 0;
const starkbank_ecdsa_1 = require("starkbank-ecdsa");
const WalleeSdkException_1 = require("../models/WalleeSdkException");
const SdkExceptionErrorCodes_1 = require("../models/SdkExceptionErrorCodes");
class EncryptionUtil {
constructor() { }
static isContentValid(contentToVerify, contentSignature, encodedPublicKey) {
const pubKeyPem = `-----BEGIN PUBLIC KEY-----\n${encodedPublicKey}\n-----END PUBLIC KEY-----`;
let publicKey;
try {
publicKey = starkbank_ecdsa_1.PublicKey.fromPem(pubKeyPem);
}
catch (error) {
throw new WalleeSdkException_1.WalleeSdkException(SdkExceptionErrorCodes_1.SdkExceptionErrorCodes.INVALID_WEBHOOK_ENCRYPTION_PUBLIC_KEY, `Invalid public key: ${error.message}`);
}
let signature;
try {
signature = starkbank_ecdsa_1.Signature.fromBase64(contentSignature);
}
catch (error) {
throw new WalleeSdkException_1.WalleeSdkException(SdkExceptionErrorCodes_1.SdkExceptionErrorCodes.INVALID_WEBHOOK_ENCRYPTION_CONTENT_SIGNATURE, `Invalid webhook content signature: ${error.message}`);
}
try {
return starkbank_ecdsa_1.Ecdsa.verify(contentToVerify, signature, publicKey);
}
catch (error) {
throw new WalleeSdkException_1.WalleeSdkException(SdkExceptionErrorCodes_1.SdkExceptionErrorCodes.WEBHOOK_ENCRYPTION_SIGNATURE_VERIFICATION_FAILED, `Content verification failed: ${error.message}`);
}
}
}
exports.EncryptionUtil = EncryptionUtil;