Path: blob/main/src/vs/platform/encryption/common/encryptionService.ts
3294 views
/*---------------------------------------------------------------------------------------------1* Copyright (c) Microsoft Corporation. All rights reserved.2* Licensed under the MIT License. See License.txt in the project root for license information.3*--------------------------------------------------------------------------------------------*/45import { createDecorator } from '../../instantiation/common/instantiation.js';67export const IEncryptionService = createDecorator<IEncryptionService>('encryptionService');8export interface IEncryptionService extends ICommonEncryptionService {9setUsePlainTextEncryption(): Promise<void>;10getKeyStorageProvider(): Promise<KnownStorageProvider>;11}1213export const IEncryptionMainService = createDecorator<IEncryptionMainService>('encryptionMainService');14export interface IEncryptionMainService extends IEncryptionService { }1516export interface ICommonEncryptionService {1718readonly _serviceBrand: undefined;1920encrypt(value: string): Promise<string>;2122decrypt(value: string): Promise<string>;2324isEncryptionAvailable(): Promise<boolean>;25}2627// The values provided to the `password-store` command line switch.28// Notice that they are not the same as the values returned by29// `getSelectedStorageBackend` in the `safeStorage` API.30export const enum PasswordStoreCLIOption {31kwallet = 'kwallet',32kwallet5 = 'kwallet5',33gnomeLibsecret = 'gnome-libsecret',34basic = 'basic'35}3637// The values returned by `getSelectedStorageBackend` in the `safeStorage` API.38export const enum KnownStorageProvider {39unknown = 'unknown',40basicText = 'basic_text',4142// Linux43gnomeAny = 'gnome_any',44gnomeLibsecret = 'gnome_libsecret',45gnomeKeyring = 'gnome_keyring',46kwallet = 'kwallet',47kwallet5 = 'kwallet5',48kwallet6 = 'kwallet6',4950// The rest of these are not returned by `getSelectedStorageBackend`51// but these were added for platform completeness.5253// Windows54dplib = 'dpapi',5556// macOS57keychainAccess = 'keychain_access',58}5960export function isKwallet(backend: string): boolean {61return backend === KnownStorageProvider.kwallet62|| backend === KnownStorageProvider.kwallet563|| backend === KnownStorageProvider.kwallet6;64}6566export function isGnome(backend: string): boolean {67return backend === KnownStorageProvider.gnomeAny68|| backend === KnownStorageProvider.gnomeLibsecret69|| backend === KnownStorageProvider.gnomeKeyring;70}717273