
SRO PKCS11 – SSH Agent CNG एक संप्रभु, अल्ट्रा-लाइटवेट और शून्य-निर्भरता वाला विंडोज एजेंट है जो PKCS#11, SSH-एजेंट, Pageant और CNG/स्मार्टकार्ड को एक मजबूत बाइनरी में एकीकृत करता है। मांग वाले वातावरण के लिए डिज़ाइन किया गया, यह देशी हार्डवेयर क्रिप्टोग्राफी, सेवा/यूज़रलैंड आइसोलेशन और स्मार्टकार्ड का पूर्ण समर्थन प्रदान करता है।
संप्रभु एकीकरण PKCS#11 + SSH-agent + Pageant + CNG/Smartcard
एक एकल Windows निष्पादन योग्य जो चार पारंपरिक रूप से अलग कार्यों को एकीकृत करता है:
संप्रभु. CRT पर कोई निर्भरता नहीं। सभी मेमोरी संचालन RtlCopyMemory, RtlZeroMemory, RtlEqualMemory (FreeCRT.h) के माध्यम से होते हैं। हर जगह यूनिकोड (नेटिव Win32)। कोई malloc, memcpy, strlen, printf नहीं।
सुरक्षित. निजी कुंजियाँ कभी निर्यात नहीं की जातीं। कोई PIN प्रेषित नहीं होता। CNG/KSP मूल Windows PIN UI का प्रबंधन करता है। सुरक्षित पाइपों के माध्यम से सेवा ↔ उपयोगकर्ता क्षेत्र का सख्त पृथक्करण।
न्यूनतम. एक एकल बाइनरी। कोई बाहरी DLL नहीं। कोई रजिस्ट्री ब्लोट नहीं। सरल स्थापना (regsvr32 या -install).
बहुमुखी. एक ही प्रक्रिया में PKCS#11, SSH-agent, Pageant, और WSL2 का एक साथ समर्थन।
┌──────────────────────────────────────────────────────────────┐ │ Clients (Git, VS, WSL, OpenSSH, PuTTY, Firefox) │ └────────────────────────┬─────────────────────────────────────┘ │ ┌───────────────┼───────────────┬─────────────────┐ │ │ │ │ SSH-agent Pageant (WM_COPYDATA) PKCS#11 WSL2 (TCP) │ │ │ │ v v v v ┌──────────────────────────────────────────────────────────────┐ │ Service Stub (session 0, SYSTEM) │ │ - Accepte connexions sur \.\pipe\openssh-ssh-agent │ │ - Crée pipe interne par client (GUID unique) │ │ - Lance helper userland avec token interactif │ │ - Forwarde messages sans manipuler de secrets │ └────────────────────────┬─────────────────────────────────────┘ │ lancé par le service v ┌──────────────────────────────────────────────────────────────┐ │ Helper Userland (session interactive) │ │ - Connecte au pipe interne │ │ - Décode protocole SSH-agent/Pageant │ │ - Invoque CNG/KSP pour signature │ │ - UI PIN native Windows (pas de relay) │ │ - Renvoie signature au service │ │ - Fenêtre Pageant cachée pour WM_COPYDATA │ │ - Listener TCP 127.0.0.1:10022 pour WSL2 │ │ - Tray icon avec menu contextuel │ └────────────────────────┬─────────────────────────────────────┘ │ v ┌──────────────────────────────────────────────────────────────┐ │ CNG/KSP Backend │ │ - NCryptSignHash avec PKCS#1/PSS padding │ │ - Enumération certificats Windows Store │ │ - Filtrage SmartCardOnly / AllowedKSP │ │ - Support RSA + ECDSA (P-256, P-384, P-521) │ │ - Support EdDSA (Ed25519, Ed448) │ │ - Support Brainpool (P256r1, P384r1, P512r1) │ │ - Cache clés + providers (4h timeout) │ └──────────────────────────────────────────────────────────────┘
---
## निष्पादन मोड
### 1. PKCS#11 मोड (स्वचालित)
द्वारा लोड किया गया:
- `ssh -I ssh-agent.exe user@host`
- `Firefox (सुरक्षा उपकरण → PKCS#11 मॉड्यूल लोड करें)`
- `pkcs11-tool --module ssh-agent.exe --list-objects`
मानक PKCS#11 निर्यात को उजागर करता है:
- `C_Initialize`, `C_Finalize`, `C_GetInfo`
- `C_GetSlotList`, `C_GetSlotInfo`, `C_GetTokenInfo`
- `C_GetMechanismList`, `C_GetMechanismInfo`
- `C_OpenSession`, `C_CloseSession`, `C_Login`, `C_Logout`
- `C_FindObjectsInit`, `C_FindObjects`, `C_FindObjectsFinal`
- `C_GetAttributeValue`
- `C_SignInit`, `C_Sign`
- `C_VerifyInit`, `C_Verify`
- `C_DecryptInit`, `C_Decrypt`
- `C_GenerateRandom`, `C_SeedRandom`
**समर्थित तंत्र (कुल 14):**
- `CKM_RSA_PKCS` (पैडिंग के साथ raw)
- `CKM_RSA_X_509` (पैडिंग के बिना raw)
- `CKM_SHA1_RSA_PKCS` (legacy ssh-rsa)
- `CKM_SHA256_RSA_PKCS` (rsa-sha2-256)
- `CKM_SHA384_RSA_PKCS` (rsa-sha2-384)
- `CKM_SHA512_RSA_PKCS` (rsa-sha2-512)
- `CKM_SHA256_RSA_PKCS_PSS` (RSA-PSS SHA-256)
- `CKM_SHA384_RSA_PKCS_PSS` (RSA-PSS SHA-384)
- `CKM_SHA512_RSA_PKCS_PSS` (RSA-PSS SHA-512)
- `CKM_ECDSA` (raw)
- `CKM_ECDSA_SHA1` (legacy)
- `CKM_ECDSA_SHA256` (ecdsa-sha2-nistp256/384/521)
- `CKM_ECDSA_SHA384`
- `CKM_ECDSA_SHA512`
### 2. एजेंट यूज़रलैंड मोड (स्टैंडअलोन)```bash
ssh-agent.exe
\\.\pipe\openssh-ssh-agent बनाता हैसंगत है :
set SSH_AUTH_SOCK=\\.\pipe\openssh-ssh-agent)ssh-agent.exe -install net start SROSSHAgentCNG
- सत्र 0 (SYSTEM) में चलता है
- वैश्विक पाइप पर कनेक्शन स्वीकार करता है
- प्रति क्लाइंट आंतरिक पाइप बनाता है (SID द्वारा सुरक्षित)
- `CreateProcessAsUserW` के साथ userland हेल्पर लॉन्च करता है
- संदेशों को सीक्रेट्स को छुए बिना अग्रेषित करता है
- 4h टाइमआउट के साथ हेल्पर्स का पूल (स्वचालित पुन: उपयोग)
- पूल भरा होने पर LRU निष्कासन
**लाभ :**
- उपयोगकर्ता सत्र में UI PIN (सत्र 0 में नहीं)
- कठोर वातावरण के साथ संगत
- सेवा ↔ क्रिप्टो के बीच सख्त पृथक्करण
- बहु-उपयोगकर्ता मल्टीप्लेक्सिंग
### 4. सहायक क्रिप्टो userland मोड```bash
ssh-agent.exe -useragent -pipe \\.\pipe\ssh-ksp-helper-{GUID}
सेवा द्वारा स्वचालित रूप से लॉन्च किया गया:
NCryptSignHash को आमंत्रित करता है (मूल PIN UI)regsvr32 ssh-agent.exe
कुंजियाँ बनाएँ :
- `HKLM\SOFTWARE\San@sro Inc\PKCS11-SSH-Agent`
- `HKCU\SOFTWARE\San@sro Inc\PKCS11-SSH-Agent`
- `HKCU\SOFTWARE\Mozilla\Firefox\PKCS11Modules\SROSSHAgent`
### विंडोज सेवा स्थापित करें```bash
ssh-agent.exe -install
net start SROSSHAgentCNG
इसे ~/.bashrc या ~/.zshrc में जोड़ें :```bash
export SSH_AUTH_SOCK="$HOME/.ssh/agent.sock"
if ! pgrep -u $USER socat > /dev/null || [ ! -S "$SSH_AUTH_SOCK" ]; then # Nettoyage préventif rm -f "$SSH_AUTH_SOCK"
# Lancement du bridge en arrière-plan
# Note: Utiliser 127.0.0.1 si mode 'mirrored'
# sinon l'IP du host (ex: 192.168.99.x)
socat UNIX-LISTEN:"$SSH_AUTH_SOCK",fork,unlink-early \
TCP:127.0.0.1:10022 > /dev/null 2>&1 &
fi
### अनइंस्टॉल करना```bash
regsvr32 /u ssh-agent.exe
ssh-agent.exe -remove
कुंजी : HKLM\SOFTWARE\San@sro Inc\pkcs11-cng या HKCU\SOFTWARE\San@sro Inc\pkcs11-cng
उदाहरण :``` StoreName = "MY" StoreLocation = "CurrentUser" SmartCardOnly = 1 AllowedKSP = "Microsoft Smart Card Key Storage Provider;YubiKey Smart Card Key Storage Provider" RelaxCheckMode = 0 LogLevel = 2
---
## समर्थित प्रोटोकॉल
### SSH-Agent
#### SSH2_AGENTC_REQUEST_IDENTITIES (11)
अनुरोध :```
[type=11]
उत्तर :``` [type=12][count][key_blob_1][comment_1][key_blob_2][comment_2]...
**key_blob RSA :**```
[len]["ssh-rsa"][len][exponent][len][modulus]
key_blob ECDSA :``` [len]["ecdsa-sha2-nistp256"][len]["nistp256"][len][point]
**key_blob EdDSA :**```
[len]["ssh-ed25519"][len][point]
अनुरोध :``` [type=13][len][key_blob][len][data][flags]
**झंडे :**
- `0x00` : ssh-rsa (SHA-1, पुराना)
- `0x02` : rsa-sha2-256
- `0x04` : rsa-sha2-512
उत्तर :```
[type=14][len][signature_blob]
signature_blob :``` [len]["rsa-sha2-256"][len][signature_data]
### Pageant
`WM_COPYDATA` के माध्यम से संगत PuTTY:
1. क्लाइंट `CreateFileMapping` के माध्यम से एक साझा मेमोरी बनाता है
2. SSH-agent अनुरोध को मानक प्रारूप में लिखता है
3. "Pageant" विंडो को `WM_COPYDATA` भेजता है
4. साझा मेमोरी से उत्तर पढ़ता है
साझा मेमोरी का प्रारूप:```
[uint32 length][SSH-agent payload]
TCP श्रोता 127.0.0.1:10022 पर :
handle_ssh_message() की ओर फॉरवर्डिंगWindows पूरी तरह से PIN का प्रबंधन करता है CNG/KSP और स्मार्टकार्ड के मिनीड्राइवर के माध्यम से।
मॉड्यूल कभी भी PIN को संग्रहीत नहीं करता और इसे कभी भी आते-जाते नहीं देखता:
PIN कैश: Windows/मिनीड्राइवर द्वारा स्वचालित रूप से प्रबंधित (एप्लिकेशन कैश की आवश्यकता नहीं)।
NCrypt फ़्लैग:
NCRYPT_SILENT_FLAG (कोई UI नहीं)SILENT_FLAG विफल होता है: UI के साथ स्वचालित पुनः प्रयासकुंजी कैश (टाइमआउट 4 घंटे) :
CNG_KEY_INFO (हैंडल, प्रदाता, कंटेनर) संग्रहीत करता हैप्रदाता कैश (टाइमआउट 4 घंटे) :
NCRYPT_PROV_HANDLE संग्रहीत करता हैNCryptOpenStorageProvider के बार-बार कॉल से बचाता हैcng_store_enum_certificates(cfg, callback, user_data);
फ़िल्टर :
- उपलब्ध निजी कुंजियाँ
- KSP अधिकृत (यदि `SmartCardOnly`)
- निर्यात-अयोग्य कुंजियाँ (यदि `SmartCardOnly`)
### हस्ताक्षर```c
cng_sign_hash(key_info, mechanism, hash, hash_len, signature, &sig_len);
मकैनिज़्म → पैडिंग :
CKM_RSA_PKCS → BCRYPT_PAD_PKCS1CKM_SHA256_RSA_PKCS → BCRYPT_PAD_PKCS1 + BCRYPT_SHA256_ALGORITHMCKM_SHA256_RSA_PKCS_PSS → BCRYPT_PAD_PSS + salt size = hash sizeCKM_ECDSA_SHA256 → कोई पैडिंग नहीं (कच्चा हस्ताक्षर)RSA :```c cng_cert_get_public_key(cert, modulus, &mod_len, exponent, &exp_len);
**ECDSA :**```c
cng_cert_get_ec_params(cert, params, ¶ms_len); // OID courbe
cng_cert_get_ec_point(cert, point, &point_len); // Point public
समर्थित वक्र :
nistp256 (OID: 1.2.840.10045.3.1.7), nistp384 (1.3.132.0.34), nistp521 (1.3.132.0.35)brainpoolP256r1, brainpoolP384r1, brainpoolP512r1ed25519 (OID: 1.3.101.112), ed448 (1.3.101.113)सक्रिय निर्देशिका प्रमाणीकरण समर्थन :```c cng_extract_upn_from_certificate(cert, upn, upn_size);
`szOID_NT_PRINCIPAL_NAME` एक्सटेंशन निकालें और इसे SSH कमेंटरी के रूप में उपयोग करें।
---
## सुरक्षा
### निजी कुंजियाँ
**कभी निर्यात नहीं की जातीं।** सभी क्रिप्टोग्राफिक ऑपरेशन CNG/KSP को सौंपे जाते हैं। `NCryptSignHash` को कुंजी हैंडल से बुलाया जाता है, कभी भी कुंजी से नहीं।
### PIN
**पूरी तरह से Windows (CNG/KSP/minidriver) द्वारा प्रबंधित।**
मॉड्यूल **PIN को कभी संग्रहीत नहीं करता** और **इसे ट्रांज़िट में कभी नहीं देखता**:
- PIN कभी भी PKCS#11 मॉड्यूल को नहीं भेजा जाता
- PIN UI स्मार्टकार्ड के मिनीड्राइवर द्वारा प्रदर्शित किया जाता है
- PIN कैश Windows/minidriver द्वारा स्वचालित रूप से प्रबंधित किया जाता है
- सेवा मोड में: userland helper (इंटरैक्टिव सत्र) PIN UI प्राप्त करता है
**सेवा मोड (शुद्ध passthrough):**
स्टब सेवा केवल पारदर्शी फ़ॉरवर्डिंग करती है:
- क्लाइंट → सेवा → Helper (SSH-agent संदेश फ़ॉर्वर्ड)
- Helper → सेवा → क्लाइंट (SSH-agent प्रतिक्रिया फ़ॉर्वर्ड)
- सेवा कभी भी सामग्री को पार्स नहीं करती
- सेवा कभी नहीं देखती: PIN, हैश, हस्ताक्षर, कुंजी
### सेवा ↔ userland पृथक्करण
**सुरक्षित पाइप।** प्रत्येक आंतरिक पाइप:
- एक अद्वितीय GUID के साथ उत्पन्न होता है
- `FILE_FLAG_FIRST_PIPE_INSTANCE` के साथ बनाया जाता है
- DACL केवल वर्तमान उपयोगकर्ता को अनुमति देता है
userland helper इंटरैक्टिव सत्र में CNG/KSP को आह्वान करता है → मूल PIN UI।
### ऑडिट
**Unicode लॉग।** सभी घटनाओं को `utils_log()` के माध्यम से लॉग किया जाता है:
- क्लाइंट कनेक्शन
- कुंजी गणना
- हस्ताक्षर अनुरोध
- CNG/KSP त्रुटियाँ
- एजेंट संघर्ष
**स्थान:** OutputDebugString + वैकल्पिक फ़ाइल (`utils_set_log_file()`)।
---
## अनुकूलता
| वातावरण | मोड | स्थिति |
|------------------------------|------------------------|--------|
| OpenSSH for Windows | स्टैंडअलोन / सेवा | ✓ |
| Git for Windows | स्टैंडअलोन / सेवा | ✓ |
| Visual Studio | स्टैंडअलोन / सेवा | ✓ |
| WSL (npiperelay) | स्टैंडअलोन / सेवा | ✓ |
| WSL2 (TCP) | स्टैंडअलोन / सेवा | ✓ |
| PuTTY / plink / pscp | Pageant | ✓ |
| Firefox | PKCS#11 | ✓ |
| OpenSC / pkcs11-tool | PKCS#11 | ✓ |
| ssh -I (OpenSSH) | PKCS#11 | ✓ |
| कठोर वातावरण | सेवा स्टब | ✓ |
| SmartCard GIDS | CNG/KSP | ✓ |
| SmartCard PIV | CNG/KSP | ✓ |
| YubiKey | CNG/KSP | ✓ |
| Nitrokey | CNG/KSP | ✓ |
---
## सार्वजनिक कुंजी निर्यात
### CLI कमांड```bash
ssh-agent.exe -exportkey [output.pub]
CryptUIDlgSelectCertificateFromStore खोलेंOpenSSH :``` ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC5... [email protected]
**RFC4716 :**```
---- BEGIN SSH2 PUBLIC KEY ----
Comment: "[email protected]"
AAAAB3NzaC1yc2EAAAADAQABAAABAQC5ABCDEF...
---- END SSH2 PUBLIC KEY ----
टिप्पणी के लिए प्राथमिकता क्रम:
TRAY_MODE_USERLAND (हरा) :
TRAY_MODE_SERVICE (नीला) :
गतिशील टूलटिप :``` SRO SSH-Agent (Userland) 12 keys, 3 clients
अद्यतन :
- हर 5 सेकंड में
- प्रत्येक क्लाइंट कनेक्शन/डिस्कनेक्शन पर
- कैश फ्लश पर
### संदर्भ मेनू
**Show Keys...** : सभी उपलब्ध कुंजियों को सूचीबद्ध करने वाला संवाद```
═══════════════════════════════════════════════
SRO SSH-Agent - Available Keys
═══════════════════════════════════════════════
[01] RSA-2048 - [email protected]
[02] ECDSA-nistp256 - [email protected]
[03] EdDSA-Ed25519 - [email protected]
═══════════════════════════════════════════════
Total: 3 keys
💡 Tip: Use 'Export Public Key' to copy SSH format
Export Public Key... : चयन संवाद खोलता है और क्लिपबोर्ड पर कॉपी करता है
Flush & Reload Keys : कुंजी/प्रदाता कैश साफ़ करता है और पुनः लोड करता है
Settings... : वर्तमान कॉन्फ़िगरेशन दिखाता है``` Current Configuration:
Store Name: MY Store Location: CurrentUser SmartCard Only: Yes Relax Key Usage Check Mode: No Log Level: 2
Edit registry to change: HKLM\SOFTWARE\San@sro Inc\pkcs11-cng
**Exit** : स्वच्छ समाप्ति (संकेत `g_shutdown_event`)
### समर्पित UI थ्रेड
- संदेश पंप के साथ छिपी हुई विंडो
- `GetMessage/DispatchMessage` loop
- सिंक्रोनाइज़ेशन के लिए इवेंट `g_tray_ready_event`
- स्वचालित सफ़ाई (`Shell_NotifyIcon(NIM_DELETE)`)
---
## WSL2 समर्थन
### आर्किटेक्चर```
┌─────────────────────────────────────────────┐
│ WSL2 (Linux) │
│ - socat UNIX-LISTEN → TCP:127.0.0.1:10022 │
└─────────────────────────────────────────────┘
│
│ TCP
v
┌─────────────────────────────────────────────┐
│ Windows Host │
│ - ssh-agent.exe (listener 127.0.0.1:10022)│
│ - CNG/KSP → Smartcard │
└─────────────────────────────────────────────┘
सुरक्षा:
g_wsl2_clients[16]CRITICAL_SECTIONमिरर किया गया मोड (Windows 11 22H2+):```bash
socat UNIX-LISTEN:"$SSH_AUTH_SOCK",fork,unlink-early
TCP:127.0.0.1:10022 > /dev/null 2>&1 &
**क्लासिक NAT मोड :**```bash
# Récupérer l'IP du host Windows
HOST_IP=$(ip route | grep default | awk '{print $3}')
socat UNIX-LISTEN:"$SSH_AUTH_SOCK",fork,unlink-early \
TCP:$HOST_IP:10022 > /dev/null 2>&1 &
BOOL wsl2_network_start(WORD port, HANDLE shutdown_event); void wsl2_network_stop(void); BOOL wsl2_network_is_running(void); DWORD wsl2_network_get_client_count(void);
---
## संघर्षों का पता लगाना
### पहचाने गए एजेंट```c
typedef enum {
AGENT_NONE = 0,
AGENT_OPENSSH_NATIVE, // OpenSSH for Windows (ssh-agent.exe)
AGENT_PAGEANT, // PuTTY Pageant (fenêtre "Pageant")
AGENT_SRO_USERLAND, // SRO SSH-Agent userland
AGENT_SRO_SERVICE, // SRO SSH-Agent service Windows
AGENT_UNKNOWN // Agent inconnu détecté
} AGENT_TYPE;
OpenSSH नेटिव :
ssh-agent.exe की खोज CreateToolhelp32Snapshot के माध्यम से करता हैPageant :
FindWindowW(L"Pageant", L"Pageant") की खोजSRO Userland :
CreateFileW(\\.\pipe\openssh-ssh-agent)SRO Service :
OpenServiceW(L"SROSSHAgentCNG")SERVICE_RUNNINGस्टार्टअप पर दिखाया जाता है यदि कोई विरोध पाया जाता है :``` ⚠ SSH Agent Conflict Detected
The following SSH agents are already running: • OpenSSH Native (ssh-agent.exe) • PuTTY Pageant
Running multiple agents may cause conflicts.
Do you want to continue anyway?
[Continue] [Stop conflicting agents] [Exit]
**कार्रवाइयाँ :**
- **Continue** : फिर भी लॉन्च करें (संघर्ष का जोखिम)
- **Stop** : एजेंटों को रोकने का प्रयास करें (यदि संभव हो)
- **Exit** : लॉन्च किए बिना बाहर निकलें
### सार्वजनिक फ़ंक्शन```c
BOOL detect_running_agents(AGENT_TYPE* detected_agents, DWORD* count);
BOOL show_agent_conflict_dialog(const AGENT_TYPE* agents, DWORD count);
const WCHAR* agent_type_to_string(AGENT_TYPE agent);
कोई नहीं। बाइनरी स्व-निहित है और केवल सिस्टम DLL लोड करता है:
kernel32.dll (toujours présent)advapi32.dll (registry, SCM)crypt32.dll (certificats)ncrypt.dll (CNG)bcrypt.dll (hashing)wtsapi32.dll (sessions)shell32.dll (tray icon)ws2_32.dll (Winsock)cryptui.dll (dialogue sélection certificat)कोई CRT नहीं। सभी मेमोरी ऑपरेशन RtlCopyMemory, RtlZeroMemory, RtlEqualMemory के माध्यम से।
SSH2_AGENTC_*_ENCRYPT नहीं)।SSH2_AGENTC_ADD_ID_CONSTRAINED का कोई कार्यान्वयन नहीं।MAX_HELPERS के माध्यम से कॉन्फ़िगरेबल)।RelaxCheckMode = 1 सक्षम करें।योगदान का स्वागत है! कृपया:
यह सॉफ्टवेयर San@sro inc. की संपत्ति है।
यह एक विश्वास लाइसेंस मॉडल के तहत वितरित किया जाता है:
• व्यक्तिगत और शैक्षिक उपयोग: मुफ्त और प्रोत्साहित।
• व्यावसायिक/वाणिज्यिक उपयोग: तकनीकी शांति लाइसेंस की खरीद आवश्यक है।
बिना वैध लाइसेंस के उद्यम उपयोग कॉपीराइट उल्लंघन है, भले ही जानबूझकर कोई तकनीकी लॉक न हो।
पुनर्वितरण की अनुमति है बशर्ते: • बाइनरी बरकरार रहे, • मूल Authenticode हस्ताक्षर संरक्षित हो।
यह सॉफ्टवेयर 'जैसा है' प्रदान किया जाता है, बिना किसी प्रकार की वारंटी के।
पूर्ण लाइसेंस (FR + EN), जिसमें परिभाषाएँ, पुनर्वितरण शर्तें, अवधि, समाप्ति और तकनीकी शांति लाइसेंस प्राप्त करने की प्रक्रियाएँ शामिल हैं, यहाँ उपलब्ध है:
व्यावसायिक लाइसेंस पूछताछ के लिए:
📧 [email protected]
SRO PKCS11 – SSH Agent CNG कोई संवेदनशील रहस्य नहीं संभालता:
PIN, निजी कुंजियाँ और क्रिप्टोग्राफ़िक संचालन पूरी तरह से Windows (CNG/KSP/minidriver) द्वारा प्रबंधित किए जाते हैं।
बग, असामान्य व्यवहार या संभावित कमज़ोरी की रिपोर्ट करने के लिए, एक जिम्मेदार प्रकटीकरण नीति यहाँ उपलब्ध है:
सुरक्षा संपर्क:
📧 [email protected]
SRO PKCS11 – SSH Agent CNG
संप्रभु। मजबूत। संचालनात्मक।
सब कुछ करने के लिए एक ही बाइनरी।
| मान | प्रकार | विवरण |
|---|
StoreName | REG_SZ | "MY", "Root", आदि. (डिफ़ॉल्ट: "MY") |
StoreLocation | REG_SZ | "CurrentUser" या "LocalMachine" |
Mode | REG_SZ | "All" या "SmartCard" |
SmartCardOnly | REG_DWORD | 1 = केवल स्मार्टकार्ड फ़िल्टर करें |
AllowedKSP | REG_SZ | अनुमत KSP की सूची (";" द्वारा अलग) |
RelaxCheckMode | REG_DWORD | 1 = EKU/KeyUsage/तिथियों का सत्यापन अक्षम करें (YubiKey PIV स्व-हस्ताक्षरित) |
LogLevel | REG_DWORD | 0=बंद, 1=त्रुटि, 2=जानकारी, 3=डीबग |