PacificaSignatureProvider.ts 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. /**
  2. * Pacifica签名提供者实现
  3. * 封装Pacifica平台的Ed25519签名逻辑
  4. */
  5. import { ISignatureProvider } from '../interfaces/ISignatureProvider'
  6. import { PacificaSignatureAdapter } from '../../core/signature-adapters/pacifica'
  7. import { SignatureResult, PacificaSignData } from '../../shared/credential-types'
  8. export class PacificaSignatureProvider implements ISignatureProvider {
  9. private _adapter: PacificaSignatureAdapter
  10. constructor() {
  11. this._adapter = new PacificaSignatureAdapter()
  12. }
  13. get platformId(): string {
  14. return this._adapter.platformId
  15. }
  16. get algorithm(): string {
  17. return this._adapter.algorithm
  18. }
  19. async sign(data: PacificaSignData, credentials: any): Promise<SignatureResult> {
  20. return await this._adapter.sign(data, credentials)
  21. }
  22. async verify(signature: string, data: PacificaSignData, publicKey: string): Promise<boolean> {
  23. if (!this._adapter.verify) {
  24. throw new Error('Verification not supported by this provider')
  25. }
  26. return await this._adapter.verify(signature, data, publicKey)
  27. }
  28. derivePublicKey(privateKey: string): string {
  29. return this._adapter.derivePublicKey(privateKey)
  30. }
  31. getInfo() {
  32. const adapterInfo = this._adapter.getInfo()
  33. return {
  34. platformId: this.platformId,
  35. algorithm: this.algorithm,
  36. supportedOperations: adapterInfo.supportedOrderTypes,
  37. performance: {
  38. maxSigningTime: adapterInfo.maxSignatureTime,
  39. },
  40. }
  41. }
  42. }