> ## Documentation Index
> Fetch the complete documentation index at: https://projectdiscovery-nuclei-v3-2-3-updates.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Ikev2.IKEMessage

# Class: IKEMessage

[ikev2](/templates/protocols/javascript/modules/ikev2).IKEMessage

IKEMessage is the IKEv2 message
IKEv2 implements a limited subset of IKEv2 Protocol, specifically
the IKE\_NOTIFY and IKE\_NONCE payloads and the IKE\_SA\_INIT exchange.

## Table of contents

### Constructors

* [constructor](/templates/protocols/javascript/modules/ikev2.IKEMessage#constructor)

### Properties

* [ExchangeType](/templates/protocols/javascript/modules/ikev2.IKEMessage#exchangetype)
* [Flags](/templates/protocols/javascript/modules/ikev2.IKEMessage#flags)
* [InitiatorSPI](/templates/protocols/javascript/modules/ikev2.IKEMessage#initiatorspi)
* [Version](/templates/protocols/javascript/modules/ikev2.IKEMessage#version)

### Methods

* [AppendPayload](/templates/protocols/javascript/modules/ikev2.IKEMessage#appendpayload)
* [Encode](/templates/protocols/javascript/modules/ikev2.IKEMessage#encode)

## Constructors

### constructor

• **new IKEMessage**(): [`IKEMessage`](/templates/protocols/javascript/modules/ikev2.IKEMessage)

#### Returns

[`IKEMessage`](/templates/protocols/javascript/modules/ikev2.IKEMessage)

#### Defined in

ikev2.ts:52

## Properties

### ExchangeType

• `Optional` **ExchangeType**: `number`

#### Defined in

ikev2.ts:44

***

### Flags

• `Optional` **Flags**: `number`

#### Defined in

ikev2.ts:48

***

### InitiatorSPI

• `Optional` **InitiatorSPI**: `number`

#### Defined in

ikev2.ts:36

***

### Version

• `Optional` **Version**: `number`

#### Defined in

ikev2.ts:40

## Methods

### AppendPayload

▸ **AppendPayload**(`payload`): `void`

AppendPayload appends a payload to the IKE message
payload can be any of the payloads like IKENotification, IKENonce, etc.

#### Parameters

| Name      | Type  |
| :-------- | :---- |
| `payload` | `any` |

#### Returns

`void`

**`Example`**

```javascript
const ikev2 = require('nuclei/ikev2');
const message = new ikev2.IKEMessage();
const nonce = new ikev2.IKENonce();
nonce.NonceData = [1, 2, 3];
message.AppendPayload(nonce);
```

#### Defined in

ikev2.ts:65

***

### Encode

▸ **Encode**(): `Uint8Array`

Encode encodes the final IKE message

#### Returns

`Uint8Array`

**`Example`**

```javascript
const ikev2 = require('nuclei/ikev2');
const message = new ikev2.IKEMessage();
const nonce = new ikev2.IKENonce();
nonce.NonceData = [1, 2, 3];
message.AppendPayload(nonce);
log(message.Encode());
```

#### Defined in

ikev2.ts:82
