Шифрование RSA-OAEP sha-1 spki по Public ключу

у меня есть кусок кода с сайта, я делаю запрос некий (не важно какой) на сайт, он выдает мне publicKey, поэтому ключу нужно зашифровать методом rsa-sha-1 текст, дальше отправить на сайт и сайт через PrivateKey (который нам не дает) попробует расшифровать наш текст, если расшифрует, отправляет положительный ответ, если нет, отрицательный. Так вот суть в том есть ли реализации данного момента на Delphi или возможно кто-то подскажет как это можно реализовать, потому что сколько не бился, не получается найти даже примерно что-то похожее на то что нужно... На js есть несколько вариаций реализации нужного результата https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/importKey, но даже на js у меня не вышло получить нужный результат, т.к. я с ним практически не знаком...

                    var t, r, i;
                    return a.__generator(this, function(e) {
                        switch (e.label) {
                            case 0:
                                this.operation = o, e.label = 1;
                            case 1:
                                return e.trys.push([1, 4, , 5]), [4, crypto.subtle.importKey("spki", Object(T.k)(atob(o.publicKey)), {
                                    name: "RSA-OAEP",
                                    hash: {
                                        name: "SHA-1"
                                    }
                                }, !1, ["encrypt"])];
                            case 2:
                                return t = e.sent(), [4, crypto.subtle.encrypt({
                                    name: "RSA-OAEP",
                                    hash: {
                                        name: "SHA-1"
                                    }
                                }, t, Object(T.k)(this.pinValue))];
                            case 3:
                                return r = e.sent(), this.encryptedPin = btoa(Object(T.b)(r)), this.loading = !1, o.confirmationRequired ? (this.step = p.CONFIRM, this.smsCountdown(!0)) : this.submitPin(!1), [3, 5];
                            case 4:
                                return i = e.sent(), this.changePinError(i), [3, 5];
                            case 5:
                                return [2]
                        }
                    })
                })```


Ответы (0 шт):