Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
tree: ac32047903
Fetching contributors…

Cannot retrieve contributors at this time

31 lines (23 sloc) 1.035 kb
-module(oauth_rsa_sha1).
-export([signature/2, verify/3]).
-include_lib("public_key/include/public_key.hrl").
signature(BaseString, PrivateKeyPath) ->
{ok, [Info]} = public_key:pem_to_der(PrivateKeyPath),
{ok, PrivateKey} = public_key:decode_private_key(Info),
base64:encode_to_string(public_key:sign(list_to_binary(BaseString), PrivateKey)).
verify(Signature, BaseString, PublicKey) ->
public_key:verify_signature(to_binary(BaseString), sha, base64:decode(Signature), public_key(PublicKey)).
to_binary(Term) when is_list(Term) ->
list_to_binary(Term);
to_binary(Term) when is_binary(Term) ->
Term.
public_key(Path) when is_list(Path) ->
{ok, [{cert, DerCert, not_encrypted}]} = public_key:pem_to_der(Path),
{ok, Cert} = public_key:pkix_decode_cert(DerCert, otp),
public_key(Cert);
public_key(#'OTPCertificate'{tbsCertificate=Cert}) ->
public_key(Cert);
public_key(#'OTPTBSCertificate'{subjectPublicKeyInfo=Info}) ->
public_key(Info);
public_key(#'OTPSubjectPublicKeyInfo'{subjectPublicKey=Key}) ->
Key.
Jump to Line
Something went wrong with that request. Please try again.