Packages

Cryptography library for Gleam targeting Erlang and JavaScript

Current section

Files

Jump to
kryptos src kryptos@internal@rsa.erl
Raw

src/kryptos@internal@rsa.erl

-module(kryptos@internal@rsa).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/kryptos/internal/rsa.gleam").
-export([private_key_from_pkcs8/1, public_key_from_x509/1]).
-if(?OTP_RELEASE >= 27).
-define(MODULEDOC(Str), -moduledoc(Str)).
-define(DOC(Str), -doc(Str)).
-else.
-define(MODULEDOC(Str), -compile([])).
-define(DOC(Str), -compile([])).
-endif.
?MODULEDOC(false).
-file("src/kryptos/internal/rsa.gleam", 6).
?DOC(false).
-spec private_key_from_pkcs8(bitstring()) -> {ok,
{kryptos@rsa:private_key(), kryptos@rsa:public_key()}} |
{error, nil}.
private_key_from_pkcs8(Der_bytes) ->
_pipe = kryptos_ffi:rsa_import_private_key_der(Der_bytes, pkcs8),
gleam@result:map_error(_pipe, fun(_) -> nil end).
-file("src/kryptos/internal/rsa.gleam", 15).
?DOC(false).
-spec public_key_from_x509(bitstring()) -> {ok, kryptos@rsa:public_key()} |
{error, nil}.
public_key_from_x509(Der_bytes) ->
_pipe = kryptos_ffi:rsa_import_public_key_der(Der_bytes, spki),
gleam@result:map_error(_pipe, fun(_) -> nil end).