Make contract entities inits public (#137)
This commit is contained in:
Родитель
7e25576f3d
Коммит
bf710616c2
|
@ -12,4 +12,20 @@ public struct AccessTokenDescriptor: Codable, Equatable {
|
|||
public let configuration: String?
|
||||
public let resourceId: String?
|
||||
public let oboScope: String?
|
||||
|
||||
public init(id: String? = nil,
|
||||
encrypted: Bool? = nil,
|
||||
claims: [ClaimDescriptor]? = nil,
|
||||
required: Bool? = nil,
|
||||
configuration: String? = nil,
|
||||
resourceId: String? = nil,
|
||||
oboScope: String? = nil) {
|
||||
self.id = id
|
||||
self.encrypted = encrypted
|
||||
self.claims = claims
|
||||
self.required = required
|
||||
self.configuration = configuration
|
||||
self.resourceId = resourceId
|
||||
self.oboScope = oboScope
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,8 +4,20 @@
|
|||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
public struct AttestationsDescriptor: Codable, Equatable {
|
||||
|
||||
public let selfIssued: SelfIssuedClaimsDescriptor?
|
||||
public let presentations: [PresentationDescriptor]?
|
||||
public let idTokens: [IdTokenDescriptor]?
|
||||
public let accessTokens: [AccessTokenDescriptor]?
|
||||
|
||||
public init(selfIssued: SelfIssuedClaimsDescriptor? = nil,
|
||||
presentations: [PresentationDescriptor]? = nil,
|
||||
idTokens: [IdTokenDescriptor]? = nil,
|
||||
accessTokens: [AccessTokenDescriptor]? = nil) {
|
||||
|
||||
self.selfIssued = selfIssued
|
||||
self.presentations = presentations
|
||||
self.idTokens = idTokens
|
||||
self.accessTokens = accessTokens
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
public struct ClaimDescriptor: Codable, Equatable {
|
||||
|
||||
public let claim: String
|
||||
public let claimRequired: Bool?
|
||||
public let indexed: Bool?
|
||||
|
@ -13,4 +14,12 @@ public struct ClaimDescriptor: Codable, Equatable {
|
|||
case claimRequired = "required"
|
||||
case indexed
|
||||
}
|
||||
|
||||
public init(claim: String,
|
||||
claimRequired: Bool? = nil,
|
||||
indexed: Bool? = nil) {
|
||||
self.claim = claim
|
||||
self.claimRequired = claimRequired
|
||||
self.indexed = indexed
|
||||
}
|
||||
}
|
||||
|
|
|
@ -8,7 +8,7 @@ public struct ClaimDisplayDescriptor: Codable, Equatable {
|
|||
public let type: String
|
||||
public let label: String
|
||||
|
||||
public init(type:String, label:String) {
|
||||
public init(type: String, label: String) {
|
||||
self.type = type
|
||||
self.label = label
|
||||
}
|
||||
|
|
|
@ -11,6 +11,14 @@ public struct Contract: Claims, Equatable {
|
|||
public let display: DisplayDescriptor
|
||||
public let input: ContractInputDescriptor
|
||||
|
||||
public init(id: String,
|
||||
display: DisplayDescriptor,
|
||||
input: ContractInputDescriptor) {
|
||||
self.id = id
|
||||
self.display = display
|
||||
self.input = input
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public typealias SignedContract = JwsToken<Contract>
|
||||
|
|
|
@ -10,4 +10,13 @@ public struct ContractInputDescriptor: Codable, Equatable {
|
|||
public let issuer: String
|
||||
public let attestations: AttestationsDescriptor?
|
||||
|
||||
public init(id: String? = nil,
|
||||
credentialIssuer: String,
|
||||
issuer: String,
|
||||
attestations: AttestationsDescriptor? = nil) {
|
||||
self.id = id
|
||||
self.credentialIssuer = credentialIssuer
|
||||
self.issuer = issuer
|
||||
self.attestations = attestations
|
||||
}
|
||||
}
|
||||
|
|
|
@ -21,4 +21,20 @@ public struct IdTokenDescriptor: Codable, Equatable {
|
|||
case redirectURI = "redirect_uri"
|
||||
case scope
|
||||
}
|
||||
|
||||
public init(encrypted: Bool? = nil,
|
||||
claims: [ClaimDescriptor],
|
||||
idTokenRequired: Bool? = nil,
|
||||
configuration: String,
|
||||
clientID: String,
|
||||
redirectURI: String? = nil,
|
||||
scope: String? = nil) {
|
||||
self.encrypted = encrypted
|
||||
self.claims = claims
|
||||
self.idTokenRequired = idTokenRequired
|
||||
self.configuration = configuration
|
||||
self.clientID = clientID
|
||||
self.redirectURI = redirectURI
|
||||
self.scope = scope
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,5 +4,10 @@
|
|||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
public struct IssuerDescriptor: Codable, Equatable {
|
||||
|
||||
public let iss: String?
|
||||
|
||||
public init(iss: String? = nil) {
|
||||
self.iss = iss
|
||||
}
|
||||
}
|
||||
|
|
|
@ -17,4 +17,18 @@ public struct PresentationDescriptor: Codable, Equatable {
|
|||
case presentationRequired = "required"
|
||||
case credentialType, issuers, contracts
|
||||
}
|
||||
|
||||
public init(encrypted: Bool? = nil,
|
||||
claims: [ClaimDescriptor],
|
||||
presentationRequired: Bool? = nil,
|
||||
credentialType: String,
|
||||
issuers: [IssuerDescriptor]? = nil,
|
||||
contracts: [String]? = nil) {
|
||||
self.encrypted = encrypted
|
||||
self.claims = claims
|
||||
self.presentationRequired = presentationRequired
|
||||
self.credentialType = credentialType
|
||||
self.issuers = issuers
|
||||
self.contracts = contracts
|
||||
}
|
||||
}
|
||||
|
|
|
@ -13,4 +13,12 @@ public struct SelfIssuedClaimsDescriptor: Codable, Equatable {
|
|||
case encrypted, claims
|
||||
case selfIssuedRequired = "required"
|
||||
}
|
||||
|
||||
public init(encrypted: Bool? = nil,
|
||||
claims: [ClaimDescriptor]? = nil,
|
||||
selfIssuedRequired: Bool? = nil) {
|
||||
self.encrypted = encrypted
|
||||
self.claims = claims
|
||||
self.selfIssuedRequired = selfIssuedRequired
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,11 +4,16 @@
|
|||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
public struct AllowedAlgorithms: Codable, Equatable {
|
||||
|
||||
public let algorithms: [String]?
|
||||
|
||||
enum CodingKeys: String, CodingKey {
|
||||
case algorithms = "alg"
|
||||
}
|
||||
|
||||
public init(algorithms: [String]? = nil) {
|
||||
self.algorithms = algorithms
|
||||
}
|
||||
}
|
||||
|
||||
public enum SupportedAlgorithms: String {
|
||||
|
|
|
@ -46,25 +46,25 @@ public struct PresentationRequestClaims: OIDCClaims, Equatable {
|
|||
case state, nonce, prompt, registration, iat, exp, scope, claims, jti
|
||||
}
|
||||
|
||||
init(jti: String?,
|
||||
clientID: String?,
|
||||
redirectURI: String?,
|
||||
responseMode: String?,
|
||||
responseType: String?,
|
||||
claims: RequestedClaims?,
|
||||
state: String?,
|
||||
nonce: String?,
|
||||
scope: String?,
|
||||
prompt: String?,
|
||||
registration: RegistrationClaims?,
|
||||
idTokenHint: IssuerIdToken? = nil,
|
||||
iat: Double?,
|
||||
exp: Double?) {
|
||||
public init(jti: String? = nil,
|
||||
clientID: String? = nil,
|
||||
redirectURI: String? = nil,
|
||||
responseType: String? = nil,
|
||||
responseMode: String? = nil,
|
||||
claims: RequestedClaims? = nil,
|
||||
state: String? = nil,
|
||||
nonce: String? = nil,
|
||||
scope: String? = nil,
|
||||
prompt: String? = nil,
|
||||
registration: RegistrationClaims? = nil,
|
||||
idTokenHint: IssuerIdToken? = nil,
|
||||
iat: Double? = nil,
|
||||
exp: Double? = nil) {
|
||||
self.jti = jti
|
||||
self.clientID = clientID
|
||||
self.redirectURI = redirectURI
|
||||
self.responseMode = responseMode
|
||||
self.responseType = responseType
|
||||
self.responseMode = responseMode
|
||||
self.claims = claims
|
||||
self.state = state
|
||||
self.nonce = nonce
|
||||
|
|
|
@ -32,4 +32,16 @@ public struct RegistrationClaims: Codable, Equatable {
|
|||
case subjectIdentifierTypesSupported = "subject_syntax_types_supported"
|
||||
case vpFormats = "vp_formats"
|
||||
}
|
||||
|
||||
public init(clientName: String? = nil,
|
||||
clientPurpose: String? = nil,
|
||||
logoURI: String? = nil,
|
||||
subjectIdentifierTypesSupported: [String]? = nil,
|
||||
vpFormats: SupportedVerifiablePresentationFormats? = nil) {
|
||||
self.clientName = clientName
|
||||
self.clientPurpose = clientPurpose
|
||||
self.logoURI = logoURI
|
||||
self.subjectIdentifierTypesSupported = subjectIdentifierTypesSupported
|
||||
self.vpFormats = vpFormats
|
||||
}
|
||||
}
|
||||
|
|
|
@ -16,4 +16,9 @@ public struct SupportedVerifiablePresentationFormats: Codable, Equatable {
|
|||
case jwtVP = "jwt_vp"
|
||||
case jwtVC = "jwt_vc"
|
||||
}
|
||||
|
||||
public init(jwtVP: AllowedAlgorithms? = nil, jwtVC: AllowedAlgorithms? = nil) {
|
||||
self.jwtVP = jwtVP
|
||||
self.jwtVC = jwtVC
|
||||
}
|
||||
}
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
|
||||
/// Describes the credentail type of the vc requested.
|
||||
public struct InputDescriptorSchema: Codable, Equatable {
|
||||
|
||||
|
||||
/// List of uris that describe the credential requested.
|
||||
public let uri: String?
|
||||
|
||||
|
@ -13,4 +13,7 @@ public struct InputDescriptorSchema: Codable, Equatable {
|
|||
case uri
|
||||
}
|
||||
|
||||
public init(uri: String? = nil) {
|
||||
self.uri = uri
|
||||
}
|
||||
}
|
||||
|
|
|
@ -13,4 +13,9 @@ public struct IssuanceMetadata: Codable, Equatable {
|
|||
case contract = "manifest"
|
||||
case issuerDid = "did"
|
||||
}
|
||||
|
||||
public init(contract: String? = nil, issuerDid: String? = nil) {
|
||||
self.contract = contract
|
||||
self.issuerDid = issuerDid
|
||||
}
|
||||
}
|
||||
|
|
|
@ -23,4 +23,12 @@ public struct PresentationDefinition: Codable, Equatable {
|
|||
case inputDescriptors = "input_descriptors"
|
||||
case id, issuance
|
||||
}
|
||||
|
||||
public init(id: String? = nil,
|
||||
inputDescriptors: [PresentationInputDescriptor]? = nil,
|
||||
issuance: [String]? = nil) {
|
||||
self.id = id
|
||||
self.inputDescriptors = inputDescriptors
|
||||
self.issuance = issuance
|
||||
}
|
||||
}
|
||||
|
|
|
@ -9,11 +9,15 @@
|
|||
* @see [Presentation Exchange Spec](https://identity.foundation/presentation-exchange/#input-descriptor-object)
|
||||
*/
|
||||
public struct PresentationExchangeConstraints: Codable, Equatable {
|
||||
|
||||
|
||||
/// A list of fields that must be adhered to to fulfill presentation request.
|
||||
public let fields: [PresentationExchangeField]?
|
||||
|
||||
enum CodingKeys: String, CodingKey {
|
||||
case fields
|
||||
}
|
||||
|
||||
public init(fields: [PresentationExchangeField]? = nil) {
|
||||
self.fields = fields
|
||||
}
|
||||
}
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
* @see [Presentation Exchange Spec](https://identity.foundation/presentation-exchange/#input-descriptor-object)
|
||||
*/
|
||||
public struct PresentationExchangeField: Codable, Equatable {
|
||||
|
||||
|
||||
/// An Array of JSON Path expressions that select a target value from the input.
|
||||
public let path: [String]?
|
||||
|
||||
|
@ -23,4 +23,12 @@ public struct PresentationExchangeField: Codable, Equatable {
|
|||
enum CodingKeys: String, CodingKey {
|
||||
case path, purpose, filter
|
||||
}
|
||||
|
||||
public init(path: [String]? = nil,
|
||||
purpose: String? = nil,
|
||||
filter: PresentationExchangeFilter? = nil) {
|
||||
self.path = path
|
||||
self.purpose = purpose
|
||||
self.filter = filter
|
||||
}
|
||||
}
|
||||
|
|
|
@ -20,6 +20,11 @@ public struct PresentationExchangeFilter: Codable, Equatable {
|
|||
case type, pattern
|
||||
}
|
||||
|
||||
public init(type: String? = nil, pattern: NSRegularExpression? = nil) {
|
||||
self.type = type
|
||||
self.pattern = pattern
|
||||
}
|
||||
|
||||
public init(from decoder: Decoder) throws {
|
||||
let values = try decoder.container(keyedBy: CodingKeys.self)
|
||||
type = try values.decodeIfPresent(String.self, forKey: .type)
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
* @see [Presentation Exchange Spec](https://identity.foundation/presentation-exchange/#term:input-descriptor-object)
|
||||
*/
|
||||
public struct PresentationInputDescriptor: Codable, Equatable {
|
||||
|
||||
|
||||
/// Unique id of the input descriptor in the presentation definition.
|
||||
public let id: String?
|
||||
|
||||
|
@ -32,4 +32,18 @@ public struct PresentationInputDescriptor: Codable, Equatable {
|
|||
case issuanceMetadata = "issuance"
|
||||
case id, schema, name, purpose, constraints
|
||||
}
|
||||
|
||||
public init(id: String? = nil,
|
||||
schema: [InputDescriptorSchema]? = nil,
|
||||
issuanceMetadata: [IssuanceMetadata]? = nil,
|
||||
name: String? = nil,
|
||||
purpose: String? = nil,
|
||||
constraints: PresentationExchangeConstraints? = nil) {
|
||||
self.id = id
|
||||
self.schema = schema
|
||||
self.issuanceMetadata = issuanceMetadata
|
||||
self.name = name
|
||||
self.purpose = purpose
|
||||
self.constraints = constraints
|
||||
}
|
||||
}
|
||||
|
|
|
@ -133,8 +133,8 @@ class PresentationRequestValidatorTests: XCTestCase {
|
|||
return PresentationRequestClaims(jti: "testId",
|
||||
clientID: "clientID",
|
||||
redirectURI: "redirectURI",
|
||||
responseMode: responseMode,
|
||||
responseType: responseType,
|
||||
responseMode: responseMode,
|
||||
claims: nil,
|
||||
state: "state",
|
||||
nonce: "nonce",
|
||||
|
|
|
@ -72,7 +72,7 @@ class PresentationServiceTests: XCTestCase {
|
|||
|
||||
func testGetRequestMalformedUri() throws {
|
||||
let expec = self.expectation(description: "Fire")
|
||||
let malformedUrl = " "
|
||||
let malformedUrl = "//|\\"
|
||||
service.getRequest(usingUrl: malformedUrl).done {
|
||||
request in
|
||||
print(request)
|
||||
|
|
Загрузка…
Ссылка в новой задаче