| 460 | } |
| 461 | |
| 462 | std::shared_ptr<i2p::crypto::CryptoKeyEncryptor> IdentityEx::CreateEncryptor (CryptoKeyType keyType, const uint8_t * key) |
| 463 | { |
| 464 | switch (keyType) |
| 465 | { |
| 466 | case CRYPTO_KEY_TYPE_ELGAMAL: |
| 467 | return std::make_shared<i2p::crypto::ElGamalEncryptor>(key); |
| 468 | break; |
| 469 | case CRYPTO_KEY_TYPE_ECIES_X25519_AEAD: |
| 470 | case CRYPTO_KEY_TYPE_ECIES_MLKEM512_X25519_AEAD: |
| 471 | case CRYPTO_KEY_TYPE_ECIES_MLKEM768_X25519_AEAD: |
| 472 | case CRYPTO_KEY_TYPE_ECIES_MLKEM1024_X25519_AEAD: |
| 473 | return std::make_shared<i2p::crypto::ECIESX25519AEADRatchetEncryptor>(key); |
| 474 | break; |
| 475 | case CRYPTO_KEY_TYPE_ECIES_P256_SHA256_AES256CBC: |
| 476 | return std::make_shared<i2p::crypto::ECIESP256Encryptor>(key); |
| 477 | break; |
| 478 | default: |
| 479 | LogPrint (eLogError, "Identity: Unknown crypto key type ", (int)keyType); |
| 480 | }; |
| 481 | return nullptr; |
| 482 | } |
| 483 | |
| 484 | std::shared_ptr<i2p::crypto::CryptoKeyEncryptor> IdentityEx::CreateEncryptor (const uint8_t * key) const |
| 485 | { |