Ignore:
Timestamp:
Oct 27, 2016 7:58:01 AM (3 years ago)
Author:
ming
Message:

Fixed #1975: Add support to select elliptic curve and signature algorithm for TLS

File:
1 edited

Legend:

Unmodified
Added
Removed
  • pjproject/trunk/pjsip/include/pjsip/sip_transport_tls.h

    r5089 r5472  
    142142 
    143143    /** 
     144     * Number of curves contained in the specified curve preference. 
     145     * If this is set to zero, then default curve list of the backend 
     146     * will be used. 
     147     * 
     148     * Default: 0 (zero). 
     149     */ 
     150    unsigned curves_num; 
     151 
     152    /** 
     153     * Curves and order preference. The #pj_ssl_curve_get_availables() 
     154     * can be used to check the available curves supported by backend. 
     155     */ 
     156    pj_ssl_curve *curves; 
     157 
     158    /** 
     159     * The supported signature algorithms. Set the sigalgs string 
     160     * using this form: 
     161     * "<DIGEST>+<ALGORITHM>:<DIGEST>+<ALGORITHM>" 
     162     * Digests are: "RSA", "DSA" or "ECDSA" 
     163     * Algorithms are: "MD5", "SHA1", "SHA224", "SHA256", "SHA384", "SHA512" 
     164     * Example: "ECDSA+SHA256:RSA+SHA256" 
     165     */ 
     166    pj_str_t    sigalgs; 
     167 
     168    /** 
     169     * Reseed random number generator. 
     170     * For type #PJ_SSL_ENTROPY_FILE, parameter \a entropy_path 
     171     * must be set to a file. 
     172     * For type #PJ_SSL_ENTROPY_EGD, parameter \a entropy_path 
     173     * must be set to a socket. 
     174     * 
     175     * Default value is PJ_SSL_ENTROPY_NONE. 
     176    */ 
     177    pj_ssl_entropy_t    entropy_type; 
     178 
     179    /** 
     180     * When using a file/socket for entropy #PJ_SSL_ENTROPY_EGD or 
     181     * #PJ_SSL_ENTROPY_FILE, \a entropy_path must contain the path 
     182     * to entropy socket/file. 
     183     * 
     184     * Default value is an empty string. 
     185     */ 
     186    pj_str_t            entropy_path; 
     187 
     188    /** 
    144189     * Specifies TLS transport behavior on the server TLS certificate  
    145190     * verification result: 
     
    293338    pj_strdup_with_null(pool, &dst->privkey_file, &src->privkey_file); 
    294339    pj_strdup_with_null(pool, &dst->password, &src->password); 
     340    pj_strdup_with_null(pool, &dst->sigalgs, &src->sigalgs); 
     341    pj_strdup_with_null(pool, &dst->entropy_path, &src->entropy_path); 
    295342    if (src->ciphers_num) { 
    296343        unsigned i; 
     
    299346        for (i=0; i<src->ciphers_num; ++i) 
    300347            dst->ciphers[i] = src->ciphers[i]; 
     348    } 
     349 
     350    if (src->curves_num) { 
     351        unsigned i; 
     352        dst->curves = (pj_ssl_curve*) pj_pool_calloc(pool, src->curves_num, 
     353                                                     sizeof(pj_ssl_curve)); 
     354        for (i=0; i<src->curves_num; ++i) 
     355            dst->curves[i] = src->curves[i]; 
    301356    } 
    302357} 
Note: See TracChangeset for help on using the changeset viewer.