85 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			85 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
=pod
 | 
						|
 | 
						|
=head1 NAME
 | 
						|
 | 
						|
d2i_ECPKParameters, i2d_ECPKParameters, d2i_ECPKParameters_bio, i2d_ECPKParameters_bio, d2i_ECPKParameters_fp, i2d_ECPKParameters_fp, ECPKParameters_print, ECPKParameters_print_fp - Functions for decoding and encoding ASN1 representations of elliptic curve entities
 | 
						|
 | 
						|
=head1 SYNOPSIS
 | 
						|
 | 
						|
 #include <openssl/ec.h>
 | 
						|
 | 
						|
 EC_GROUP *d2i_ECPKParameters(EC_GROUP **px, const unsigned char **in, long len);
 | 
						|
 int i2d_ECPKParameters(const EC_GROUP *x, unsigned char **out);
 | 
						|
 #define d2i_ECPKParameters_bio(bp,x) ASN1_d2i_bio_of(EC_GROUP,NULL,d2i_ECPKParameters,bp,x)
 | 
						|
 #define i2d_ECPKParameters_bio(bp,x) ASN1_i2d_bio_of_const(EC_GROUP,i2d_ECPKParameters,bp,x)
 | 
						|
 #define d2i_ECPKParameters_fp(fp,x) (EC_GROUP *)ASN1_d2i_fp(NULL, \
 | 
						|
                (char *(*)())d2i_ECPKParameters,(fp),(unsigned char **)(x))
 | 
						|
 #define i2d_ECPKParameters_fp(fp,x) ASN1_i2d_fp(i2d_ECPKParameters,(fp), \
 | 
						|
		(unsigned char *)(x))
 | 
						|
 int     ECPKParameters_print(BIO *bp, const EC_GROUP *x, int off);
 | 
						|
 int     ECPKParameters_print_fp(FILE *fp, const EC_GROUP *x, int off);
 | 
						|
 | 
						|
 | 
						|
=head1 DESCRIPTION
 | 
						|
 | 
						|
The ECPKParameters encode and decode routines encode and parse the public parameters for an
 | 
						|
B<EC_GROUP> structure, which represents a curve.
 | 
						|
 | 
						|
d2i_ECPKParameters() attempts to decode B<len> bytes at B<*in>. If 
 | 
						|
successful a pointer to the B<EC_GROUP> structure is returned. If an error
 | 
						|
occurred then B<NULL> is returned. If B<px> is not B<NULL> then the
 | 
						|
returned structure is written to B<*px>. If B<*px> is not B<NULL>
 | 
						|
then it is assumed that B<*px> contains a valid B<EC_GROUP>
 | 
						|
structure and an attempt is made to reuse it. If the call is
 | 
						|
successful B<*in> is incremented to the byte following the
 | 
						|
parsed data.
 | 
						|
 | 
						|
i2d_ECPKParameters() encodes the structure pointed to by B<x> into DER format.
 | 
						|
If B<out> is not B<NULL> is writes the DER encoded data to the buffer
 | 
						|
at B<*out>, and increments it to point after the data just written.
 | 
						|
If the return value is negative an error occurred, otherwise it
 | 
						|
returns the length of the encoded data. 
 | 
						|
 | 
						|
If B<*out> is B<NULL> memory will be allocated for a buffer and the encoded
 | 
						|
data written to it. In this case B<*out> is not incremented and it points to
 | 
						|
the start of the data just written.
 | 
						|
 | 
						|
d2i_ECPKParameters_bio() is similar to d2i_ECPKParameters() except it attempts
 | 
						|
to parse data from BIO B<bp>.
 | 
						|
 | 
						|
d2i_ECPKParameters_fp() is similar to d2i_ECPKParameters() except it attempts
 | 
						|
to parse data from FILE pointer B<fp>.
 | 
						|
 | 
						|
i2d_ECPKParameters_bio() is similar to i2d_ECPKParameters() except it writes
 | 
						|
the encoding of the structure B<x> to BIO B<bp> and it
 | 
						|
returns 1 for success and 0 for failure.
 | 
						|
 | 
						|
i2d_ECPKParameters_fp() is similar to i2d_ECPKParameters() except it writes
 | 
						|
the encoding of the structure B<x> to BIO B<bp> and it
 | 
						|
returns 1 for success and 0 for failure.
 | 
						|
 | 
						|
These functions are very similar to the X509 functions described in L<d2i_X509(3)|d2i_X509(3)>,
 | 
						|
where further notes and examples are available.
 | 
						|
 | 
						|
The ECPKParameters_print and ECPKParameters_print_fp functions print a human-readable output
 | 
						|
of the public parameters of the EC_GROUP to B<bp> or B<fp>. The output lines are indented by B<off> spaces.
 | 
						|
 | 
						|
=head1 RETURN VALUES
 | 
						|
 | 
						|
d2i_ECPKParameters(), d2i_ECPKParameters_bio() and d2i_ECPKParameters_fp() return a valid B<EC_GROUP> structure
 | 
						|
or B<NULL> if an error occurs.
 | 
						|
 | 
						|
i2d_ECPKParameters() returns the number of bytes successfully encoded or a negative
 | 
						|
value if an error occurs.
 | 
						|
 | 
						|
i2d_ECPKParameters_bio(), i2d_ECPKParameters_fp(), ECPKParameters_print and ECPKParameters_print_fp
 | 
						|
return 1 for success and 0 if an error occurs. 
 | 
						|
 | 
						|
=head1 SEE ALSO
 | 
						|
 | 
						|
L<crypto(3)|crypto(3)>, L<ec(3)|ec(3)>, L<EC_GROUP_new(3)|EC_GROUP_new(3)>, L<EC_GROUP_copy(3)|EC_GROUP_copy(3)>,
 | 
						|
L<EC_POINT_new(3)|EC_POINT_new(3)>, L<EC_POINT_add(3)|EC_POINT_add(3)>, L<EC_KEY_new(3)|EC_KEY_new(3)>,
 | 
						|
L<EC_GFp_simple_method(3)|EC_GFp_simple_method(3)>, L<d2i_X509(3)|d2i_X509(3)>
 | 
						|
 | 
						|
=cut
 |