# CommunicationEncryptionKey and AdminEncryptionKey

## Overview

The QLM License Server is an ASP.NET web service that your application communicates with in order to activate a license, deactivate a license, validate a license, etc.

As a license Administrator, you also communicate with the QLM License Server in order to manage license keys, create new keys, revoke keys, etc.

Since the License Server is configured to allow anyone to connect to it (Anonymous Authentication), the web service methods that the QLM License Server exposes are secured by an encryption mechanism that encrypts the data of the web methods in order to prevent hackers from just calling the exposed web service methods. Therefore, the only way to communicate with the QLM License Server is via the QlmLicense object which encrypts the data before sending it to the server.

The QLM License Server API is divided into two groups: the **QLM Application API** which is the API you typically use in your application and the **QLM Management API** which is the API you would call from your own server.

## Communication Encryption Key

The QLM Application API is protected with an encryption key called CommunicationEncryptionKey. Before calling any QLM Application API, you must set the QlmLicense.CommunicationEncryptionKey property. If you are using the QLM License Wizard or are initializing the QlmLicense object from the XML settings file generated from the Protect Your Application wizard, the CommunicationEnryptionKey is stored in the XML settings file (encrypted).

## Admin Encryption Key

The QLM Management API is protected with an encryption key called AdminEncryptionKey. Before calling any QLM Management API, you must set the QlmLicense.AdminEncryptionKeyproperty. ***You should never call the QLM Management API from within your application because doing so requires that your application sets the AdminEncryption in your code.***&#x20;


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.soraco.co/docs/fundamental-concepts/communicationencryptionkey-and-adminencryptionkey.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
