# Class BSVShimECPoint <a id="class-BSVShimECPoint"></a>

**Inherits:** `Object`

Shim Point wrapping BSV::Primitives::Secp256k1::Point.

## Attributes
### `group` [R] <a id="attribute-i-group"></a> <a id="group-instance_method"></a>
Returns the value of attribute group.

## Public Class Methods
### `from_secp_point(group, secp_point)` <a id="method-c-from_secp_point"></a> <a id="from_secp_point-class_method"></a>
Not documented.

## Public Instance Methods
### `add(other)` <a id="method-i-add"></a> <a id="add-instance_method"></a>
Not documented.

### `infinity?()` <a id="method-i-infinity-3F"></a> <a id="infinity?-instance_method"></a>
- **@return** [Boolean]

### `initialize(group, bn = nil)` <a id="method-i-initialize"></a> <a id="initialize-instance_method"></a>
- **@return** [BSVShimECPoint] a new instance of BSVShimECPoint

### `mul(*args)` <a id="method-i-mul"></a> <a id="mul-instance_method"></a>
Scalar multiplication: self * scalar (constant-time, Montgomery ladder).

Matches OpenSSL convention where `EC_POINT_mul` is always constant-time. Safe
for both secret and public scalars.

Also supports the multi-scalar form: +mul(bns, points)+ computes
<code>bns[0]*self + bns[1]*points[0] + ...</code> where +bns.length ==
points.length + 1+.
- **@overload** `mul`
- **@overload** `mul`
- **@return** [BSVShimECPoint]

### `mul_ct(scalar_bn)` <a id="method-i-mul_ct"></a> <a id="mul_ct-instance_method"></a>
Constant-time scalar multiplication (alias for {#mul}).

Retained for backward compatibility and expressiveness. Delegates to {#mul},
which is constant-time by default.
- **@param** `scalar_bn` [OpenSSL::BN, Integer] the scalar multiplier
- **@return** [BSVShimECPoint]

### `mul_vt(scalar_bn)` <a id="method-i-mul_vt"></a> <a id="mul_vt-instance_method"></a>
Variable-time scalar multiplication (wNAF).

Faster than {#mul} but leaks timing information about the scalar. Use only for
public scalars (e.g. signature verification).
- **@param** `scalar_bn` [OpenSSL::BN, Integer] the public scalar multiplier
- **@return** [BSVShimECPoint]

### `set_to_infinity!()` <a id="method-i-set_to_infinity-21"></a> <a id="set_to_infinity!-instance_method"></a>
Not documented.

### `to_bn(format = :compressed)` <a id="method-i-to_bn"></a> <a id="to_bn-instance_method"></a>
Not documented.

### `to_octet_string(format = :compressed)` <a id="method-i-to_octet_string"></a> <a id="to_octet_string-instance_method"></a>
Not documented.
