# Security Overview

> The security model of a WPF desktop app with TX Text Control: in-process engine, document protection, PDF encryption, signatures and your app's own duties.

- **Product:** TX Text Control .NET for WPF
- **Section:** Documentation
- **Kind:** Topic
- **Path:** TX Text Control .NET for WPF > Security > Security Overview
- **1391 words**
- **Web URL:** https://docs.textcontrol.com/tx-text-control-dotnet-wpf/security/overview/
- **LLMs URL:** https://docs.textcontrol.com/tx-text-control-dotnet-wpf/security/overview/llms.txt
- **LLMs-Full URL:** https://docs.textcontrol.com/tx-text-control-dotnet-wpf/security/overview/llms-full.txt

---

Who can read a document, who can change it and who can sign it? In a WPF application with TX Text Control, the answers start on the desktop: the editor, the engine and every document it opens live on the computer of the person using the application. TX Text Control contributes protections that travel inside the documents, and your application contributes identity, passwords and certificates. For architects, developers and reviewers, the sections below lay out this division before the pages that follow go into each part.

### Where Documents Are Processed

TX Text Control .NET for WPF has no service or server component. Everything runs in the process of your application:

- **`TextControl`**, the editor in your window, and **`ServerTextControl`** and **`MailMerge`**, which process documents without a user interface, are .NET classes that your application creates. [Product Architecture](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/overview/architecture/llms-full.txt) shows how they fit together.
- **The document engine**, .NET assemblies and native Windows libraries, is installed together with your application and does the loading, formatting, rendering, printing and saving.
- **The license** is compiled into one of your assemblies. The people who run your application need no serial number, no license file and no activation, as [Application Licensing](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/installation/licensing/application/llms-full.txt) explains.

Documents stay in memory until your code or the user saves them. Two features that involve other computers depend on your code:

- **Trusted timestamps.** A [DigitalSignature](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/digitalsignature/llms-full.txt) with the URL of a time server gets a timestamp from that server while the PDF is saved. [Timestamp Configuration](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/digital-signatures/timestamps/llms-full.txt) covers the choices.
- **Hypertext links.** The `TextControl` doesn't open a clicked link by itself. Your handler of the [HypertextLinkClicked](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-wpf/textcontrol/hypertextlinkclicked-event/llms-full.txt) event decides, as [Decide What a Link Opens](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/security/untrusted-documents/#decide-what-a-link-opens) shows.

### The Desktop as a Security Boundary

On a desktop, the user can reach what the application reaches: the documents it opens, the templates it merges, its installation folder and any file it reads at startup. Text Control makes this point in an article comparing server-side and client-side document generation: templates kept and processed on the client can be tampered with by users, and highly sensitive data is safer when documents are generated on a server. Decide early which files your application may install on users' computers and which it should fetch from a place that checks who is asking.

What leaves the computer as a document can still carry protection with it. The next section compares what TX Text Control offers.

### Protections of TX Text Control

| Mechanism | Protects against | Leaves open | Read |
|---|---|---|---|
| Document protection | Editing, formatting, copying and printing in the `TextControl`, outside the editable regions of the user | Reading: the content stays visible | [Document Protection and User Permissions](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/security/document-protection/llms-full.txt) |
| PDF user password | Opening the PDF without the password; the file is encrypted | Changes by those who know the password | [PDF Passwords and Permissions](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/security/pdf-passwords/llms-full.txt) |
| PDF permissions | Printing, copying or editing in PDF readers that respect them | Readers that ignore them | [PDF Passwords and Permissions](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/security/pdf-passwords/llms-full.txt) |
| Digital signature | Undetected changes to a PDF; it identifies the signer | Reading the content | [Certificate and Private Key Handling](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/security/certificates/llms-full.txt) |
| Load settings and events | Unwanted imports and link targets | Harmful content inside supported formats | [Handling Untrusted Documents](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/security/untrusted-documents/llms-full.txt) |

A form can be protected while it's filled in and then saved as a signed and encrypted PDF: the mechanisms add up.

### Responsibilities of Your Application

- **Identifying the user.** Editable regions belong to the names in [UserNames](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-wpf/textcontrol/usernames-property/llms-full.txt). TX Text Control compares names and doesn't check them, so your application sets them after its own sign-in.
- **Handling passwords.** The passwords for PDF documents and protected documents come from your code, which also asks the user when a document needs one.
- **Holding certificates.** Your code passes the certificate that signs; where its private key is kept is your design.
- **Enforcing PDF permissions in the editor.** The `TextControl` doesn't apply the permissions of a PDF it opens; your application does, as [Respect the Permissions of a PDF](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/security/pdf-passwords/#respect-the-permissions-of-a-pdf) shows.

Under the license agreement, the licensee is responsible for determining whether its application and its use of TX Text Control are subject to security, privacy or other regulatory requirements.

### Packages, Licenses and Components

- **Where packages come from.** `TXTextControl.TextControl.WPF.SDK` is restored from Text Control Offline Packages, which the setup installs, or from the Text Control Private NuGet Feed, which requires your email address and an API token. [Configuring Package Sources](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/installation/nuget/sources/llms-full.txt) covers both.
- **What stays out of your installer.** Serial numbers, the license file *txtextcontrol.wpf.license* and a *nuget.config* with your API token must not be given to users, as the license agreement states. [Secure Application Deployment](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/security/deployment/llms-full.txt) turns this into a checklist.
- **What the packages contain.** Signed SBOMs (software bills of materials) are available for the TX Text Control NuGet packages of version 34.0 and later, among them `TXTextControl.TextControl.WPF.SDK`. [Check the Components You Ship](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/security/deployment/#check-the-components-you-ship) describes them.

### Next Steps

- [Document Protection and User Permissions](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/security/document-protection/llms-full.txt): the limits of protected documents and how to set user names.
- [Handling Untrusted Documents](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/security/untrusted-documents/llms-full.txt): accepted formats, load errors and links.
- [PDF Passwords and Permissions](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/security/pdf-passwords/llms-full.txt): encryption, permissions and checking the output.
- [Secure Application Deployment](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/security/deployment/llms-full.txt): the checklist before a release.

---

## Nearby

- **Previous:** [Security](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/security/llms-full.txt)
- **Next:** [Document Protection and User Permissions](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/security/document-protection/llms-full.txt)
