Mercurial > hg > nginx-quic
comparison src/event/ngx_event_openssl.c @ 2123:9697407e9ecb
*) ssl_verify_client ask
*) test ssl_client_certificate for ssl_verify_client
*) $ssl_client_cert adds TAB before each line except first one
*) $ssl_client_raw_cert contains certificate as is
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Tue, 29 Jul 2008 14:29:02 +0000 |
parents | b4085596a7e6 |
children | 05e8de8fcfbb |
comparison
equal
deleted
inserted
replaced
2122:d090fa684433 | 2123:9697407e9ecb |
---|---|
1882 return NGX_OK; | 1882 return NGX_OK; |
1883 } | 1883 } |
1884 | 1884 |
1885 | 1885 |
1886 ngx_int_t | 1886 ngx_int_t |
1887 ngx_ssl_get_certificate(ngx_connection_t *c, ngx_pool_t *pool, ngx_str_t *s) | 1887 ngx_ssl_get_raw_certificate(ngx_connection_t *c, ngx_pool_t *pool, ngx_str_t *s) |
1888 { | 1888 { |
1889 size_t len; | 1889 size_t len; |
1890 BIO *bio; | 1890 BIO *bio; |
1891 X509 *cert; | 1891 X509 *cert; |
1892 | 1892 |
1928 | 1928 |
1929 BIO_free(bio); | 1929 BIO_free(bio); |
1930 X509_free(cert); | 1930 X509_free(cert); |
1931 | 1931 |
1932 return NGX_ERROR; | 1932 return NGX_ERROR; |
1933 } | |
1934 | |
1935 | |
1936 ngx_int_t | |
1937 ngx_ssl_get_certificate(ngx_connection_t *c, ngx_pool_t *pool, ngx_str_t *s) | |
1938 { | |
1939 u_char *p; | |
1940 size_t len; | |
1941 ngx_uint_t i; | |
1942 ngx_str_t cert; | |
1943 | |
1944 if (ngx_ssl_get_raw_certificate(c, pool, &cert) != NGX_OK) { | |
1945 return NGX_ERROR; | |
1946 } | |
1947 | |
1948 if (cert.len == 0) { | |
1949 s->len = 0; | |
1950 return NGX_OK; | |
1951 } | |
1952 | |
1953 len = cert.len - 1; | |
1954 | |
1955 for (i = 0; i < cert.len - 1; i++) { | |
1956 if (cert.data[i] == LF) { | |
1957 len++; | |
1958 } | |
1959 } | |
1960 | |
1961 s->len = len; | |
1962 s->data = ngx_pnalloc(pool, len); | |
1963 if (s->data == NULL) { | |
1964 return NGX_ERROR; | |
1965 } | |
1966 | |
1967 p = s->data; | |
1968 | |
1969 for (i = 0; i < len; i++) { | |
1970 *p++ = cert.data[i]; | |
1971 if (cert.data[i] == LF) { | |
1972 *p++ = '\t'; | |
1973 } | |
1974 } | |
1975 | |
1976 return NGX_OK; | |
1933 } | 1977 } |
1934 | 1978 |
1935 | 1979 |
1936 ngx_int_t | 1980 ngx_int_t |
1937 ngx_ssl_get_subject_dn(ngx_connection_t *c, ngx_pool_t *pool, ngx_str_t *s) | 1981 ngx_ssl_get_subject_dn(ngx_connection_t *c, ngx_pool_t *pool, ngx_str_t *s) |