Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
ruanhaishen
Nodemcu Firmware
Commits
e905c24d
Commit
e905c24d
authored
Oct 08, 2015
by
Johny Mattsson
Browse files
Removed unsused, now incompatible SSL code.
parent
21c4e110
Changes
42
Expand all
Hide whitespace changes
Inline
Side-by-side
app/include/pp/esf_buf.h
deleted
100644 → 0
View file @
21c4e110
/*
* copyright (c) 2008 - 2012 Espressif System
*
* esf buffer data structure
*/
#ifndef _ESF_BUF_H_
#define _ESF_BUF_H_
#define EP_OFFSET 36
/* see comments in pbuf.h */
#endif
/* _ESF_BUF_H_ */
app/include/ssl/app/espconn_secure.h
deleted
100644 → 0
View file @
21c4e110
#ifndef __ESPCONN_ENCRY_H__
#define __ESPCONN_ENCRY_H__
#include "espconn/espconn.h"
/******************************************************************************
* FunctionName : espconn_encry_connect
* Description : The function given as connection
* Parameters : espconn -- the espconn used to connect with the host
* Returns : none
*******************************************************************************/
sint8
espconn_secure_connect
(
struct
espconn
*
espconn
);
/******************************************************************************
* FunctionName : espconn_encry_disconnect
* Description : The function given as the disconnection
* Parameters : espconn -- the espconn used to disconnect with the host
* Returns : none
*******************************************************************************/
extern
sint8
espconn_secure_disconnect
(
struct
espconn
*
espconn
);
/******************************************************************************
* FunctionName : espconn_encry_sent
* Description : sent data for client or server
* Parameters : espconn -- espconn to set for client or server
* psent -- data to send
* length -- length of data to send
* Returns : none
*******************************************************************************/
extern
sint8
espconn_secure_sent
(
struct
espconn
*
espconn
,
uint8
*
psent
,
uint16
length
);
/******************************************************************************
* FunctionName : espconn_secure_accept
* Description : The function given as the listen
* Parameters : espconn -- the espconn used to listen the connection
* Returns : none
*******************************************************************************/
extern
sint8
espconn_secure_accept
(
struct
espconn
*
espconn
);
#endif
app/include/ssl/app/espconn_ssl.h
deleted
100644 → 0
View file @
21c4e110
#ifndef ESPCONN_SSL_CLIENT_H
#define ESPCONN_SSL_CLIENT_H
#include "ssl/ssl_ssl.h"
#include "ssl/ssl_tls1.h"
#include "lwip/app/espconn.h"
typedef
struct
_ssl_msg
{
SSL_CTX
*
ssl_ctx
;
SSL
*
ssl
;
bool
quiet
;
char
*
private_key_file
;
uint8_t
session_id
[
SSL_SESSION_ID_SIZE
];
u16_t
pkt_length
;
}
ssl_msg
;
/******************************************************************************
* FunctionName : sslserver_start
* Description : Initialize the server: set up a listen PCB and bind it to
* the defined port
* Parameters : espconn -- the espconn used to build client
* Returns : none
*******************************************************************************/
extern
sint8
espconn_ssl_server
(
struct
espconn
*
espconn
);
/******************************************************************************
* FunctionName : espconn_ssl_client
* Description : Initialize the client: set up a connect PCB and bind it to
* the defined port
* Parameters : espconn -- the espconn used to build client
* Returns : none
*******************************************************************************/
extern
sint8
espconn_ssl_client
(
struct
espconn
*
espconn
);
/******************************************************************************
* FunctionName : espconn_ssl_write
* Description : sent data for client or server
* Parameters : void *arg -- client or server to send
* uint8* psent -- Data to send
* uint16 length -- Length of data to send
* Returns : none
*******************************************************************************/
extern
void
espconn_ssl_sent
(
void
*
arg
,
uint8
*
psent
,
uint16
length
);
/******************************************************************************
* FunctionName : espconn_ssl_disconnect
* Description : A new incoming connection has been disconnected.
* Parameters : espconn -- the espconn used to disconnect with host
* Returns : none
*******************************************************************************/
extern
void
espconn_ssl_disconnect
(
espconn_msg
*
pdis
);
#endif
app/include/ssl/cert.h
deleted
100644 → 0
View file @
21c4e110
unsigned
char
default_certificate
[]
=
{
0x30
,
0x82
,
0x01
,
0x82
,
0x30
,
0x81
,
0xec
,
0x02
,
0x09
,
0x00
,
0x88
,
0xf2
,
0x5f
,
0x46
,
0x12
,
0x2e
,
0x3d
,
0x3a
,
0x30
,
0x0d
,
0x06
,
0x09
,
0x2a
,
0x86
,
0x48
,
0x86
,
0xf7
,
0x0d
,
0x01
,
0x01
,
0x05
,
0x05
,
0x00
,
0x30
,
0x1c
,
0x31
,
0x1a
,
0x30
,
0x18
,
0x06
,
0x03
,
0x55
,
0x04
,
0x0a
,
0x13
,
0x11
,
0x77
,
0x77
,
0x77
,
0x2e
,
0x65
,
0x73
,
0x70
,
0x72
,
0x65
,
0x73
,
0x73
,
0x69
,
0x66
,
0x2e
,
0x63
,
0x6f
,
0x6d
,
0x30
,
0x1e
,
0x17
,
0x0d
,
0x31
,
0x34
,
0x30
,
0x36
,
0x32
,
0x34
,
0x31
,
0x30
,
0x32
,
0x32
,
0x33
,
0x33
,
0x5a
,
0x17
,
0x0d
,
0x32
,
0x38
,
0x30
,
0x33
,
0x30
,
0x32
,
0x31
,
0x30
,
0x32
,
0x32
,
0x33
,
0x33
,
0x5a
,
0x30
,
0x34
,
0x31
,
0x12
,
0x30
,
0x10
,
0x06
,
0x03
,
0x55
,
0x04
,
0x0a
,
0x13
,
0x09
,
0x65
,
0x73
,
0x70
,
0x72
,
0x65
,
0x73
,
0x73
,
0x69
,
0x66
,
0x31
,
0x1e
,
0x30
,
0x1c
,
0x06
,
0x03
,
0x55
,
0x04
,
0x03
,
0x13
,
0x15
,
0x65
,
0x73
,
0x70
,
0x72
,
0x65
,
0x73
,
0x73
,
0x69
,
0x66
,
0x20
,
0x49
,
0x6f
,
0x54
,
0x20
,
0x70
,
0x72
,
0x6f
,
0x6a
,
0x65
,
0x63
,
0x74
,
0x30
,
0x5c
,
0x30
,
0x0d
,
0x06
,
0x09
,
0x2a
,
0x86
,
0x48
,
0x86
,
0xf7
,
0x0d
,
0x01
,
0x01
,
0x01
,
0x05
,
0x00
,
0x03
,
0x4b
,
0x00
,
0x30
,
0x48
,
0x02
,
0x41
,
0x00
,
0xb9
,
0x83
,
0x30
,
0xca
,
0xfb
,
0xec
,
0x11
,
0x9e
,
0x94
,
0xb7
,
0x89
,
0xf2
,
0x84
,
0x2c
,
0xda
,
0xe1
,
0x9a
,
0x53
,
0x3a
,
0x1b
,
0x6e
,
0xc9
,
0x85
,
0x81
,
0xf9
,
0xa3
,
0x41
,
0xdb
,
0xe2
,
0x82
,
0x3b
,
0xfa
,
0x80
,
0x22
,
0x3b
,
0x81
,
0x6d
,
0x25
,
0x73
,
0x7e
,
0xf6
,
0x49
,
0xcc
,
0x69
,
0x3c
,
0x6c
,
0xd8
,
0x05
,
0xfb
,
0x92
,
0x02
,
0xcf
,
0x19
,
0x2a
,
0x10
,
0x7d
,
0x69
,
0x7a
,
0xd8
,
0x9d
,
0xd3
,
0xcf
,
0x6c
,
0xef
,
0x02
,
0x03
,
0x01
,
0x00
,
0x01
,
0x30
,
0x0d
,
0x06
,
0x09
,
0x2a
,
0x86
,
0x48
,
0x86
,
0xf7
,
0x0d
,
0x01
,
0x01
,
0x05
,
0x05
,
0x00
,
0x03
,
0x81
,
0x81
,
0x00
,
0x2d
,
0x63
,
0x58
,
0x21
,
0xe3
,
0x8b
,
0x37
,
0x0d
,
0x28
,
0x68
,
0x11
,
0x0e
,
0x4d
,
0xdd
,
0xf3
,
0xea
,
0xdb
,
0xec
,
0xd7
,
0x09
,
0x47
,
0x2c
,
0xa1
,
0xd8
,
0xd1
,
0x71
,
0x83
,
0x11
,
0xb4
,
0x17
,
0xbc
,
0x83
,
0xea
,
0x5a
,
0xd6
,
0x73
,
0x02
,
0x25
,
0x87
,
0x01
,
0x76
,
0xfc
,
0x59
,
0x1a
,
0xcf
,
0xd9
,
0x49
,
0xc9
,
0xf9
,
0x1f
,
0x5c
,
0x3b
,
0x24
,
0x6a
,
0x5c
,
0xa5
,
0xca
,
0xe6
,
0x5d
,
0x34
,
0x5b
,
0x5f
,
0xcf
,
0x56
,
0x9c
,
0x71
,
0xd2
,
0x6b
,
0xdd
,
0x1f
,
0x15
,
0xae
,
0x4d
,
0xf1
,
0xca
,
0x35
,
0xc8
,
0xdd
,
0x93
,
0x1b
,
0x58
,
0x1e
,
0x94
,
0x08
,
0xcf
,
0xa0
,
0x20
,
0xb9
,
0x75
,
0xa5
,
0x4c
,
0x77
,
0xf5
,
0x7f
,
0xed
,
0xd5
,
0xcd
,
0x53
,
0xaa
,
0x87
,
0xa6
,
0x3c
,
0xf5
,
0x72
,
0xd8
,
0xd2
,
0xb0
,
0xf7
,
0x11
,
0xb0
,
0x0e
,
0xe9
,
0x41
,
0xd6
,
0x8e
,
0xd9
,
0x07
,
0xf8
,
0xed
,
0xf8
,
0x67
,
0x7f
,
0x28
,
0x18
,
0xf0
,
0x1b
,
0x29
,
0x11
};
unsigned
int
default_certificate_len
=
390
;
app/include/ssl/private_key.h
deleted
100644 → 0
View file @
21c4e110
unsigned
char
default_private_key
[]
=
{
0x30
,
0x82
,
0x01
,
0x3a
,
0x02
,
0x01
,
0x00
,
0x02
,
0x41
,
0x00
,
0xb9
,
0x83
,
0x30
,
0xca
,
0xfb
,
0xec
,
0x11
,
0x9e
,
0x94
,
0xb7
,
0x89
,
0xf2
,
0x84
,
0x2c
,
0xda
,
0xe1
,
0x9a
,
0x53
,
0x3a
,
0x1b
,
0x6e
,
0xc9
,
0x85
,
0x81
,
0xf9
,
0xa3
,
0x41
,
0xdb
,
0xe2
,
0x82
,
0x3b
,
0xfa
,
0x80
,
0x22
,
0x3b
,
0x81
,
0x6d
,
0x25
,
0x73
,
0x7e
,
0xf6
,
0x49
,
0xcc
,
0x69
,
0x3c
,
0x6c
,
0xd8
,
0x05
,
0xfb
,
0x92
,
0x02
,
0xcf
,
0x19
,
0x2a
,
0x10
,
0x7d
,
0x69
,
0x7a
,
0xd8
,
0x9d
,
0xd3
,
0xcf
,
0x6c
,
0xef
,
0x02
,
0x03
,
0x01
,
0x00
,
0x01
,
0x02
,
0x40
,
0x1d
,
0x13
,
0x92
,
0xf2
,
0x3d
,
0xca
,
0x22
,
0x78
,
0xd8
,
0x96
,
0x6b
,
0xe8
,
0xb7
,
0x0e
,
0xd0
,
0xbf
,
0xcb
,
0x90
,
0x7f
,
0xeb
,
0x0c
,
0xd2
,
0x49
,
0x3a
,
0xb6
,
0x06
,
0x00
,
0xac
,
0x96
,
0x34
,
0x13
,
0x72
,
0x4b
,
0x8c
,
0xd2
,
0xb9
,
0x35
,
0xf5
,
0x64
,
0x18
,
0xb2
,
0x47
,
0x5b
,
0x9f
,
0xbb
,
0xf2
,
0x5b
,
0x2f
,
0x66
,
0x78
,
0x2d
,
0x0a
,
0x76
,
0x44
,
0xc5
,
0x4f
,
0xdb
,
0x7d
,
0x13
,
0xcf
,
0xa5
,
0x08
,
0xdc
,
0x01
,
0x02
,
0x21
,
0x00
,
0xdf
,
0x9a
,
0x89
,
0xd0
,
0xef
,
0x23
,
0xcf
,
0x12
,
0xac
,
0x8a
,
0x63
,
0x1a
,
0x8c
,
0xc0
,
0x3f
,
0xf4
,
0x38
,
0x52
,
0x3c
,
0x9f
,
0x19
,
0x0a
,
0x37
,
0xd2
,
0xcb
,
0x5d
,
0xeb
,
0xb6
,
0x2a
,
0x33
,
0xb0
,
0x91
,
0x02
,
0x21
,
0x00
,
0xd4
,
0x63
,
0xd9
,
0x6a
,
0x18
,
0x5b
,
0xe8
,
0xa8
,
0x57
,
0x4d
,
0xd1
,
0x9a
,
0xa8
,
0xd7
,
0xe1
,
0x65
,
0x75
,
0xb3
,
0xb9
,
0x5c
,
0x94
,
0x14
,
0xca
,
0x98
,
0x41
,
0x47
,
0x9c
,
0x0a
,
0x22
,
0x38
,
0x05
,
0x7f
,
0x02
,
0x20
,
0x6a
,
0xce
,
0xfd
,
0xef
,
0xe0
,
0x9b
,
0x61
,
0x49
,
0x91
,
0x43
,
0x95
,
0x6d
,
0x54
,
0x38
,
0x6d
,
0x14
,
0x32
,
0x67
,
0x0d
,
0xf0
,
0x0d
,
0x5c
,
0xf5
,
0x27
,
0x6a
,
0xdf
,
0x55
,
0x3d
,
0xb1
,
0xd0
,
0xf9
,
0x11
,
0x02
,
0x21
,
0x00
,
0xba
,
0x94
,
0xa0
,
0xf9
,
0xb0
,
0x3e
,
0x85
,
0x8b
,
0xe5
,
0x6e
,
0x4a
,
0x95
,
0x88
,
0x80
,
0x65
,
0xd5
,
0x00
,
0xea
,
0x8b
,
0x0b
,
0x46
,
0x57
,
0x61
,
0x87
,
0x11
,
0xc9
,
0xfb
,
0xcd
,
0x77
,
0x34
,
0x29
,
0xb7
,
0x02
,
0x20
,
0x06
,
0x8d
,
0x41
,
0x11
,
0x47
,
0x93
,
0xcb
,
0xad
,
0xda
,
0x5d
,
0xe1
,
0x9d
,
0x49
,
0x8d
,
0xe0
,
0xab
,
0x48
,
0xe6
,
0x18
,
0x28
,
0x4a
,
0x94
,
0xae
,
0xf9
,
0xad
,
0xc5
,
0x5b
,
0x0b
,
0x15
,
0xc6
,
0x73
,
0x17
};
unsigned
int
default_private_key_len
=
318
;
app/include/ssl/ssl_bigint.h
deleted
100644 → 0
View file @
21c4e110
/*
* Copyright (c) 2007, Cameron Rich
*
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* * Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* * Neither the name of the axTLS project nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#ifndef BIGINT_HEADER
#define BIGINT_HEADER
#include "ssl/ssl_crypto.h"
BI_CTX
*
bi_initialize
(
void
);
void
bi_terminate
(
BI_CTX
*
ctx
);
void
bi_permanent
(
bigint
*
bi
);
void
bi_depermanent
(
bigint
*
bi
);
void
bi_clear_cache
(
BI_CTX
*
ctx
);
void
bi_free
(
BI_CTX
*
ctx
,
bigint
*
bi
);
bigint
*
bi_copy
(
bigint
*
bi
);
bigint
*
bi_clone
(
BI_CTX
*
ctx
,
const
bigint
*
bi
);
void
bi_export
(
BI_CTX
*
ctx
,
bigint
*
bi
,
uint8_t
*
data
,
int
size
);
bigint
*
bi_import
(
BI_CTX
*
ctx
,
const
uint8_t
*
data
,
int
len
);
bigint
*
int_to_bi
(
BI_CTX
*
ctx
,
comp
i
);
/* the functions that actually do something interesting */
bigint
*
bi_add
(
BI_CTX
*
ctx
,
bigint
*
bia
,
bigint
*
bib
);
bigint
*
bi_subtract
(
BI_CTX
*
ctx
,
bigint
*
bia
,
bigint
*
bib
,
int
*
is_negative
);
bigint
*
bi_divide
(
BI_CTX
*
ctx
,
bigint
*
bia
,
bigint
*
bim
,
int
is_mod
);
bigint
*
bi_multiply
(
BI_CTX
*
ctx
,
bigint
*
bia
,
bigint
*
bib
);
bigint
*
bi_mod_power
(
BI_CTX
*
ctx
,
bigint
*
bi
,
bigint
*
biexp
);
bigint
*
bi_mod_power2
(
BI_CTX
*
ctx
,
bigint
*
bi
,
bigint
*
bim
,
bigint
*
biexp
);
int
bi_compare
(
bigint
*
bia
,
bigint
*
bib
);
void
bi_set_mod
(
BI_CTX
*
ctx
,
bigint
*
bim
,
int
mod_offset
);
void
bi_free_mod
(
BI_CTX
*
ctx
,
int
mod_offset
);
#ifdef CONFIG_SSL_FULL_MODE
void
bi_print
(
const
char
*
label
,
bigint
*
bi
);
bigint
*
bi_str_import
(
BI_CTX
*
ctx
,
const
char
*
data
);
#endif
/**
* @def bi_mod
* Find the residue of B. bi_set_mod() must be called before hand.
*/
#define bi_mod(A, B) bi_divide(A, B, ctx->bi_mod[ctx->mod_offset], 1)
/**
* bi_residue() is technically the same as bi_mod(), but it uses the
* appropriate reduction technique (which is bi_mod() when doing classical
* reduction).
*/
#if defined(CONFIG_BIGINT_MONTGOMERY)
#define bi_residue(A, B) bi_mont(A, B)
bigint
*
bi_mont
(
BI_CTX
*
ctx
,
bigint
*
bixy
);
#elif defined(CONFIG_BIGINT_BARRETT)
#define bi_residue(A, B) bi_barrett(A, B)
bigint
*
bi_barrett
(
BI_CTX
*
ctx
,
bigint
*
bi
);
#else
/* if defined(CONFIG_BIGINT_CLASSICAL) */
#define bi_residue(A, B) bi_mod(A, B)
#endif
#ifdef CONFIG_BIGINT_SQUARE
bigint
*
bi_square
(
BI_CTX
*
ctx
,
bigint
*
bi
);
#else
#define bi_square(A, B) bi_multiply(A, bi_copy(B), B)
#endif
#ifdef CONFIG_BIGINT_CRT
bigint
*
bi_crt
(
BI_CTX
*
ctx
,
bigint
*
bi
,
bigint
*
dP
,
bigint
*
dQ
,
bigint
*
p
,
bigint
*
q
,
bigint
*
qInv
);
#endif
#endif
app/include/ssl/ssl_bigint_impl.h
deleted
100644 → 0
View file @
21c4e110
/*
* Copyright (c) 2007, Cameron Rich
*
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* * Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* * Neither the name of the axTLS project nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#ifndef BIGINT_IMPL_HEADER
#define BIGINT_IMPL_HEADER
/* Maintain a number of precomputed variables when doing reduction */
#define BIGINT_M_OFFSET 0
/**< Normal modulo offset. */
#ifdef CONFIG_BIGINT_CRT
#define BIGINT_P_OFFSET 1
/**< p modulo offset. */
#define BIGINT_Q_OFFSET 2
/**< q module offset. */
#define BIGINT_NUM_MODS 3
/**< The number of modulus constants used. */
#else
#define BIGINT_NUM_MODS 1
#endif
/* Architecture specific functions for big ints */
#if defined(CONFIG_INTEGER_8BIT)
#define COMP_RADIX 256U
/**< Max component + 1 */
#define COMP_MAX 0xFFFFU
/**< (Max dbl comp -1) */
#define COMP_BIT_SIZE 8
/**< Number of bits in a component. */
#define COMP_BYTE_SIZE 1
/**< Number of bytes in a component. */
#define COMP_NUM_NIBBLES 2
/**< Used For diagnostics only. */
typedef
uint8_t
comp
;
/**< A single precision component. */
typedef
uint16_t
long_comp
;
/**< A double precision component. */
typedef
int16_t
slong_comp
;
/**< A signed double precision component. */
#elif defined(CONFIG_INTEGER_16BIT)
#define COMP_RADIX 65536U
/**< Max component + 1 */
#define COMP_MAX 0xFFFFFFFFU
/**< (Max dbl comp -1) */
#define COMP_BIT_SIZE 16
/**< Number of bits in a component. */
#define COMP_BYTE_SIZE 2
/**< Number of bytes in a component. */
#define COMP_NUM_NIBBLES 4
/**< Used For diagnostics only. */
typedef
uint16_t
comp
;
/**< A single precision component. */
typedef
uint32_t
long_comp
;
/**< A double precision component. */
typedef
int32_t
slong_comp
;
/**< A signed double precision component. */
#else
/* regular 32 bit */
#ifdef WIN32
#define COMP_RADIX 4294967296i64
#define COMP_MAX 0xFFFFFFFFFFFFFFFFui64
#else
#define COMP_RADIX 4294967296ULL
/**< Max component + 1 */
#define COMP_MAX 0xFFFFFFFFFFFFFFFFULL
/**< (Max dbl comp -1) */
#endif
#define COMP_BIT_SIZE 32
/**< Number of bits in a component. */
#define COMP_BYTE_SIZE 4
/**< Number of bytes in a component. */
#define COMP_NUM_NIBBLES 8
/**< Used For diagnostics only. */
typedef
uint32_t
comp
;
/**< A single precision component. */
typedef
uint64_t
long_comp
;
/**< A double precision component. */
typedef
sint64_t
slong_comp
;
/**< A signed double precision component. */
#endif
/**
* @struct _bigint
* @brief A big integer basic object
*/
struct
_bigint
{
struct
_bigint
*
next
;
/**< The next bigint in the cache. */
short
size
;
/**< The number of components in this bigint. */
short
max_comps
;
/**< The heapsize allocated for this bigint */
int
refs
;
/**< An internal reference count. */
comp
*
comps
;
/**< A ptr to the actual component data */
};
typedef
struct
_bigint
bigint
;
/**< An alias for _bigint */
/**
* Maintains the state of the cache, and a number of variables used in
* reduction.
*/
typedef
struct
/**< A big integer "session" context. */
{
bigint
*
active_list
;
/**< Bigints currently used. */
bigint
*
free_list
;
/**< Bigints not used. */
bigint
*
bi_radix
;
/**< The radix used. */
bigint
*
bi_mod
[
BIGINT_NUM_MODS
];
/**< modulus */
#if defined(CONFIG_BIGINT_MONTGOMERY)
bigint
*
bi_RR_mod_m
[
BIGINT_NUM_MODS
];
/**< R^2 mod m */
bigint
*
bi_R_mod_m
[
BIGINT_NUM_MODS
];
/**< R mod m */
comp
N0_dash
[
BIGINT_NUM_MODS
];
#elif defined(CONFIG_BIGINT_BARRETT)
bigint
*
bi_mu
[
BIGINT_NUM_MODS
];
/**< Storage for mu */
#endif
bigint
*
bi_normalised_mod
[
BIGINT_NUM_MODS
];
/**< Normalised mod storage. */
bigint
**
g
;
/**< Used by sliding-window. */
int
window
;
/**< The size of the sliding window */
int
active_count
;
/**< Number of active bigints. */
int
free_count
;
/**< Number of free bigints. */
#ifdef CONFIG_BIGINT_MONTGOMERY
uint8_t
use_classical
;
/**< Use classical reduction. */
#endif
uint8_t
mod_offset
;
/**< The mod offset we are using */
}
BI_CTX
;
#ifndef WIN32
#define max(a,b) ((a)>(b)?(a):(b))
/**< Find the maximum of 2 numbers. */
#define min(a,b) ((a)<(b)?(a):(b))
/**< Find the minimum of 2 numbers. */
#endif
#define PERMANENT 0x7FFF55AA
/**< A magic number for permanents. */
#endif
app/include/ssl/ssl_cert.h
deleted
100644 → 0
View file @
21c4e110
unsigned
char
default_certificate
[]
=
{
0x30
,
0x82
,
0x01
,
0xd7
,
0x30
,
0x82
,
0x01
,
0x40
,
0x02
,
0x09
,
0x00
,
0xab
,
0x08
,
0x18
,
0xa7
,
0x03
,
0x07
,
0x27
,
0xfd
,
0x30
,
0x0d
,
0x06
,
0x09
,
0x2a
,
0x86
,
0x48
,
0x86
,
0xf7
,
0x0d
,
0x01
,
0x01
,
0x05
,
0x05
,
0x00
,
0x30
,
0x34
,
0x31
,
0x32
,
0x30
,
0x30
,
0x06
,
0x03
,
0x55
,
0x04
,
0x0a
,
0x13
,
0x29
,
0x61
,
0x78
,
0x54
,
0x4c
,
0x53
,
0x20
,
0x50
,
0x72
,
0x6f
,
0x6a
,
0x65
,
0x63
,
0x74
,
0x20
,
0x44
,
0x6f
,
0x64
,
0x67
,
0x79
,
0x20
,
0x43
,
0x65
,
0x72
,
0x74
,
0x69
,
0x66
,
0x69
,
0x63
,
0x61
,
0x74
,
0x65
,
0x20
,
0x41
,
0x75
,
0x74
,
0x68
,
0x6f
,
0x72
,
0x69
,
0x74
,
0x79
,
0x30
,
0x1e
,
0x17
,
0x0d
,
0x31
,
0x30
,
0x31
,
0x32
,
0x32
,
0x36
,
0x32
,
0x32
,
0x33
,
0x33
,
0x33
,
0x39
,
0x5a
,
0x17
,
0x0d
,
0x32
,
0x34
,
0x30
,
0x39
,
0x30
,
0x33
,
0x32
,
0x32
,
0x33
,
0x33
,
0x33
,
0x39
,
0x5a
,
0x30
,
0x2c
,
0x31
,
0x16
,
0x30
,
0x14
,
0x06
,
0x03
,
0x55
,
0x04
,
0x0a
,
0x13
,
0x0d
,
0x61
,
0x78
,
0x54
,
0x4c
,
0x53
,
0x20
,
0x50
,
0x72
,
0x6f
,
0x6a
,
0x65
,
0x63
,
0x74
,
0x31
,
0x12
,
0x30
,
0x10
,
0x06
,
0x03
,
0x55
,
0x04
,
0x03
,
0x13
,
0x09
,
0x31
,
0x32
,
0x37
,
0x2e
,
0x30
,
0x2e
,
0x30
,
0x2e
,
0x31
,
0x30
,
0x81
,
0x9f
,
0x30
,
0x0d
,
0x06
,
0x09
,
0x2a
,
0x86
,
0x48
,
0x86
,
0xf7
,
0x0d
,
0x01
,
0x01
,
0x01
,
0x05
,
0x00
,
0x03
,
0x81
,
0x8d
,
0x00
,
0x30
,
0x81
,
0x89
,
0x02
,
0x81
,
0x81
,
0x00
,
0xcd
,
0xfd
,
0x89
,
0x48
,
0xbe
,
0x36
,
0xb9
,
0x95
,
0x76
,
0xd4
,
0x13
,
0x30
,
0x0e
,
0xbf
,
0xb2
,
0xed
,
0x67
,
0x0a
,
0xc0
,
0x16
,
0x3f
,
0x51
,
0x09
,
0x9d
,
0x29
,
0x2f
,
0xb2
,
0x6d
,
0x3f
,
0x3e
,
0x6c
,
0x2f
,
0x90
,
0x80
,
0xa1
,
0x71
,
0xdf
,
0xbe
,
0x38
,
0xc5
,
0xcb
,
0xa9
,
0x9a
,
0x40
,
0x14
,
0x90
,
0x0a
,
0xf9
,
0xb7
,
0x07
,
0x0b
,
0xe1
,
0xda
,
0xe7
,
0x09
,
0xbf
,
0x0d
,
0x57
,
0x41
,
0x86
,
0x60
,
0xa1
,
0xc1
,
0x27
,
0x91
,
0x5b
,
0x0a
,
0x98
,
0x46
,
0x1b
,
0xf6
,
0xa2
,
0x84
,
0xf8
,
0x65
,
0xc7
,
0xce
,
0x2d
,
0x96
,
0x17
,
0xaa
,
0x91
,
0xf8
,
0x61
,
0x04
,
0x50
,
0x70
,
0xeb
,
0xb4
,
0x43
,
0xb7
,
0xdc
,
0x9a
,
0xcc
,
0x31
,
0x01
,
0x14
,
0xd4
,
0xcd
,
0xcc
,
0xc2
,
0x37
,
0x6d
,
0x69
,
0x82
,
0xd6
,
0xc6
,
0xc4
,
0xbe
,
0xf2
,
0x34
,
0xa5
,
0xc9
,
0xa6
,
0x19
,
0x53
,
0x32
,
0x7a
,
0x86
,
0x0e
,
0x91
,
0x82
,
0x0f
,
0xa1
,
0x42
,
0x54
,
0xaa
,
0x01
,
0x02
,
0x03
,
0x01
,
0x00
,
0x01
,
0x30
,
0x0d
,
0x06
,
0x09
,
0x2a
,
0x86
,
0x48
,
0x86
,
0xf7
,
0x0d
,
0x01
,
0x01
,
0x05
,
0x05
,
0x00
,
0x03
,
0x81
,
0x81
,
0x00
,
0x40
,
0xb4
,
0x94
,
0x9a
,
0xa8
,
0x89
,
0x72
,
0x1d
,
0x07
,
0xe5
,
0xb3
,
0x6b
,
0x88
,
0x21
,
0xc2
,
0x38
,
0x36
,
0x9e
,
0x7a
,
0x8c
,
0x49
,
0x48
,
0x68
,
0x0c
,
0x06
,
0xe8
,
0xdb
,
0x1f
,
0x4e
,
0x05
,
0xe6
,
0x31
,
0xe3
,
0xfd
,
0xe6
,
0x0d
,
0x6b
,
0xd8
,
0x13
,
0x17
,
0xe0
,
0x2d
,
0x0d
,
0xb8
,
0x7e
,
0xcb
,
0x20
,
0x6c
,
0xa8
,
0x73
,
0xa7
,
0xfd
,
0xe3
,
0xa7
,
0xfa
,
0xf3
,
0x02
,
0x60
,
0x78
,
0x1f
,
0x13
,
0x40
,
0x45
,
0xee
,
0x75
,
0xf5
,
0x10
,
0xfd
,
0x8f
,
0x68
,
0x74
,
0xd4
,
0xac
,
0xae
,
0x04
,
0x09
,
0x55
,
0x2c
,
0xdb
,
0xd8
,
0x07
,
0x07
,
0x65
,
0x69
,
0x27
,
0x6e
,
0xbf
,
0x5e
,
0x61
,
0x40
,
0x56
,
0x8b
,
0xd7
,
0x33
,
0x3b
,
0xff
,
0x6e
,
0x53
,
0x7e
,
0x9d
,
0x3f
,
0xc0
,
0x40
,
0x3a
,
0xab
,
0xa0
,
0x50
,
0x4e
,
0x80
,
0x47
,
0x46
,
0x0d
,
0x1e
,
0xdb
,
0x4c
,
0xf1
,
0x1b
,
0x5d
,
0x3c
,
0x2a
,
0x54
,
0xa7
,
0x4d
,
0xfa
,
0x7b
,
0x72
,
0x66
,
0xc5
};
unsigned
int
default_certificate_len
=
475
;
app/include/ssl/ssl_config.h
deleted
100644 → 0
View file @
21c4e110
/*
* Automatically generated header file: don't edit
*/
#define HAVE_DOT_CONFIG 1
#undef CONFIG_PLATFORM_LINUX
#define CONFIG_PLATFORM_CYGWIN 1
#undef CONFIG_PLATFORM_WIN32
/*
* General Configuration
*/
#define PREFIX "/usr/local"
#define CONFIG_DEBUG 1
#undef CONFIG_STRIP_UNWANTED_SECTIONS
#undef CONFIG_VISUAL_STUDIO_7_0
#undef CONFIG_VISUAL_STUDIO_8_0
#undef CONFIG_VISUAL_STUDIO_10_0
#define CONFIG_VISUAL_STUDIO_7_0_BASE ""
#define CONFIG_VISUAL_STUDIO_8_0_BASE ""
#define CONFIG_VISUAL_STUDIO_10_0_BASE ""
#define CONFIG_EXTRA_CFLAGS_OPTIONS ""
#define CONFIG_EXTRA_LDFLAGS_OPTIONS ""
/*
* SSL Library
*/
#undef CONFIG_SSL_SERVER_ONLY
#undef CONFIG_SSL_CERT_VERIFICATION
#undef CONFIG_SSL_ENABLE_CLIENT
#define CONFIG_SSL_FULL_MODE 1
#undef CONFIG_SSL_SKELETON_MODE
#undef CONFIG_SSL_PROT_LOW
#define CONFIG_SSL_PROT_MEDIUM 1
#undef CONFIG_SSL_PROT_HIGH
#define CONFIG_SSL_USE_DEFAULT_KEY
#define CONFIG_SSL_PRIVATE_KEY_LOCATION ""
#define CONFIG_SSL_PRIVATE_KEY_PASSWORD ""
#define CONFIG_SSL_X509_CERT_LOCATION ""
#undef CONFIG_SSL_GENERATE_X509_CERT
#define CONFIG_SSL_X509_COMMON_NAME ""
#define CONFIG_SSL_X509_ORGANIZATION_NAME ""
#define CONFIG_SSL_X509_ORGANIZATION_UNIT_NAME ""
#undef CONFIG_SSL_ENABLE_V23_HANDSHAKE
#define CONFIG_SSL_HAS_PEM 1
#undef CONFIG_SSL_USE_PKCS12
#define CONFIG_SSL_EXPIRY_TIME 24
#define CONFIG_X509_MAX_CA_CERTS 150
#define CONFIG_SSL_MAX_CERTS 3
#undef CONFIG_SSL_CTX_MUTEXING
//#define CONFIG_USE_DEV_URANDOM 1
#undef CONFIG_WIN32_USE_CRYPTO_LIB
#undef CONFIG_OPENSSL_COMPATIBLE
#undef CONFIG_PERFORMANCE_TESTING
#define CONFIG_SSL_TEST 1
#undef CONFIG_AXTLSWRAP
#define CONFIG_AXHTTPD 1
/*
* Axhttpd Configuration
*/
#undef CONFIG_HTTP_STATIC_BUILD
#define CONFIG_HTTP_PORT 80
#define CONFIG_HTTP_HTTPS_PORT 443
#define CONFIG_HTTP_SESSION_CACHE_SIZE 5
#define CONFIG_HTTP_WEBROOT "../www"
#define CONFIG_HTTP_TIMEOUT 300
/*
* CGI
*/
#undef CONFIG_HTTP_HAS_CGI
#define CONFIG_HTTP_CGI_EXTENSIONS ".lua,.lp,.php"
#define CONFIG_HTTP_ENABLE_LUA 1
#define CONFIG_HTTP_LUA_PREFIX "/usr"
#undef CONFIG_HTTP_BUILD_LUA
#define CONFIG_HTTP_CGI_LAUNCHER "/usr/bin/cgi"
#define CONFIG_HTTP_DIRECTORIES 1
#define CONFIG_HTTP_HAS_AUTHORIZATION 1
#undef CONFIG_HTTP_HAS_IPV6
#undef CONFIG_HTTP_ENABLE_DIFFERENT_USER
#define CONFIG_HTTP_USER ""
#define CONFIG_HTTP_VERBOSE 0
#undef CONFIG_HTTP_IS_DAEMON
/*
* Language Bindings
*/
#undef CONFIG_BINDINGS
#undef CONFIG_CSHARP_BINDINGS
#undef CONFIG_VBNET_BINDINGS
#define CONFIG_DOT_NET_FRAMEWORK_BASE ""
#undef CONFIG_JAVA_BINDINGS
#define CONFIG_JAVA_HOME ""
#undef CONFIG_PERL_BINDINGS
#define CONFIG_PERL_CORE ""
#define CONFIG_PERL_LIB ""
#undef CONFIG_LUA_BINDINGS
#define CONFIG_LUA_CORE ""
/*
* Samples
*/
#define CONFIG_SAMPLES 1
#define CONFIG_C_SAMPLES 1
#undef CONFIG_CSHARP_SAMPLES
#undef CONFIG_VBNET_SAMPLES
#undef CONFIG_JAVA_SAMPLES
#undef CONFIG_PERL_SAMPLES
#undef CONFIG_LUA_SAMPLES
/*
* BigInt Options
*/
#undef CONFIG_BIGINT_CLASSICAL
#undef CONFIG_BIGINT_MONTGOMERY
#define CONFIG_BIGINT_BARRETT 1
#define CONFIG_BIGINT_CRT 1
#undef CONFIG_BIGINT_KARATSUBA
#define MUL_KARATSUBA_THRESH
#define SQU_KARATSUBA_THRESH
#define CONFIG_BIGINT_SLIDING_WINDOW 1
#define CONFIG_BIGINT_SQUARE 1
#define CONFIG_BIGINT_CHECK_ON 1
#define CONFIG_INTEGER_32BIT 1
#undef CONFIG_INTEGER_16BIT
#undef CONFIG_INTEGER_8BIT
app/include/ssl/ssl_crypto.h
deleted
100644 → 0
View file @
21c4e110
/*
* Copyright (c) 2007, Cameron Rich
*
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* * Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* * Neither the name of the axTLS project nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
/**
* @file crypto.h
*/
#ifndef HEADER_CRYPTO_H
#define HEADER_CRYPTO_H
#ifdef __cplusplus
extern
"C"
{
#endif
#include "ssl/ssl_config.h"
#include "ssl/ssl_bigint_impl.h"
#include "ssl/ssl_bigint.h"
#ifndef STDCALL
#define STDCALL
#endif
#ifndef EXP_FUNC
#define EXP_FUNC
#endif
/* enable features based on a 'super-set' capbaility. */
#if defined(CONFIG_SSL_FULL_MODE)
#define CONFIG_SSL_ENABLE_CLIENT
#define CONFIG_SSL_CERT_VERIFICATION
#elif defined(CONFIG_SSL_ENABLE_CLIENT)
#define CONFIG_SSL_CERT_VERIFICATION
#endif
/**************************************************************************
* AES declarations
**************************************************************************/
#define AES_MAXROUNDS 14
#define AES_BLOCKSIZE 16
#define AES_IV_SIZE 16
typedef
struct
aes_key_st
{
uint16_t
rounds
;
uint16_t
key_size
;
uint32_t
ks
[(
AES_MAXROUNDS
+
1
)
*
8
];
uint8_t
iv
[
AES_IV_SIZE
];
}
AES_CTX
;
typedef
enum
{
AES_MODE_128
,
AES_MODE_256
}
AES_MODE
;
void
AES_set_key
(
AES_CTX
*
ctx
,
const
uint8_t
*
key
,
const
uint8_t
*
iv
,
AES_MODE
mode
);
void
AES_cbc_encrypt
(
AES_CTX
*
ctx
,
const
uint8_t
*
msg
,
uint8_t
*
out
,
int
length
);
void
AES_cbc_decrypt
(
AES_CTX
*
ks
,
const
uint8_t
*
in
,
uint8_t
*
out
,
int
length
);
void
AES_convert_key
(
AES_CTX
*
ctx
);
/**************************************************************************
* RC4 declarations
**************************************************************************/
typedef
struct
{
uint8_t
x
,
y
,
m
[
256
];
}
RC4_CTX
;
void
RC4_setup
(
RC4_CTX
*
s
,
const
uint8_t
*
key
,
int
length
);
void
RC4_crypt
(
RC4_CTX
*
s
,
const
uint8_t
*
msg
,
uint8_t
*
data
,
int
length
);
/**************************************************************************
* SHA1 declarations
**************************************************************************/
#define SHA1_SIZE 20
/*
* This structure will hold context information for the SHA-1
* hashing operation
*/
typedef
struct
{
uint32_t
Intermediate_Hash
[
SHA1_SIZE
/
4
];
/* Message Digest */
uint32_t
Length_Low
;
/* Message length in bits */
uint32_t
Length_High
;
/* Message length in bits */
uint16_t
Message_Block_Index
;
/* Index into message block array */
uint8_t
Message_Block
[
64
];
/* 512-bit message blocks */
}
SHA1_CTX
;
void
SHA1_Init
(
SHA1_CTX
*
);
void
SHA1_Update
(
SHA1_CTX
*
,
const
uint8_t
*
msg
,
int
len
);
void
SHA1_Final
(
uint8_t
*
digest
,
SHA1_CTX
*
);
/**************************************************************************
* MD2 declarations
**************************************************************************/
#define MD2_SIZE 16
typedef
struct
{
unsigned
char
cksum
[
16
];
/* checksum of the data block */
unsigned
char
state
[
48
];
/* intermediate digest state */
unsigned
char
buffer
[
16
];
/* data block being processed */
int
left
;
/* amount of data in buffer */
}
MD2_CTX
;
EXP_FUNC
void
STDCALL
MD2_Init
(
MD2_CTX
*
ctx
);
EXP_FUNC
void
STDCALL
MD2_Update
(
MD2_CTX
*
ctx
,
const
uint8_t
*
input
,
int
ilen
);
EXP_FUNC
void
STDCALL
MD2_Final
(
uint8_t
*
digest
,
MD2_CTX
*
ctx
);
/**************************************************************************
* MD5 declarations
**************************************************************************/
#define MD5_SIZE 16
typedef
struct
{
uint32_t
state
[
4
];
/* state (ABCD) */
uint32_t
count
[
2
];
/* number of bits, modulo 2^64 (lsb first) */
uint8_t
buffer
[
64
];
/* input buffer */
}
MD5_CTX
;
EXP_FUNC
void
STDCALL
MD5_Init
(
MD5_CTX
*
);
EXP_FUNC
void
STDCALL
MD5_Update
(
MD5_CTX
*
,
const
uint8_t
*
msg
,
int
len
);
EXP_FUNC
void
STDCALL
MD5_Final
(
uint8_t
*
digest
,
MD5_CTX
*
);
/**************************************************************************
* HMAC declarations
**************************************************************************/
void
ssl_hmac_md5
(
const
uint8_t
*
msg
,
int
length
,
const
uint8_t
*
key
,
int
key_len
,
uint8_t
*
digest
);
// fix hmac_md5 to ssl_hmac_md5, discriminate ieee80211
void
ssl_hmac_sha1
(
const
uint8_t
*
msg
,
int
length
,
const
uint8_t
*
key
,
int
key_len
,
uint8_t
*
digest
);
// fix hmac_md5 to ssl_hmac_sha1, discriminate ieee80211
/**************************************************************************
* RSA declarations
**************************************************************************/
typedef
struct
{
bigint
*
m
;
/* modulus */
bigint
*
e
;
/* public exponent */
bigint
*
d
;
/* private exponent */
#ifdef CONFIG_BIGINT_CRT
bigint
*
p
;
/* p as in m = pq */
bigint
*
q
;
/* q as in m = pq */
bigint
*
dP
;
/* d mod (p-1) */
bigint
*
dQ
;
/* d mod (q-1) */
bigint
*
qInv
;
/* q^-1 mod p */
#endif
int
num_octets
;
BI_CTX
*
bi_ctx
;
}
RSA_CTX
;
void
RSA_priv_key_new
(
RSA_CTX
**
rsa_ctx
,
const
uint8_t
*
modulus
,
int
mod_len
,
const
uint8_t
*
pub_exp
,
int
pub_len
,
const
uint8_t
*
priv_exp
,
int
priv_len
#ifdef CONFIG_BIGINT_CRT
,
const
uint8_t
*
p
,
int
p_len
,
const
uint8_t
*
q
,
int
q_len
,
const
uint8_t
*
dP
,
int
dP_len
,
const
uint8_t
*
dQ
,
int
dQ_len
,
const
uint8_t
*
qInv
,
int
qInv_len
#endif
);
void
RSA_pub_key_new
(
RSA_CTX
**
rsa_ctx
,
const
uint8_t
*
modulus
,
int
mod_len
,
const
uint8_t
*
pub_exp
,
int
pub_len
);
void
RSA_free
(
RSA_CTX
*
ctx
);
int
RSA_decrypt
(
const
RSA_CTX
*
ctx
,
const
uint8_t
*
in_data
,
uint8_t
*
out_data
,
int
is_decryption
);
bigint
*
RSA_private
(
const
RSA_CTX
*
c
,
bigint
*
bi_msg
);
#if defined(CONFIG_SSL_CERT_VERIFICATION) || defined(CONFIG_SSL_GENERATE_X509_CERT)
bigint
*
RSA_sign_verify
(
BI_CTX
*
ctx
,
const
uint8_t
*
sig
,
int
sig_len
,
bigint
*
modulus
,
bigint
*
pub_exp
);
bigint
*
RSA_public
(
const
RSA_CTX
*
c
,
bigint
*
bi_msg
);
int
RSA_encrypt
(
const
RSA_CTX
*
ctx
,
const
uint8_t
*
in_data
,
uint16_t
in_len
,
uint8_t
*
out_data
,
int
is_signing
);
void
RSA_print
(
const
RSA_CTX
*
ctx
);
#endif
/**************************************************************************
* RNG declarations
**************************************************************************/
EXP_FUNC
void
STDCALL
RNG_initialize
(
void
);
EXP_FUNC
void
STDCALL
RNG_custom_init
(
const
uint8_t
*
seed_buf
,
int
size
);
EXP_FUNC
void
STDCALL
RNG_terminate
(
void
);
EXP_FUNC
void
STDCALL
get_random
(
int
num_rand_bytes
,
uint8_t
*
rand_data
);
void
get_random_NZ
(
int
num_rand_bytes
,
uint8_t
*
rand_data
);
#ifdef __cplusplus
}
#endif
#endif
app/include/ssl/ssl_crypto_misc.h
deleted
100644 → 0
View file @
21c4e110
/*
* Copyright (c) 2007, Cameron Rich
*
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* * Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* * Neither the name of the axTLS project nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
/**
* @file crypto_misc.h
*/
#ifndef HEADER_CRYPTO_MISC_H
#define HEADER_CRYPTO_MISC_H
#ifdef __cplusplus
extern
"C"
{
#endif
#include "ssl/ssl_crypto.h"
#include "ssl/ssl_bigint.h"
/**************************************************************************
* X509 declarations
**************************************************************************/
#define X509_OK 0
#define X509_NOT_OK -1
#define X509_VFY_ERROR_NO_TRUSTED_CERT -2
#define X509_VFY_ERROR_BAD_SIGNATURE -3
#define X509_VFY_ERROR_NOT_YET_VALID -4
#define X509_VFY_ERROR_EXPIRED -5
#define X509_VFY_ERROR_SELF_SIGNED -6
#define X509_VFY_ERROR_INVALID_CHAIN -7
#define X509_VFY_ERROR_UNSUPPORTED_DIGEST -8
#define X509_INVALID_PRIV_KEY -9
/*
* The Distinguished Name
*/
#define X509_NUM_DN_TYPES 3
#define X509_COMMON_NAME 0
#define X509_ORGANIZATION 1
#define X509_ORGANIZATIONAL_UNIT 2
struct
_x509_ctx
{
char
*
ca_cert_dn
[
X509_NUM_DN_TYPES
];
char
*
cert_dn
[
X509_NUM_DN_TYPES
];
char
**
subject_alt_dnsnames
;
time_t
not_before
;
time_t
not_after
;
uint8_t
*
signature
;
uint16_t
sig_len
;
uint8_t
sig_type
;
RSA_CTX
*
rsa_ctx
;
bigint
*
digest
;
struct
_x509_ctx
*
next
;
};
typedef
struct
_x509_ctx
X509_CTX
;
#ifdef CONFIG_SSL_CERT_VERIFICATION
typedef
struct
{
X509_CTX
*
cert
[
CONFIG_X509_MAX_CA_CERTS
];
}
CA_CERT_CTX
;
#endif
int
x509_new
(
const
uint8_t
*
cert
,
int
*
len
,
X509_CTX
**
ctx
);
void
x509_free
(
X509_CTX
*
x509_ctx
);
#ifdef CONFIG_SSL_CERT_VERIFICATION
int
x509_verify
(
const
CA_CERT_CTX
*
ca_cert_ctx
,
const
X509_CTX
*
cert
);
#endif
#ifdef CONFIG_SSL_FULL_MODE
void
x509_print
(
const
X509_CTX
*
cert
,
CA_CERT_CTX
*
ca_cert_ctx
);
const
char
*
x509_display_error
(
int
error
);
#endif
/**************************************************************************
* ASN1 declarations
**************************************************************************/
#define ASN1_INTEGER 0x02
#define ASN1_BIT_STRING 0x03
#define ASN1_OCTET_STRING 0x04
#define ASN1_NULL 0x05
#define ASN1_PRINTABLE_STR2 0x0C
#define ASN1_OID 0x06
#define ASN1_PRINTABLE_STR2 0x0C
#define ASN1_PRINTABLE_STR 0x13
#define ASN1_TELETEX_STR 0x14
#define ASN1_IA5_STR 0x16
#define ASN1_UTC_TIME 0x17
#define ASN1_UNICODE_STR 0x1e
#define ASN1_SEQUENCE 0x30
#define ASN1_CONTEXT_DNSNAME 0x82
#define ASN1_SET 0x31
#define ASN1_V3_DATA 0xa3
#define ASN1_IMPLICIT_TAG 0x80
#define ASN1_CONTEXT_DNSNAME 0x82
#define ASN1_EXPLICIT_TAG 0xa0
#define ASN1_V3_DATA 0xa3
#define SIG_TYPE_MD2 0x02
#define SIG_TYPE_MD5 0x04
#define SIG_TYPE_SHA1 0x05
int
get_asn1_length
(
const
uint8_t
*
buf
,
int
*
offset
);
int
asn1_get_private_key
(
const
uint8_t
*
buf
,
int
len
,
RSA_CTX
**
rsa_ctx
);
int
asn1_next_obj
(
const
uint8_t
*
buf
,
int
*
offset
,
int
obj_type
);
int
asn1_skip_obj
(
const
uint8_t
*
buf
,
int
*
offset
,
int
obj_type
);
int
asn1_get_int
(
const
uint8_t
*
buf
,
int
*
offset
,
uint8_t
**
object
);
int
asn1_version
(
const
uint8_t
*
cert
,
int
*
offset
,
X509_CTX
*
x509_ctx
);
int
asn1_validity
(
const
uint8_t
*
cert
,
int
*
offset
,
X509_CTX
*
x509_ctx
);
int
asn1_name
(
const
uint8_t
*
cert
,
int
*
offset
,
char
*
dn
[]);
int
asn1_public_key
(
const
uint8_t
*
cert
,
int
*
offset
,
X509_CTX
*
x509_ctx
);
#ifdef CONFIG_SSL_CERT_VERIFICATION
int
asn1_signature
(
const
uint8_t
*
cert
,
int
*
offset
,
X509_CTX
*
x509_ctx
);
int
asn1_find_subjectaltname
(
const
uint8_t
*
cert
,
int
offset
);
int
asn1_compare_dn
(
char
*
const
dn1
[],
char
*
const
dn2
[]);
#endif
/* CONFIG_SSL_CERT_VERIFICATION */
int
asn1_signature_type
(
const
uint8_t
*
cert
,
int
*
offset
,
X509_CTX
*
x509_ctx
);
/**************************************************************************
* MISC declarations
**************************************************************************/
#define SALT_SIZE 8
extern
const
char
*
const
unsupported_str
;
typedef
void
(
*
crypt_func
)(
void
*
,
const
uint8_t
*
,
uint8_t
*
,
int
);
typedef
void
(
*
hmac_func
)(
const
uint8_t
*
msg
,
int
length
,
const
uint8_t
*
key
,
int
key_len
,
uint8_t
*
digest
);
int
get_file
(
const
char
*
filename
,
uint8_t
**
buf
);
#if defined(CONFIG_SSL_FULL_MODE) || defined(WIN32) || defined(CONFIG_DEBUG)
EXP_FUNC
void
STDCALL
print_blob
(
const
char
*
format
,
const
uint8_t
*
data
,
int
size
,
...);
#else
#define print_blob(...)
#endif
EXP_FUNC
int
STDCALL
base64_decode
(
const
char
*
in
,
int
len
,
uint8_t
*
out
,
int
*
outlen
);
#ifdef __cplusplus
}
#endif
#endif
app/include/ssl/ssl_os_int.h
deleted
100644 → 0
View file @
21c4e110
/*
* Copyright (c) 2012, Cameron Rich
*
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* * Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* * Neither the name of the axTLS project nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
/**
* @file os_int.h
*
* Ensure a consistent bit size
*/
#ifndef HEADER_OS_INT_H
#define HEADER_OS_INT_H
#ifdef __cplusplus
extern
"C"
{
#endif
#if defined(WIN32)
typedef
UINT8
uint8_t
;
typedef
INT8
int8_t
;
typedef
UINT16
uint16_t
;
typedef
INT16
int16_t
;
typedef
UINT32
uint32_t
;
typedef
INT32
int32_t
;
typedef
UINT64
uint64_t
;
typedef
INT64
int64_t
;
#else
/* Not Win32 */
#ifdef CONFIG_PLATFORM_SOLARIS
#include <inttypes.h>
#else
//#include <stdint.h>
#endif
/* Not Solaris */
#endif
/* Not Win32 */
#ifdef __cplusplus
}
#endif
#endif
app/include/ssl/ssl_os_port.h
deleted
100644 → 0
View file @
21c4e110
/*
* Copyright (c) 2007, Cameron Rich
*
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* * Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* * Neither the name of the axTLS project nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
/**
* @file os_port.h
*
* Some stuff to minimise the differences between windows and linux/unix
*/
#ifndef HEADER_OS_PORT_H
#define HEADER_OS_PORT_H
#ifdef __cplusplus
extern
"C"
{
#endif
//#include "../crypto/os_int.h"
#include "c_types.h"
#include "osapi.h"
#include <stdio.h>
#if 0
#define ssl_printf(fmt, args...) os_printf(fmt,## args)
#else
#define ssl_printf(fmt, args...)
#endif
#define STDCALL
#define EXP_FUNC
struct
timeval
{
long
tv_sec
;
/* seconds */
long
tv_usec
;
/* and microseconds */
};
/* Mutexing definitions */
#define SSL_CTX_MUTEX_INIT(A)
#define SSL_CTX_MUTEX_DESTROY(A)
#define SSL_CTX_LOCK(A)
#define SSL_CTX_UNLOCK(A)
#ifdef __cplusplus
}
#endif
#endif
app/include/ssl/ssl_private_key.h
deleted
100644 → 0
View file @
21c4e110
unsigned
char
default_private_key
[]
=
{
0x30
,
0x82
,
0x02
,
0x5d
,
0x02
,
0x01
,
0x00
,
0x02
,
0x81
,
0x81
,
0x00
,
0xcd
,
0xfd
,
0x89
,
0x48
,
0xbe
,
0x36
,
0xb9
,
0x95
,
0x76
,
0xd4
,
0x13
,
0x30
,
0x0e
,
0xbf
,
0xb2
,
0xed
,
0x67
,
0x0a
,
0xc0
,
0x16
,
0x3f
,
0x51
,
0x09
,
0x9d
,
0x29
,
0x2f
,
0xb2
,
0x6d
,
0x3f
,
0x3e
,
0x6c
,
0x2f
,
0x90
,
0x80
,
0xa1
,
0x71
,
0xdf
,
0xbe
,
0x38
,
0xc5
,
0xcb
,
0xa9
,
0x9a
,
0x40
,
0x14
,
0x90
,
0x0a
,
0xf9
,
0xb7
,
0x07
,
0x0b
,
0xe1
,
0xda
,
0xe7
,
0x09
,
0xbf
,
0x0d
,
0x57
,
0x41
,
0x86
,
0x60
,
0xa1
,
0xc1
,
0x27
,
0x91
,
0x5b
,
0x0a
,
0x98
,
0x46
,
0x1b
,
0xf6
,
0xa2
,
0x84
,
0xf8
,
0x65
,
0xc7
,
0xce
,
0x2d
,
0x96
,
0x17
,
0xaa
,
0x91
,
0xf8
,
0x61
,
0x04
,
0x50
,
0x70
,
0xeb
,
0xb4
,
0x43
,
0xb7
,
0xdc
,
0x9a
,
0xcc
,
0x31
,
0x01
,
0x14
,
0xd4
,
0xcd
,
0xcc
,
0xc2
,
0x37
,
0x6d
,
0x69
,
0x82
,
0xd6
,
0xc6
,
0xc4
,
0xbe
,
0xf2
,
0x34
,
0xa5
,
0xc9
,
0xa6
,
0x19
,
0x53
,
0x32
,
0x7a
,
0x86
,
0x0e
,
0x91
,
0x82
,
0x0f
,
0xa1
,
0x42
,
0x54
,
0xaa
,
0x01
,
0x02
,
0x03
,
0x01
,
0x00
,
0x01
,
0x02
,
0x81
,
0x81
,
0x00
,
0x95
,
0xaa
,
0x6e
,
0x11
,
0xf5
,
0x6a
,
0x8b
,
0xa2
,
0xc6
,
0x48
,
0xc6
,
0x7c
,
0x37
,
0x6b
,
0x1f
,
0x55
,
0x10
,
0x76
,
0x26
,
0x24
,
0xc3
,
0xf2
,
0x5c
,
0x5a
,
0xdd
,
0x2e
,
0xf3
,
0xa4
,
0x1e
,
0xbc
,
0x7b
,
0x1c
,
0x80
,
0x10
,
0x85
,
0xbc
,
0xd8
,
0x45
,
0x3c
,
0xb8
,
0xb2
,
0x06
,
0x53
,
0xb5
,
0xd5
,
0x7a
,
0xe7
,
0x0e
,
0x92
,
0xe6
,
0x42
,
0xc2
,
0xe2
,
0x2a
,
0xd5
,
0xd1
,
0x03
,
0x9f
,
0x6f
,
0x53
,
0x74
,
0x68
,
0x72
,
0x8e
,
0xbf
,
0x03
,
0xbb
,
0xab
,
0xbd
,
0xa1
,
0xf9
,
0x81
,
0x7d
,
0x12
,
0xd4
,
0x9d
,
0xb6
,
0xae
,
0x4c
,
0xad
,
0xca
,
0xa8
,
0xc9
,
0x80
,
0x8d
,
0x0d
,
0xd5
,
0xd0
,
0xa1
,
0xbf
,
0xec
,
0x60
,
0x48
,
0x49
,
0xed
,
0x97
,
0x0f
,
0x5e
,
0xed
,
0xfc
,
0x39
,
0x15
,
0x96
,
0x9e
,
0x5d
,
0xe2
,
0xb4
,
0x5d
,
0x2e
,
0x04
,
0xdc
,
0x08
,
0xa2
,
0x65
,
0x29
,
0x2d
,
0x37
,
0xfb
,
0x62
,
0x90
,
0x1b
,
0x7b
,
0xe5
,
0x3a
,
0x58
,
0x05
,
0x55
,
0xc1
,
0x02
,
0x41
,
0x00
,
0xfc
,
0x69
,
0x28
,
0xc9
,
0xa8
,
0xc4
,
0x5c
,
0xe3
,
0xd0
,
0x5e
,
0xaa
,
0xda
,
0xde
,
0x87
,
0x74
,
0xdb
,
0xcb
,
0x40
,
0x78
,
0x8e
,
0x1d
,
0x12
,
0x96
,
0x16
,
0x61
,
0x3f
,
0xb3
,
0x3e
,
0xa3
,
0x0d
,
0xdc
,
0x49
,
0xa5
,
0x25
,
0x87
,
0xc5
,
0x97
,
0x85
,
0x9d
,
0xbb
,
0xb4
,
0xf0
,
0x44
,
0xfd
,
0x6c
,
0xe8
,
0xd2
,
0x8c
,
0xec
,
0x33
,
0x81
,
0x46
,
0x1e
,
0x10
,
0x12
,
0x33
,
0x16
,
0x95
,
0x00
,
0x4f
,
0x75
,
0xb4
,
0xe5
,
0x79
,
0x02
,
0x41
,
0x00
,
0xd0
,
0xeb
,
0x65
,
0x07
,
0x10
,
0x3b
,
0xd9
,
0x03
,
0xeb
,
0xdc
,
0x6f
,
0x4b
,
0x8f
,
0xc3
,
0x87
,
0xce
,
0x76
,
0xd6
,
0xc5
,
0x14
,
0x21
,
0x4e
,
0xe7
,
0x4f
,
0x1b
,
0xe8
,
0x05
,
0xf8
,
0x84
,
0x1a
,
0xe0
,
0xc5
,
0xd6
,
0xe3
,
0x08
,
0xb3
,
0x54
,
0x57
,
0x02
,
0x1f
,
0xd4
,
0xd9
,
0xfb
,
0xff
,
0x40
,
0xb1
,
0x56
,
0x1c
,
0x60
,
0xf7
,
0xac
,
0x91
,
0xf3
,
0xd3
,
0xc6
,
0x7f
,
0x84
,
0xfd
,
0x84
,
0x9d
,
0xea
,
0x26
,
0xee
,
0xc9
,
0x02
,
0x41
,
0x00
,
0xa6
,
0xcf
,
0x1c
,
0x6c
,
0x81
,
0x03
,
0x1c
,
0x5c
,
0x56
,
0x05
,
0x6a
,
0x26
,
0x70
,
0xef
,
0xd6
,
0x13
,
0xb7
,
0x74
,
0x28
,
0xf7
,
0xca
,
0x50
,
0xd1
,
0x2d
,
0x83
,
0x21
,
0x64
,
0xe4
,
0xdd
,
0x3f
,
0x38
,
0xb8
,
0xd6
,
0xd2
,
0x41
,
0xb3
,
0x1c
,
0x9a
,
0xea
,
0x0d
,
0xf5
,
0xda
,
0xdf
,
0xcd
,
0x17
,
0x9f
,
0x9a
,
0x1e
,
0x15
,
0xaf
,
0x48
,
0x1c
,
0xbd
,
0x9b
,
0x63
,
0x5b
,
0xad
,
0xed
,
0xd4
,
0xa1
,
0xae
,
0xa9
,
0x59
,
0x09
,
0x02
,
0x40
,
0x4e
,
0x08
,
0xce
,
0xa8
,
0x8f
,
0xc0
,
0xba
,
0xf3
,
0x83
,
0x02
,
0xc8
,
0x33
,
0x62
,
0x14
,
0x77
,
0xc2
,
0x7f
,
0x93
,
0x02
,
0xf3
,
0xdc
,
0xe9
,
0x1a
,
0xee
,
0xea
,
0x8e
,
0x84
,
0xc4
,
0x69
,
0x9b
,
0x9c
,
0x7f
,
0x69
,
0x1f
,
0x4e
,
0x1d
,
0xa5
,
0x90
,
0x06
,
0x44
,
0x1b
,
0x7d
,
0xfc
,
0x69
,
0x40
,
0x21
,
0xbc
,
0xf7
,
0x46
,
0xa4
,
0xdc
,
0x39
,
0x7b
,
0xe8
,
0x8b
,
0x49
,
0x10
,
0x44
,
0x9d
,
0x67
,
0x5a
,
0x91
,
0x86
,
0x39
,
0x02
,
0x40
,
0x41
,
0x2c
,
0x4e
,
0xfe
,
0xd9
,
0x90
,
0x89
,
0x00
,
0x5c
,
0x94
,
0x0a
,
0x4a
,
0x7e
,
0x1b
,
0x1a
,
0x80
,
0x06
,
0x01
,
0x37
,
0xda
,
0x50
,
0x61
,
0x9d
,
0x9c
,
0xfe
,
0x25
,
0x7f
,
0xd8
,
0xd4
,
0xc4
,
0x9e
,
0x81
,
0xf2
,
0x0c
,
0x1e
,
0x38
,
0x21
,
0x1e
,
0x90
,
0x3f
,
0xd4
,
0xba
,
0x6c
,
0x53
,
0xcb
,
0xf0
,
0x77
,
0x79
,
0x9b
,
0xf1
,
0xfa
,
0x3f
,
0x81
,
0xdc
,
0xf3
,
0x21
,
0x02
,
0x6d
,
0xb7
,
0x95
,
0xc3
,
0x2e
,
0xce
,
0xd5
};
unsigned
int
default_private_key_len
=
609
;
app/include/ssl/ssl_ssl.h
deleted
100644 → 0
View file @
21c4e110
This diff is collapsed.
Click to expand it.
app/include/ssl/ssl_tls1.h
deleted
100644 → 0
View file @
21c4e110
/*
* Copyright (c) 2007, Cameron Rich
*
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* * Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* * Neither the name of the axTLS project nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
/**
* @file tls1.h
*
* @brief The definitions for the TLS library.
*/
#ifndef HEADER_SSL_LIB_H
#define HEADER_SSL_LIB_H
#ifdef __cplusplus
extern
"C"
{
#endif
#include "c_types.h"
#include "ssl/ssl_version.h"
#include "ssl/ssl_config.h"
//#include "../crypto/os_int.h"
#include "ssl/ssl_crypto.h"
#include "ssl/ssl_crypto_misc.h"
#include "lwip/tcp.h"
#define SSL_PROTOCOL_MIN_VERSION 0x31
/* TLS v1.0 */
#define SSL_PROTOCOL_MINOR_VERSION 0x02
/* TLS v1.1 */
#define SSL_PROTOCOL_VERSION_MAX 0x32
/* TLS v1.1 */
#define SSL_PROTOCOL_VERSION1_1 0x32
/* TLS v1.1 */
#define SSL_RANDOM_SIZE 32
#define SSL_SECRET_SIZE 48
#define SSL_FINISHED_HASH_SIZE 12
#define SSL_RECORD_SIZE 5
#define SSL_SERVER_READ 0
#define SSL_SERVER_WRITE 1
#define SSL_CLIENT_READ 2
#define SSL_CLIENT_WRITE 3
#define SSL_HS_HDR_SIZE 4
/* the flags we use while establishing a connection */
#define SSL_NEED_RECORD 0x0001
#define SSL_TX_ENCRYPTED 0x0002
#define SSL_RX_ENCRYPTED 0x0004
#define SSL_SESSION_RESUME 0x0008
#define SSL_IS_CLIENT 0x0010
#define SSL_HAS_CERT_REQ 0x0020
#define SSL_SENT_CLOSE_NOTIFY 0x0040
/* some macros to muck around with flag bits */
#define SET_SSL_FLAG(A) (ssl->flag |= A)
#define CLR_SSL_FLAG(A) (ssl->flag &= ~A)
#define IS_SET_SSL_FLAG(A) (ssl->flag & A)
#define MAX_KEY_BYTE_SIZE 512
/* for a 4096 bit key */
#define RT_MAX_PLAIN_LENGTH 4096
#define RT_EXTRA 1024
#define BM_RECORD_OFFSET 5
#ifdef CONFIG_SSL_SKELETON_MODE
#define NUM_PROTOCOLS 1
#else
#define NUM_PROTOCOLS 4
#endif
#define PARANOIA_CHECK(A, B) if (A < B) { \
ret = SSL_ERROR_INVALID_HANDSHAKE; goto error; }
/* protocol types */
enum
{
PT_CHANGE_CIPHER_SPEC
=
20
,
PT_ALERT_PROTOCOL
,
PT_HANDSHAKE_PROTOCOL
,
PT_APP_PROTOCOL_DATA
};
/* handshaking types */
enum
{
HS_HELLO_REQUEST
,
HS_CLIENT_HELLO
,
HS_SERVER_HELLO
,
HS_CERTIFICATE
=
11
,
HS_SERVER_KEY_XCHG
,
HS_CERT_REQ
,
HS_SERVER_HELLO_DONE
,
HS_CERT_VERIFY
,
HS_CLIENT_KEY_XCHG
,
HS_FINISHED
=
20
};
typedef
struct
{
uint8_t
cipher
;
uint8_t
key_size
;
uint8_t
iv_size
;
uint8_t
key_block_size
;
uint8_t
padding_size
;
uint8_t
digest_size
;
hmac_func
hmac
;
crypt_func
encrypt
;
crypt_func
decrypt
;
}
cipher_info_t
;
struct
_SSLObjLoader
{
uint8_t
*
buf
;
int
len
;
};
typedef
struct
_SSLObjLoader
SSLObjLoader
;
typedef
struct
{
time_t
conn_time
;
uint8_t
session_id
[
SSL_SESSION_ID_SIZE
];
uint8_t
master_secret
[
SSL_SECRET_SIZE
];
}
SSL_SESSION
;
typedef
struct
{
uint8_t
*
buf
;
int
size
;
}
SSL_CERT
;
typedef
struct
{
MD5_CTX
md5_ctx
;
SHA1_CTX
sha1_ctx
;
uint8_t
final_finish_mac
[
SSL_FINISHED_HASH_SIZE
];
uint8_t
*
key_block
;
uint8_t
master_secret
[
SSL_SECRET_SIZE
];
uint8_t
client_random
[
SSL_RANDOM_SIZE
];
/* client's random sequence */
uint8_t
server_random
[
SSL_RANDOM_SIZE
];
/* server's random sequence */
uint16_t
bm_proc_index
;
}
DISPOSABLE_CTX
;
struct
_SSL
{
uint32_t
flag
;
uint16_t
need_bytes
;
uint16_t
got_bytes
;
uint8_t
record_type
;
uint8_t
cipher
;
uint8_t
sess_id_size
;
uint8_t
version
;
uint8_t
client_version
;
sint16_t
next_state
;
sint16_t
hs_status
;
DISPOSABLE_CTX
*
dc
;
/* temporary data which we'll get rid of soon */
//int client_fd;
struct
tcp_pcb
*
SslClient_pcb
;
//add by ives 12.12.2013
struct
pbuf
*
ssl_pbuf
;
//add by ives 12.12.2013
const
cipher_info_t
*
cipher_info
;
void
*
encrypt_ctx
;
void
*
decrypt_ctx
;
uint8_t
bm_all_data
[
RT_MAX_PLAIN_LENGTH
+
RT_EXTRA
];
uint8_t
*
bm_data
;
uint16_t
bm_index
;
uint16_t
bm_read_index
;
struct
_SSL
*
next
;
/* doubly linked list */
struct
_SSL
*
prev
;
struct
_SSL_CTX
*
ssl_ctx
;
/* back reference to a clnt/svr ctx */
#ifndef CONFIG_SSL_SKELETON_MODE
uint16_t
session_index
;
SSL_SESSION
*
session
;
#endif
#ifdef CONFIG_SSL_CERT_VERIFICATION
X509_CTX
*
x509_ctx
;
#endif
uint8_t
session_id
[
SSL_SESSION_ID_SIZE
];
uint8_t
client_mac
[
SHA1_SIZE
];
/* for HMAC verification */
uint8_t
server_mac
[
SHA1_SIZE
];
/* for HMAC verification */
uint8_t
read_sequence
[
8
];
/* 64 bit sequence number */
uint8_t
write_sequence
[
8
];
/* 64 bit sequence number */
uint8_t
hmac_header
[
SSL_RECORD_SIZE
];
/* rx hmac */
};
typedef
struct
_SSL
SSL
;
struct
_SSL_CTX
{
uint32_t
options
;
uint8_t
chain_length
;
RSA_CTX
*
rsa_ctx
;
#ifdef CONFIG_SSL_CERT_VERIFICATION
CA_CERT_CTX
*
ca_cert_ctx
;
#endif
SSL
*
head
;
SSL
*
tail
;
SSL_CERT
certs
[
CONFIG_SSL_MAX_CERTS
];
#ifndef CONFIG_SSL_SKELETON_MODE
uint16_t
num_sessions
;
SSL_SESSION
**
ssl_sessions
;
#endif
#ifdef CONFIG_SSL_CTX_MUTEXING
SSL_CTX_MUTEX_TYPE
mutex
;
#endif
#ifdef CONFIG_OPENSSL_COMPATIBLE
void
*
bonus_attr
;
#endif
};
typedef
struct
_SSL_CTX
SSL_CTX
;
/* backwards compatibility */
typedef
struct
_SSL_CTX
SSLCTX
;
extern
const
uint8_t
ssl_prot_prefs
[
NUM_PROTOCOLS
];
SSL
*
ssl_new
(
SSL_CTX
*
ssl_ctx
,
int
client_fd
);
SSL
*
ssl_new_context
(
SSL_CTX
*
ssl_ctx
,
struct
tcp_pcb
*
SslClient_pcb
);
void
disposable_new
(
SSL
*
ssl
);
void
disposable_free
(
SSL
*
ssl
);
int
send_packet
(
SSL
*
ssl
,
uint8_t
protocol
,
const
uint8_t
*
in
,
int
length
);
int
do_svr_handshake
(
SSL
*
ssl
,
int
handshake_type
,
uint8_t
*
buf
,
int
hs_len
);
int
do_clnt_handshake
(
SSL
*
ssl
,
int
handshake_type
,
uint8_t
*
buf
,
int
hs_len
);
int
process_finished
(
SSL
*
ssl
,
uint8_t
*
buf
,
int
hs_len
);
int
process_sslv23_client_hello
(
SSL
*
ssl
);
int
send_alert
(
SSL
*
ssl
,
int
error_code
);
int
send_finished
(
SSL
*
ssl
);
int
send_certificate
(
SSL
*
ssl
);
int
basic_read
(
SSL
*
ssl
,
uint8_t
**
in_data
);
int
send_change_cipher_spec
(
SSL
*
ssl
);
void
finished_digest
(
SSL
*
ssl
,
const
char
*
label
,
uint8_t
*
digest
);
void
generate_master_secret
(
SSL
*
ssl
,
const
uint8_t
*
premaster_secret
);
void
add_packet
(
SSL
*
ssl
,
const
uint8_t
*
pkt
,
int
len
);
int
add_cert
(
SSL_CTX
*
ssl_ctx
,
const
uint8_t
*
buf
,
int
len
);
int
add_private_key
(
SSL_CTX
*
ssl_ctx
,
SSLObjLoader
*
ssl_obj
);
void
ssl_obj_free
(
SSLObjLoader
*
ssl_obj
);
int
pkcs8_decode
(
SSL_CTX
*
ssl_ctx
,
SSLObjLoader
*
ssl_obj
,
const
char
*
password
);
int
pkcs12_decode
(
SSL_CTX
*
ssl_ctx
,
SSLObjLoader
*
ssl_obj
,
const
char
*
password
);
int
load_key_certs
(
SSL_CTX
*
ssl_ctx
);
#ifdef CONFIG_SSL_CERT_VERIFICATION
int
add_cert_auth
(
SSL_CTX
*
ssl_ctx
,
const
uint8_t
*
buf
,
int
len
);
void
remove_ca_certs
(
CA_CERT_CTX
*
ca_cert_ctx
);
#endif
#ifdef CONFIG_SSL_ENABLE_CLIENT
int
do_client_connect
(
SSL
*
ssl
);
#endif
#ifdef CONFIG_SSL_FULL_MODE
//void DISPLAY_STATE(SSL *ssl, int is_send, uint8_t state, int not_ok);
//void DISPLAY_BYTES(SSL *ssl, const char *format,
// const uint8_t *data, int size, ...);
//void DISPLAY_CERT(SSL *ssl, const X509_CTX *x509_ctx);
//void DISPLAY_RSA(SSL *ssl, const RSA_CTX *rsa_ctx);
//void DISPLAY_ALERT(SSL *ssl, int alert);
#else
#define DISPLAY_STATE(A,B,C,D)
#define DISPLAY_CERT(A,B)
#define DISPLAY_RSA(A,B)
#define DISPLAY_ALERT(A, B)
#ifdef WIN32
void
DISPLAY_BYTES
(
SSL
*
ssl
,
const
char
*
format
,
/* win32 has no variadic macros */
const
uint8_t
*
data
,
int
size
,
...);
#else
#define DISPLAY_BYTES(A,B,C,D,...)
#endif
#endif
#ifdef CONFIG_SSL_CERT_VERIFICATION
int
process_certificate
(
SSL
*
ssl
,
X509_CTX
**
x509_ctx
);
#endif
SSL_SESSION
*
ssl_session_update
(
int
max_sessions
,
SSL_SESSION
*
ssl_sessions
[],
SSL
*
ssl
,
const
uint8_t
*
session_id
);
void
kill_ssl_session
(
SSL_SESSION
**
ssl_sessions
,
SSL
*
ssl
);
#ifdef __cplusplus
}
#endif
#endif
app/include/ssl/ssl_version.h
deleted
100644 → 0
View file @
21c4e110
#define AXTLS_VERSION "1.4.9"
app/ssl/Makefile
deleted
100644 → 0
View file @
21c4e110
#############################################################
# Required variables for each makefile
# Discard this section from all parent makefiles
# Expected variables (with automatic defaults):
# CSRCS (all "C" files in the dir)
# SUBDIRS (all subdirs with a Makefile)
# GEN_LIBS - list of libs to be generated ()
# GEN_IMAGES - list of images to be generated ()
# COMPONENTS_xxx - a list of libs/objs in the form
# subdir/lib to be extracted and rolled up into
# a generated lib/image xxx.a ()
#
ifndef
PDIR
UP_EXTRACT_DIR
=
..
GEN_LIBS
=
libssl.a
COMPONENTS_libssl
=
crypto/libsslcrypto.a
\
ssl/libsslssl.a
\
app/libsslapp.a
endif
#############################################################
# Configuration i.e. compile options etc.
# Target specific stuff (defines etc.) goes in here!
# Generally values applying to a tree are captured in the
# makefile at its root level - these are then overridden
# for a subtree within the makefile rooted therein
#
#DEFINES +=
#############################################################
# Recursion Magic - Don't touch this!!
#
# Each subtree potentially has an include directory
# corresponding to the common APIs applicable to modules
# rooted at that subtree. Accordingly, the INCLUDE PATH
# of a module can only contain the include directories up
# its parent path, and not its siblings
#
# Required for each makefile to inherit from the parent
#
INCLUDES
:=
$(INCLUDES)
-I
$(PDIR)
include
INCLUDES
+=
-I
./
PDIR
:=
../
$(PDIR)
sinclude
$(PDIR)Makefile
app/ssl/app/Makefile
deleted
100644 → 0
View file @
21c4e110
#############################################################
# Required variables for each makefile
# Discard this section from all parent makefiles
# Expected variables (with automatic defaults):
# CSRCS (all "C" files in the dir)
# SUBDIRS (all subdirs with a Makefile)
# GEN_LIBS - list of libs to be generated ()
# GEN_IMAGES - list of images to be generated ()
# COMPONENTS_xxx - a list of libs/objs in the form
# subdir/lib to be extracted and rolled up into
# a generated lib/image xxx.a ()
#
ifndef
PDIR
GEN_LIBS
=
libsslapp.a
endif
#############################################################
# Configuration i.e. compile options etc.
# Target specific stuff (defines etc.) goes in here!
# Generally values applying to a tree are captured in the
# makefile at its root level - these are then overridden
# for a subtree within the makefile rooted therein
#
#DEFINES +=
#############################################################
# Recursion Magic - Don't touch this!!
#
# Each subtree potentially has an include directory
# corresponding to the common APIs applicable to modules
# rooted at that subtree. Accordingly, the INCLUDE PATH
# of a module can only contain the include directories up
# its parent path, and not its siblings
#
# Required for each makefile to inherit from the parent
#
INCLUDES
:=
$(INCLUDES)
-I
$(PDIR)
include
INCLUDES
+=
-I
./
PDIR
:=
../
$(PDIR)
sinclude
$(PDIR)Makefile
app/ssl/app/espconn_secure.c
deleted
100644 → 0
View file @
21c4e110
/******************************************************************************
* Copyright 2013-2014 Espressif Systems (Wuxi)
*
* FileName: espconn_encry.c
*
* Description: data encrypt interface
*
* Modification history:
* 2014/3/31, v1.0 create this file.
*******************************************************************************/
#include "lwip/netif.h"
#include "lwip/inet.h"
#include "netif/etharp.h"
#include "lwip/tcp.h"
#include "lwip/ip.h"
#include "lwip/init.h"
#include "ets_sys.h"
#include "os_type.h"
//#include "os.h"
#include "ssl/app/espconn_ssl.h"
/******************************************************************************
* FunctionName : espconn_encry_connect
* Description : The function given as the connect
* Parameters : espconn -- the espconn used to listen the connection
* Returns : none
*******************************************************************************/
sint8
ICACHE_FLASH_ATTR
espconn_secure_connect
(
struct
espconn
*
espconn
)
{
if
(
espconn
==
NULL
)
return
ESPCONN_ARG
;
return
espconn_ssl_client
(
espconn
);
}
/******************************************************************************
* FunctionName : espconn_encry_disconnect
* Description : The function given as the disconnect
* Parameters : espconn -- the espconn used to listen the connection
* Returns : none
*******************************************************************************/
sint8
ICACHE_FLASH_ATTR
espconn_secure_disconnect
(
struct
espconn
*
espconn
)
{
espconn_msg
*
pnode
=
NULL
;
bool
value
=
false
;
if
(
espconn
==
NULL
)
return
ESPCONN_ARG
;
value
=
espconn_find_connection
(
espconn
,
&
pnode
);
if
(
value
){
espconn_ssl_disconnect
(
pnode
);
return
ESPCONN_OK
;
}
else
return
ESPCONN_ARG
;
}
/******************************************************************************
* FunctionName : espconn_encry_sent
* Description : sent data for client or server
* Parameters : espconn -- espconn to set for client or server
* psent -- data to send
* length -- length of data to send
* Returns : none
*******************************************************************************/
sint8
ICACHE_FLASH_ATTR
espconn_secure_sent
(
struct
espconn
*
espconn
,
uint8
*
psent
,
uint16
length
)
{
espconn_msg
*
pnode
=
NULL
;
bool
value
=
false
;
if
(
espconn
==
NULL
)
return
ESPCONN_ARG
;
espconn
->
state
=
ESPCONN_WRITE
;
value
=
espconn_find_connection
(
espconn
,
&
pnode
);
if
(
value
){
espconn_ssl_sent
(
pnode
,
psent
,
length
);
return
ESPCONN_OK
;
}
else
return
ESPCONN_ARG
;
}
sint8
ICACHE_FLASH_ATTR
espconn_secure_accept
(
struct
espconn
*
espconn
)
{
if
(
espconn
==
NULL
)
return
ESPCONN_ARG
;
return
espconn_ssl_server
(
espconn
);
}
Prev
1
2
3
Next
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment