1%% -*- mode: erlang; tab-width: 4; indent-tabs-mode: 1; st-rulers: [70] -*-
2%% vim: ts=4 sw=4 ft=erlang noet
3%%%-------------------------------------------------------------------
4%%% @author Andrew Bennett <potatosaladx@gmail.com>
5%%% @copyright 2014-2017, Andrew Bennett
6%%% @doc
7%%%
8%%% @end
9%%% Created :  12 May 2017 by Andrew Bennett <potatosaladx@gmail.com>
10%%%-------------------------------------------------------------------
11
12-ifndef(JOSE_PUBLIC_KEY_HRL).
13
14-include_lib("public_key/include/public_key.hrl").
15
16-ifndef('id-aes128-CBC').
17-define('id-aes128-CBC', {2,16,840,1,101,3,4,1,2}).
18-endif.
19
20-ifndef('id-aes192-CBC').
21-define('id-aes192-CBC', {2,16,840,1,101,3,4,1,22}).
22-endif.
23
24-ifndef('id-aes256-CBC').
25-define('id-aes256-CBC', {2,16,840,1,101,3,4,1,42}).
26-endif.
27
28-define('jose_id-X25519', {1,3,101,110}).
29-define('jose_id-X448', {1,3,101,111}).
30-define('jose_id-EdDSA25519', {1,3,101,112}).
31-define('jose_id-EdDSA448', {1,3,101,113}).
32
33-record(jose_EdDSA25519PublicKey, {
34	publicKey = undefined :: undefined | << _:256 >>
35}).
36
37-record(jose_EdDSA25519PrivateKey, {
38	publicKey = undefined :: undefined | #jose_EdDSA25519PublicKey{},
39	privateKey = undefined :: undefined | << _:256 >>
40}).
41
42-record(jose_EdDSA448PublicKey, {
43	publicKey = undefined :: undefined | << _:456 >>
44}).
45
46-record(jose_EdDSA448PrivateKey, {
47	publicKey = undefined :: undefined | #jose_EdDSA448PublicKey{},
48	privateKey = undefined :: undefined | << _:456 >>
49}).
50
51-record(jose_X25519PublicKey, {
52	publicKey = undefined :: undefined | << _:256 >>
53}).
54
55-record(jose_X25519PrivateKey, {
56	publicKey = undefined :: undefined | #jose_X25519PublicKey{},
57	privateKey = undefined :: undefined | << _:256 >>
58}).
59
60-record(jose_X448PublicKey, {
61	publicKey = undefined :: undefined | << _:448 >>
62}).
63
64-record(jose_X448PrivateKey, {
65	publicKey = undefined :: undefined | #jose_X448PublicKey{},
66	privateKey = undefined :: undefined | << _:448 >>
67}).
68
69-define(JOSE_PUBLIC_KEY_HRL, 1).
70
71-endif.
72