UNPKG

wallee

Version:
57 lines (56 loc) 2.49 kB
"use strict"; /* 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;