Skip to content

Commit

Permalink
Add new keyfile option for signature verification
Browse files Browse the repository at this point in the history
  • Loading branch information
tngan committed Oct 9, 2019
1 parent 5b1b145 commit 2398533
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 11 deletions.
5 changes: 3 additions & 2 deletions src/flow.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { inflateString, base64Decode } from './utility';
import { verifyTime } from './validator';
import libsaml from './libsaml';
import libsaml, { SignatureVerifierOptions } from './libsaml';
import {
extract,
loginRequestFields,
Expand Down Expand Up @@ -134,9 +134,10 @@ async function postFlow(options): Promise<FlowResult> {

let samlContent = String(base64Decode(encodedRequest));

const verificationOptions = {
const verificationOptions: SignatureVerifierOptions = {
cert: from.entityMeta,
signatureAlgorithm: from.entitySetting.requestSignatureAlgorithm,
keyFile: from.entitySetting.keyFile
};

const decryptRequired = from.entitySetting.isAssertionEncrypted;
Expand Down
15 changes: 6 additions & 9 deletions src/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ export interface SAMLDocumentTemplate {
export type ServiceProviderSettings = {
metadata?: string | Buffer;
entityID?: string;
keyFile?: string;
authnRequestsSigned?: boolean;
wantAssertionsSigned?: boolean;
wantMessageSigned?: boolean;
Expand All @@ -69,8 +70,8 @@ export type ServiceProviderSettings = {
isAssertionEncrypted?: boolean;
encPrivateKey?: string | Buffer;
encPrivateKeyPass?: string | Buffer;
assertionConsumerService?: Array<{ Binding: string, Location: string }>;
singleLogoutService?: Array<{ Binding: string, Location: string }>;
assertionConsumeService?: Array<{ isDefault?: boolean, Binding: string, Location: string }>;
singleLogoutService?: Array<{ isDefault?: boolean, Binding: string, Location: string }>;
signatureConfig?: SignatureConfig;
loginRequestTemplate?: SAMLDocumentTemplate;
logoutRequestTemplate?: SAMLDocumentTemplate;
Expand All @@ -84,27 +85,23 @@ export type ServiceProviderSettings = {

export type IdentityProviderSettings = {
metadata?: string | Buffer;

/** signature algorithm */
requestSignatureAlgorithm?: string;

/** template of login response */
loginResponseTemplate?: LoginResponseTemplate;

/** template of logout request */
logoutRequestTemplate?: SAMLDocumentTemplate;

/** customized function used for generating request ID */
generateID?: () => string;

entityID?: string;
keyFile?: string;
privateKey?: string | Buffer;
privateKeyPass?: string;
signingCert?: string | Buffer;
encryptCert?: string | Buffer; /** todo */
nameIDFormat?: string[];
singleSignOnService?: Array<{ [key: string]: string }>;
singleLogoutService?: Array<{ [key: string]: string }>;
singleSignOnService?: Array<{ isDefault?: boolean, Binding: string, Location: string }>;
singleLogoutService?: Array<{ isDefault?: boolean, Binding: string, Location: string }>;
isAssertionEncrypted?: boolean;
encPrivateKey?: string | Buffer;
encPrivateKeyPass?: string;
Expand Down

0 comments on commit 2398533

Please sign in to comment.