¿Cómo puedo utilizar funciones de un archivo js en un servicio de Angular 6?

Tengo una aplicación en Angularjs que utiliza un archivo llamado Blowfish.js para encriptar ciertos objetos Json, este objeto encriptado luego es enviado a otra aplicación que está hecha en angular 6 y pues mi duda es como incluir ese archivo Javascript a un archivo.service.ts en donde quiero desencriptar.

Cabe destacar que el objeto Json primero es convertido a string y luego la función encrypt hace lo suyo.

Dejaré aquí el link para que vean el código del archivo Blowfish.js, puesto que es muy extenso para ponerlo todo aquí: Blowfish.js

De todas formas pondré tambien la función que utilizan para encriptar:

this.encrypt = function(/* string */plaintext, /* string */key, /* object? */ao){     // summary:     //      encrypts plaintext using key; allows user to specify output type and cipher mode via keyword object "ao"     var out=crypto.outputTypes.Base64;     var mode=crypto.cipherModes.ECB;     if (ao){         if (ao.outputType) out=ao.outputType;         if (ao.cipherMode) mode=ao.cipherMode;     }      var bx = init(key), padding = 8-(plaintext.length&7);     for (var i=0; i<padding; i++){ plaintext+=String.fromCharCode(padding); }      var cipher=[], count=plaintext.length >> 3, pos=0, o={}, isCBC=(mode==crypto.cipherModes.CBC);     var vector={left:iv.left||null, right:iv.right||null};     for(var i=0; i<count; i++){         o.left=plaintext.charCodeAt(pos)*POW24             |plaintext.charCodeAt(pos+1)*POW16             |plaintext.charCodeAt(pos+2)*POW8             |plaintext.charCodeAt(pos+3);         o.right=plaintext.charCodeAt(pos+4)*POW24             |plaintext.charCodeAt(pos+5)*POW16             |plaintext.charCodeAt(pos+6)*POW8             |plaintext.charCodeAt(pos+7);          if(isCBC){             o.left=(((o.left>>0x10)^(vector.left>>0x10))<<0x10)|(((o.left&0xffff)^(vector.left&0xffff))&0xffff);             o.right=(((o.right>>0x10)^(vector.right>>0x10))<<0x10)|(((o.right&0xffff)^(vector.right&0xffff))&0xffff);         }          eb(o, bx);  //  encrypt the block          if(isCBC){             vector.left=o.left;             vector.right=o.right;         }          cipher.push((o.left>>24)&0xff);         cipher.push((o.left>>16)&0xff);         cipher.push((o.left>>8)&0xff);         cipher.push(o.left&0xff);         cipher.push((o.right>>24)&0xff);         cipher.push((o.right>>16)&0xff);         cipher.push((o.right>>8)&0xff);         cipher.push(o.right&0xff);         pos+=8;     }      switch(out){         case crypto.outputTypes.Hex:{             return arrayUtil.map(cipher, function(item){                 return (item<=0xf?'0':'')+item.toString(16);             }).join("");    //  string         }         case crypto.outputTypes.String:{             return cipher.join(""); //  string         }         case crypto.outputTypes.Raw:{             return cipher;  //  array         }         default:{             return base64.encode(cipher);   //  string         }     } };  base64.encode=function(/* byte[] */ba){ // summary: //      Encode an array of bytes as a base64-encoded string var s=[], l=ba.length; var rm=l%3; var x=l-rm; for (var i=0; i<x;){     var t=ba[i++]<<16|ba[i++]<<8|ba[i++];     s.push(tab.charAt((t>>>18)&0x3f));     s.push(tab.charAt((t>>>12)&0x3f));     s.push(tab.charAt((t>>>6)&0x3f));     s.push(tab.charAt(t&0x3f)); } //  deal with trailers, based on patch from Peter Wood. switch(rm){     case 2:{         var t=ba[i++]<<16|ba[i++]<<8;         s.push(tab.charAt((t>>>18)&0x3f));         s.push(tab.charAt((t>>>12)&0x3f));         s.push(tab.charAt((t>>>6)&0x3f));         s.push(p);         break;     }     case 1:{         var t=ba[i++]<<16;         s.push(tab.charAt((t>>>18)&0x3f));         s.push(tab.charAt((t>>>12)&0x3f));         s.push(p);         s.push(p);         break;     } } return s.join("");  //  string }; 

Investigando encontré el siguiente paquete NPM: Javascript-Blowfish

Este paquete es muy similar al archivo antes mencionado e incluso dentro de la carpeta contiene un archivo llamado Blowfish.js aunque tienen múltiples diferencias en el código.

Lo ideal sería poder desencriptar lo enviado desde Angularjs con las funciones del paquete NPM (cosa que he intentado con las funciones decrypt y base64decode que contiene pero no me ha resultado) y de no ser posible entonces necesito saber como poder incluir o importar el archivo Blowfish.js (el primero mencionado) y ocupar su función de decrypt.