Lines Matching defs:group
126 /// Returns the group of a standard named curve.
136 /// let group = EcGroup::from_curve_name(nid)?;
137 /// let key = EcKey::generate(&group)?;
148 /// Returns the group for given parameters
218 /// Places the cofactor of the group in the provided `BigNum`.
241 /// Returns the number of bits in the group order.
293 /// Sets the flag determining if the group corresponds to a named curve or must be explicitly
305 /// Gets the flag determining if the group corresponds to a named curve.
338 group: &EcGroupRef,
345 group.as_ptr(),
359 group: &EcGroupRef,
367 group.as_ptr(),
382 group: &EcGroupRef,
389 group.as_ptr(),
404 group: &EcGroupRef,
412 group.as_ptr(),
426 pub fn invert(&mut self, group: &EcGroupRef, ctx: &BigNumContextRef) -> Result<(), ErrorStack> {
429 group.as_ptr(),
441 group: &EcGroupRef,
447 group.as_ptr(),
459 group.as_ptr(),
479 group: &EcGroupRef,
485 group.as_ptr(),
496 pub fn to_owned(&self, group: &EcGroupRef) -> Result<EcPoint, ErrorStack> {
497 unsafe { cvt_p(ffi::EC_POINT_dup(self.as_ptr(), group.as_ptr())).map(EcPoint) }
504 group: &EcGroupRef,
510 group.as_ptr(),
525 group: &EcGroupRef,
532 group.as_ptr(),
547 group: &EcGroupRef,
554 group.as_ptr(),
569 group: &EcGroupRef,
576 group.as_ptr(),
592 group: &EcGroupRef,
599 group.as_ptr(),
611 pub fn is_infinity(&self, group: &EcGroupRef) -> bool {
613 let res = ffi::EC_POINT_is_at_infinity(group.as_ptr(), self.as_ptr());
622 group: &EcGroupRef,
627 group.as_ptr(),
639 pub fn new(group: &EcGroupRef) -> Result<EcPoint, ErrorStack> {
640 unsafe { cvt_p(ffi::EC_POINT_new(group.as_ptr())).map(EcPoint) }
646 group: &EcGroupRef,
650 let point = EcPoint::new(group)?;
653 group.as_ptr(),
667 group: &EcGroupRef,
671 let point = EcPoint::new(group)?;
675 group.as_ptr(),
764 /// Returns the key's group.
766 pub fn group(&self) -> &EcGroupRef {
807 pub fn from_group(group: &EcGroupRef) -> Result<EcKey<Params>, ErrorStack> {
812 cvt(ffi::EC_KEY_set_group(key.as_ptr(), group.as_ptr())).map(|_| key)
819 /// Constructs an `EcKey` from the specified group with the associated [`EcPoint`]: `public_key`.
832 /// let group = EcGroup::from_curve_name(Nid::SECP384R1)?;
837 /// # EcKey::generate(&group)?.public_key().to_bytes(&group,
841 /// let point = EcPoint::from_bytes(&group, &public_key, &mut ctx)?;
842 /// let key = EcKey::from_public_key(&group, &point)?;
848 group: &EcGroupRef,
855 cvt(ffi::EC_KEY_set_group(key.as_ptr(), group.as_ptr())).map(|_| key)
870 group: &EcGroupRef,
878 cvt(ffi::EC_KEY_set_group(key.as_ptr(), group.as_ptr())).map(|_| key)
922 /// let group = EcGroup::from_curve_name(nid)?;
923 /// let key = EcKey::generate(&group)?;
928 /// &group,
940 pub fn generate(group: &EcGroupRef) -> Result<EcKey<Private>, ErrorStack> {
945 cvt(ffi::EC_KEY_set_group(key.as_ptr(), group.as_ptr())).map(|_| key)
954 group: &EcGroupRef,
962 cvt(ffi::EC_KEY_set_group(key.as_ptr(), group.as_ptr())).map(|_| key)
1041 let group = EcGroup::from_curve_name(Nid::X9_62_PRIME256V1).unwrap();
1042 EcKey::generate(&group).unwrap();
1068 let group = EcGroup::from_curve_name(Nid::X9_62_PRIME256V1).unwrap();
1070 let mut gen_point = EcPoint::new(&group).unwrap();
1080 .set_affine_coordinates_gfp(&group, &gen_x, &gen_y, &mut ctx)
1082 assert!(gen_point.is_on_curve(&group, &mut ctx).unwrap());
1102 let mut group = EcGroup::from_components(p, a, b, &mut ctx).unwrap();
1104 let mut gen_point = EcPoint::new(&group).unwrap();
1114 .set_affine_coordinates_gfp(&group, &gen_x, &gen_y, &mut ctx)
1122 group.set_generator(gen_point, order, cofactor).unwrap();
1124 group.order(&mut constructed_order, &mut ctx).unwrap();
1138 let group = EcGroup::from_curve_name(Nid::X9_62_PRIME256V1).unwrap();
1141 group.cofactor(&mut cofactor, &mut ctx).unwrap();
1149 let group = EcGroup::from_curve_name(Nid::X9_62_PRIME256V1).unwrap();
1150 let key = EcKey::generate(&group).unwrap();
1156 let group = EcGroup::from_curve_name(Nid::X9_62_PRIME256V1).unwrap();
1157 EcPoint::new(&group).unwrap();
1162 let group = EcGroup::from_curve_name(Nid::X9_62_PRIME256V1).unwrap();
1163 let key = EcKey::generate(&group).unwrap();
1167 .to_bytes(&group, PointConversionForm::COMPRESSED, &mut ctx)
1169 let point2 = EcPoint::from_bytes(&group, &bytes, &mut ctx).unwrap();
1170 assert!(point.eq(&group, &point2, &mut ctx).unwrap());
1176 let group = EcGroup::from_curve_name(Nid::X9_62_PRIME256V1).unwrap();
1177 let key = EcKey::generate(&group).unwrap();
1181 .to_hex_str(&group, PointConversionForm::COMPRESSED, &mut ctx)
1183 let point2 = EcPoint::from_hex_str(&group, &hex, &mut ctx).unwrap();
1184 assert!(point.eq(&group, &point2, &mut ctx).unwrap());
1189 let group = EcGroup::from_curve_name(Nid::X9_62_PRIME256V1).unwrap();
1190 let key = EcKey::generate(&group).unwrap();
1192 let owned = point.to_owned(&group).unwrap();
1194 assert!(owned.eq(&group, point, &mut ctx).unwrap());
1199 let group = EcGroup::from_curve_name(Nid::X9_62_PRIME256V1).unwrap();
1200 let key = EcKey::generate(&group).unwrap();
1202 let mut public_key = EcPoint::new(&group).unwrap();
1204 .mul_generator(&group, key.private_key(), &ctx)
1206 assert!(public_key.eq(&group, key.public_key(), &mut ctx).unwrap());
1211 let group = EcGroup::from_curve_name(Nid::X9_62_PRIME256V1).unwrap();
1212 let gen = group.generator();
1215 let mut ecp = EcPoint::new(&group).unwrap();
1216 ecp.mul_generator(&group, &one, &ctx).unwrap();
1217 assert!(ecp.eq(&group, gen, &mut ctx).unwrap());
1222 let group = EcGroup::from_curve_name(Nid::X9_62_PRIME256V1).unwrap();
1223 let key = EcKey::generate(&group).unwrap();
1227 .to_bytes(&group, PointConversionForm::COMPRESSED, &mut ctx)
1231 let public_key = EcPoint::from_bytes(&group, &bytes, &mut ctx).unwrap();
1232 let ec_key = EcKey::from_public_key(&group, &public_key).unwrap();
1238 let group = EcGroup::from_curve_name(Nid::X9_62_PRIME256V1).unwrap();
1239 let key = EcKey::generate(&group).unwrap();
1242 EcKey::from_private_components(&group, key.private_key(), key.public_key()).unwrap();
1250 let group = EcGroup::from_curve_name(Nid::X9_62_PRIME256V1).unwrap();
1259 let ec_key = EcKey::from_public_key_affine_coordinates(&group, &xbn, &ybn).unwrap();
1266 let group = EcGroup::from_curve_name(Nid::X9_62_PRIME256V1).unwrap();
1275 let ec_key = EcKey::from_public_key_affine_coordinates(&group, &xbn, &ybn).unwrap();
1282 .affine_coordinates(&group, &mut xbn2, &mut ybn2, &mut ctx)
1290 let group = EcGroup::from_curve_name(Nid::X9_62_PRIME256V1).unwrap();
1299 let ec_key = EcKey::from_public_key_affine_coordinates(&group, &xbn, &ybn).unwrap();
1306 .affine_coordinates_gfp(&group, &mut xbn2, &mut ybn2, &mut ctx)
1314 let group = EcGroup::from_curve_name(Nid::X9_62_PRIME256V1).unwrap();
1316 let g = group.generator();
1317 assert!(!g.is_infinity(&group));
1320 group.order(&mut order, &mut ctx).unwrap();
1321 let mut inf = EcPoint::new(&group).unwrap();
1322 inf.mul_generator(&group, &order, &ctx).unwrap();
1323 assert!(inf.is_infinity(&group));
1329 let group = EcGroup::from_curve_name(Nid::X9_62_PRIME256V1).unwrap();
1331 let g = group.generator();
1332 assert!(g.is_on_curve(&group, &mut ctx).unwrap());
1341 let group = EcGroup::from_curve_name(Nid::X9_62_PRIME256V1).unwrap();
1342 let flag = group.asn1_flag();