# core/predicates/ssh.predicate.ts

> 7 lines of code and 2 definitions.

Tree: Secrets
Language: typescript
Layer: infrastructure
Canonical: https://banes-lab.com/anatomy/secrets#file-secrets-core-predicates-ssh-predicate-ts
Source text: https://banes-lab.com/source/secrets/core/predicates/ssh.predicate.ts.txt

Listed in [core/predicates](https://banes-lab.com/api/source/secrets/core/predicates.md), after [core/predicates/key.predicate.ts](https://banes-lab.com/source/secrets/core/predicates/key.predicate.ts.md) and before [core/predicates/token.predicate.ts](https://banes-lab.com/source/secrets/core/predicates/token.predicate.ts.md).

## Definitions

- `hasKeyBody` (lexical_declaration, line 4)
- `[body = ""]` (lexical_declaration, line 5)

## Contained in

- [core/predicates](https://banes-lab.com/anatomy/secrets/folder-secrets-core-predicates.md)

## Source

```typescript
import { SSH_MIN_BODY, SSH_PREFIXES } from "#configuration/constants/detector.constants";
import { defineDetector } from "#core/registries/detector.registry";

const hasKeyBody = function hasKeyBody(value: string, prefix: string): boolean {
    const [body = ""] = value.slice(prefix.length).split(" ");
    return value.startsWith(prefix) && body.length >= SSH_MIN_BODY;
};

defineDetector({ detects: (value) => SSH_PREFIXES.some((prefix) => hasKeyBody(value, prefix)), kind: "ssh" });
```
